Asana
Visualize Asana workspaces, teams, users, projects, and project memberships, map Asana users to employees, and monitor changes to Asana users through queries and alerts.
- Installation
- Data Model
- Types
Installation
This integration uses OAuth 2.0 with a refresh token. You first register an OAuth application in Asana, then authorize JupiterOne against it so JupiterOne can refresh access tokens as needed.
Creating an instance requires the following:
- An Asana user account with permission to create OAuth applications in the Asana developer console.
- An OAuth application registered in Asana, granted the read scopes this
integration needs:
users:read,workspaces:read,teams:readandprojects:read. Project memberships are read through an endpoint that Asana does not gate with a dedicated scope, so the application must be granted Full permissions to ingest them.
Granting Full permissions satisfies every scope above, including the project-memberships endpoint. You can instead select the individual read scopes, but project memberships will not be ingested without Full permissions.
Register an Asana OAuth application
- Sign in to Asana and open the developer console (My apps). See Asana's OAuth guide for registering an application, then select Create new app.
- Provide an App name and a Redirect URL. Non-native applications must
use an
httpscallback URL. - In the sidebar, open OAuth and then Permission scopes. Toggle on
Full permissions, or select the specific read scopes
users:read,workspaces:read,teams:readandprojects:read. See the Asana OAuth scopes documentation for details. - On the OAuth tab, note the Client ID and Client Secret. Obtain a refresh token by completing the OAuth authorization-code flow described in the Asana OAuth documentation.
Configure the integration in JupiterOne
To install the Asana integration in JupiterOne, navigate to the Integrations tab in JupiterOne and select Asana. Click New Instance to begin configuring your integration.
- The Account Name used to identify the Asana account in JupiterOne.
Ingested entities will have this value stored in
tag.AccountNamewhen theAccountNametoggle is enabled. - Description to assist in identifying the integration instance, if desired.
- Polling Interval that you feel is sufficient for your monitoring needs. You
may leave this as
DISABLEDand manually execute the integration.
After clicking Create, you'll be prompted to authorize JupiterOne with Asana. Completing the authorization process will finalize the integration setup.
Next steps
Now that your integration instance has been configured, it will begin running on the polling interval you provided, populating data within JupiterOne. Continue on to our Instance management guide to learn more about working with and editing integration instances.
Entities
The following entities are created:
| Resources | Entity _type | Entity _class |
|---|---|---|
| Account | asana_account | Account |
| Project | asana_project | Project |
| Project Membership | asana_project_membership | AccessRole |
| Team | asana_team | Team |
| User | asana_user | User |
| Workspace | asana_workspace | Organization |
Relationships
The following relationships are created:
Source Entity _type | Relationship _class | Target Entity _type |
|---|---|---|
asana_account | HAS | asana_workspace |
asana_project | HAS | asana_project_membership |
asana_project_membership | ALLOWS | asana_project |
asana_team | HAS | asana_user |
asana_team | ASSIGNED | asana_project |
asana_user | OWNS | asana_project |
asana_user | ASSIGNED | asana_project_membership |
asana_workspace | HAS | asana_user |
asana_workspace | HAS | asana_team |
asana_workspace | HAS | asana_project |