SailPoint Identity Security Cloud (IdentityNow)
Visualize your SailPoint Identity Security Cloud tenant in the JupiterOne graph — the identities ISC correlates across every connected source, the sources themselves, and the access model of roles, access profiles and entitlements built on top of them. Each source account is linked to the identity it correlates to, so a person can be traced to every account they hold, and uncorrelated orphan accounts stand out. Governance groups, identity profiles, separation-of-duties policies and certification campaigns are ingested alongside, letting you query privileged entitlements, role assignments and certification coverage, and monitor changes through queries and alerts.
- Installation
- Authorization
- Data Model
- Types
Installation
Prerequisites
- A SailPoint Identity Security Cloud tenant. ISC was previously branded IdentityNow; the separate SailPoint IdentityIQ integration covers the on-premise IdentityIQ product instead.
- A Personal Access Token (Client ID and Client Secret) created by a user whose user level covers the data you want to ingest.
- Access to JupiterOne with permission to configure integrations.
Create a Personal Access Token
The integration authenticates using OAuth 2.0 (client credentials), exchanging a Personal Access Token for a bearer token against https://{tenant}.api.identitynow.com/oauth/token.
To create the token:
- Sign in to
https://{tenant}.identitynow.com. - Open the user menu and go to Preferences → Personal Access Tokens.
- Select New Token and give it a name that identifies JupiterOne.
- Copy the Client ID and Client Secret. The secret is shown only once.
The token inherits the authority of the user who created it, so create it as a user whose level covers the collections you intend to ingest.
The integration issues read-only requests.
ISC grants API authority by user level — ORG_ADMIN, SOURCE_ADMIN, SOURCE_SUBADMIN, CERT_ADMIN, HELPDESK and so on — rather than by granular scope, and the level required differs per endpoint. ORG_ADMIN covers everything this integration reads. A token created by a narrower user level still works: the collections it cannot read are skipped with a warning on the job, and the rest are ingested normally. See the Authorization tab for the user levels, scopes and endpoints each step uses.
Configure the integration in JupiterOne
To install the SailPoint Identity Security Cloud integration in JupiterOne, navigate to the Integrations tab in JupiterOne and select SailPoint Identity Security Cloud (IdentityNow). Click New Instance to begin configuring your integration.
Creating an instance requires the following:
-
The Account Name used to identify the SailPoint Identity Security Cloud 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. -
The Personal Access Token fields below.
Authentication fields
| Field | Required | Description |
|---|---|---|
| API URL | Yes | Your ISC API host — for example https://acme.api.identitynow.com. |
| Client ID | Yes | Client ID of the Personal Access Token. |
| Client Secret | Yes | Client Secret paired with the Client ID. Shown only once when the token is created. |
Click Create once all values are provided to finalize the integration.
The API URL is the api. host, not the tenant UI URL. The tenant name alone (acme) and the UI host (acme.identitynow.com) are both accepted and converted to the API host for you, as are trailing slashes and a pasted /v2025 suffix. The scheme is always set to https, since the token secret is sent in the request body.
Data sources
You can narrow what the integration collects from the instance's ingestion source settings.
| Ingestion source | Default | Data collected |
|---|---|---|
| Identities | Enabled | ISC identities — the correlated representation of each person across every connected source — and their manager hierarchy. |
| Sources | Enabled | Connected systems aggregated by ISC, such as Active Directory or Workday, with connector, health and owner detail. |
| Identity Profiles | Enabled | Configuration that maps an authoritative source into identities, and the source each profile derives from. |
| Governance Groups | Enabled | Governance groups (workgroups) and their identity membership, used to assign shared ownership and approval duties. |
| Access Profiles | Enabled | Access profiles, which bundle entitlements drawn from a single source, and their source and owner. |
| Roles | Enabled | Business roles, the access profiles they bundle, their owners, and the identities assigned to them. |
| Separation of Duties Policies | Enabled | Separation-of-duties policies defining combinations of access that must not be held together. |
| Certification Campaigns | Enabled | Access certification campaigns and their completion progress. |
| Entitlements | Disabled | Fine-grained access grants on each connected source, such as Active Directory group memberships, including which are flagged privileged. |
| Source Accounts | Disabled | Accounts on each connected source and their correlation to identities. |
| Account Entitlement Grants | Disabled | Which entitlements each source account actually holds. |
The three disabled sources are the large ones. A sizeable ISC tenant holds over a million entitlements and several million accounts, so they are opt-in rather than on by default.
Account Entitlement Grants is the most expensive to enable: ISC exposes an account's entitlements only one account at a time, so it costs one API request per account. It requires both Source Accounts and Entitlements to be enabled, and it covers at most 500,000 accounts in a single run — if your tenant has more, the job records that the limit was reached.
Entitlements requires Sources to be enabled, because entitlements are collected source by source.
Relationships that span two of these sources are only created when both are enabled. Disabling Identities, for example, does not stop sources, roles or access profiles being collected — it removes the edges that connect them to identities.
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.
Additional resources
- SailPoint API authentication — creating a Personal Access Token and the client credentials flow
- Identity Security Cloud V2025 API — the API version this integration reads
- Standard collection parameters — paging, filtering and sorting behaviour
Roles
RBAC roles that must be assigned to the integration principal.
Show Roles (7)
CERT_ADMINHELPDESKORG_ADMINREPORT_ADMINROLE_SUBADMINSOURCE_ADMINSOURCE_SUBADMIN
OAuth Scopes
OAuth scopes that must be granted to the application or service principal.
Show OAuth Scopes (10)
idn:accounts:readidn:campaign:readidn:entitlement:readidn:identity:readidn:role-checked:readidn:role-unchecked:readidn:sod-policy:readidn:sources:readidn:workgroup:readsp:tenant:read
Endpoints
API endpoints that the integration makes requests to.
Show Endpoints (14)
GET /v2025/access-profilesGET /v2025/accountsGET /v2025/campaignsGET /v2025/entitlementsGET /v2025/entitlements?account-id={id}GET /v2025/identitiesGET /v2025/identity-profilesGET /v2025/rolesGET /v2025/roles/{id}/assigned-identitiesGET /v2025/sod-policiesGET /v2025/sourcesGET /v2025/tenantGET /v2025/workgroupsGET /v2025/workgroups/{workgroupId}/members
Documentation Links
Links to provider documentation relevant to setup and configuration.
Show Documentation Links (14)
- https://developer.sailpoint.com/docs/api/authentication/
- https://developer.sailpoint.com/docs/api/v2025/get-active-campaigns
- https://developer.sailpoint.com/docs/api/v2025/get-role-assigned-identities
- https://developer.sailpoint.com/docs/api/v2025/get-tenant
- https://developer.sailpoint.com/docs/api/v2025/list-access-profiles
- https://developer.sailpoint.com/docs/api/v2025/list-accounts
- https://developer.sailpoint.com/docs/api/v2025/list-entitlements
- https://developer.sailpoint.com/docs/api/v2025/list-identities
- https://developer.sailpoint.com/docs/api/v2025/list-identity-profiles
- https://developer.sailpoint.com/docs/api/v2025/list-roles
- https://developer.sailpoint.com/docs/api/v2025/list-sod-policies
- https://developer.sailpoint.com/docs/api/v2025/list-sources
- https://developer.sailpoint.com/docs/api/v2025/list-workgroup-members
- https://developer.sailpoint.com/docs/api/v2025/list-workgroups
Per-Step Breakdown
Detailed authorization requirements for each ingestion step.
Show all steps (9)
| Step | Roles | OAuth Scopes | Endpoints |
|---|---|---|---|
| Build Access Profile Entitlement Relationships | ORG_ADMIN, ROLE_SUBADMIN, SOURCE_SUBADMIN | - | GET /v2025/access-profiles |
| Build Access Profile Relationships | ORG_ADMIN, ROLE_SUBADMIN, SOURCE_SUBADMIN | - | GET /v2025/access-profiles |
| Build Account Entitlement Relationships | - | idn:entitlement:read | GET /v2025/entitlements?account-id={id} |
| Build Governance Group Membership | ORG_ADMIN | idn:workgroup:read | GET /v2025/workgroups/{workgroupId}/members |
| Build Identity Profile Relationships | ORG_ADMIN | - | GET /v2025/identity-profiles |
| Build Role Entitlement Relationships | - | idn:role-unchecked:read, idn:role-checked:read | GET /v2025/roles |
| Build Role Relationships | - | idn:role-unchecked:read, idn:role-checked:read | GET /v2025/roles, GET /v2025/roles/{id}/assigned-identities |
| Build Source Relationships | - | idn:sources:read | GET /v2025/sources |
| Fetch Entitlements | - | idn:entitlement:read | GET /v2025/entitlements |
Entities
The following entities are created:
| Resources | Entity _type | Entity _class |
|---|---|---|
| AccessProfile | sailpoint_isc_access_profile | AccessRole |
| Account | sailpoint_isc_account | Account |
| Campaign | sailpoint_isc_campaign | Assessment |
| Entitlement | sailpoint_isc_entitlement | AccessRole |
| GovernanceGroup | sailpoint_isc_governance_group | UserGroup |
| Identity | sailpoint_isc_identity | User |
| IdentityProfile | sailpoint_isc_identity_profile | Configuration |
| Role | sailpoint_isc_role | AccessRole |
| SodPolicy | sailpoint_isc_sod_policy | ControlPolicy |
| Source | sailpoint_isc_source | Application |
| SourceAccount | sailpoint_isc_source_account | Account |
Relationships
The following relationships are created:
Source Entity _type | Relationship _class | Target Entity _type |
|---|---|---|
sailpoint_isc_access_profile | HAS | sailpoint_isc_entitlement |
sailpoint_isc_account | HAS | sailpoint_isc_source |
sailpoint_isc_account | HAS | sailpoint_isc_identity_profile |
sailpoint_isc_account | HAS | sailpoint_isc_governance_group |
sailpoint_isc_account | HAS | sailpoint_isc_sod_policy |
sailpoint_isc_account | HAS | sailpoint_isc_campaign |
sailpoint_isc_governance_group | HAS | sailpoint_isc_identity |
sailpoint_isc_identity | MANAGES | sailpoint_isc_identity |
sailpoint_isc_identity | OWNS | sailpoint_isc_source |
sailpoint_isc_identity | OWNS | sailpoint_isc_access_profile |
sailpoint_isc_identity | OWNS | sailpoint_isc_role |
sailpoint_isc_identity | ASSIGNED | sailpoint_isc_role |
sailpoint_isc_identity | OWNS | sailpoint_isc_entitlement |
sailpoint_isc_identity | HAS | sailpoint_isc_source_account |
sailpoint_isc_identity_profile | USES | sailpoint_isc_source |
sailpoint_isc_role | HAS | sailpoint_isc_access_profile |
sailpoint_isc_role | HAS | sailpoint_isc_entitlement |
sailpoint_isc_source | HAS | sailpoint_isc_entitlement |
sailpoint_isc_source | HAS | sailpoint_isc_access_profile |
sailpoint_isc_source | HAS | sailpoint_isc_source_account |
sailpoint_isc_source_account | ASSIGNED | sailpoint_isc_entitlement |
Sailpoint Isc Access Profile
sailpoint_isc_access_profile inherits from AccessRole
| Property | Type | Description | Specifications |
|---|---|---|---|
entitlementCount * | number | null | The number of entitlements bundled by the access profile. A count rather than a reference: the entitlements themselves are modelled as relationships, and this stays accurate even when the entitlements step is disabled. | |
isEnabled * | boolean | null | Whether the access profile is enabled. A disabled profile grants nothing even where it is assigned. | |
isRequestable * | boolean | null | Whether the access profile can be requested through access request. | |
ownerName * | string | null | The display name of the access profile owner. The owning identity is expressed by the OWNS relationship. | |
segmentIds * | array | null | The IDs of the access segments this access profile is assigned to. | |
sourceName * | string | null | The display name of the access profile source. |
Sailpoint Isc Account
sailpoint_isc_account inherits from Account
| Property | Type | Description | Specifications |
|---|---|---|---|
apiUrl * | string | The API base URL used to collect from this tenant. | |
pod * | string | null | The SailPoint deployment pod hosting the tenant (e.g. 'stg01-useast1'). | |
region * | string | null | The SailPoint deployment region hosting the tenant (e.g. 'us-east-1'). | |
tenantId * | string | null | The unique identifier of the ISC tenant. | |
tenantName * | string | null | The abbreviated tenant name, which is the tenant slug in the API hostname (e.g. 'acme' in acme.api.identitynow.com). |
Sailpoint Isc Campaign
sailpoint_isc_campaign inherits from Assessment
| Property | Type | Description | Specifications |
|---|---|---|---|
campaignStatus * | string | null | The campaign status: PENDING, STAGED, CANCELING, ACTIVATING, ACTIVE, COMPLETING, COMPLETED, ERROR, or ARCHIVED. | |
campaignType * | string | null | The campaign type: MANAGER, SOURCE_OWNER, SEARCH, ROLE_COMPOSITION, or MACHINE_ACCOUNT. | |
completedCertifications * | number | null | The number of certifications in the campaign that reviewers have signed off. | |
correlatedStatus * | string | null | Whether the campaign covers correlated or uncorrelated accounts. Only SOURCE_OWNER campaigns can be UNCORRELATED. | |
deadlineOn * | number | null | The completion deadline for the campaign. | |
isAutoRevokeAllowed * | boolean | null | Whether access is revoked automatically when a reviewer fails to act before the deadline. | |
isEmailNotificationEnabled * | boolean | null | Whether reviewers are emailed about the campaign. | |
isRecommendationsEnabled * | boolean | null | Whether SailPoint AI-driven identity security recommendations are shown to reviewers. | |
isSunsetCommentsRequired * | boolean | null | Whether reviewers must comment when they change a sunset date. | |
mandatoryCommentRequirement * | string | null | Which review decisions require a comment (e.g. all decisions, revoke-only, or none). | |
totalCertifications * | number | null | The total number of certifications in the campaign. |
Sailpoint Isc Entitlement
sailpoint_isc_entitlement inherits from AccessRole
| Property | Type | Description | Specifications |
|---|---|---|---|
attribute * | string | null | The source schema attribute the entitlement is carried on (e.g. 'memberOf'). | |
isCloudGoverned * | boolean | null | Whether the entitlement is governed by ISC rather than only by the source system. | |
isPrivileged * | boolean | null | Whether ISC flags this entitlement as privileged. This is the primary signal for locating privileged access across all connected sources. | |
isRequestable * | boolean | null | Whether the entitlement can be requested directly through access request. | |
ownerId * | string | null | The ISC identity ID of the entitlement owner. Retained alongside the OWNS relationship because that relationship is built on a later pass over persisted entities. | |
ownerName * | string | null | The display name of the entitlement owner. The owning identity is expressed by the OWNS relationship. | |
segmentIds * | array | null | The IDs of the access segments this entitlement is assigned to. Segments are not ingested as entities, so the ids stay queryable here. | |
sourceName * | string | null | The display name of the source that owns the entitlement. | |
sourceSchemaObjectType * | string | null | The object type of the entitlement in the source schema (e.g. 'group'). | |
value * | string | null | The raw entitlement value on the source (e.g. an Active Directory group distinguished name). |
Sailpoint Isc Governance Group
sailpoint_isc_governance_group inherits from UserGroup
| Property | Type | Description | Specifications |
|---|---|---|---|
connectionCount * | number | null | The number of objects (sources, roles, policies) that reference the group as an owner or approver. | |
memberCount * | number | null | The number of identities that belong to the group. | |
ownerId * | string | null | The ISC identity ID of the governance group owner. | |
ownerName * | string | null | The display name of the governance group owner. |
Sailpoint Isc Identity
sailpoint_isc_identity inherits from User
| Property | Type | Description | Specifications |
|---|---|---|---|
country * | string | null | The identity's country, read from the tenant's country identity attribute when present. | |
department * | string | null | The identity's department, read from the tenant's department identity attribute when present. | |
identityStatus * | string | null | The identity's registration status in ISC: UNREGISTERED, REGISTERED, PENDING, WARNING, DISABLED, ACTIVE, DEACTIVATED, TERMINATED, ERROR, or LOCKED. | |
isLifecycleStateManuallySet * | boolean | null | Whether the identity's lifecycle state was set manually rather than derived automatically. | |
isManager * | boolean | null | Whether this identity is the manager of another identity. | |
jobTitle * | string | null | The identity's job title, read from the tenant's jobTitle identity attribute when present. | |
lastRefreshedOn * | number | null | When ISC last refreshed this identity from its authoritative source. | |
lifecycleStateName * | string | null | The name of the identity's current lifecycle state (e.g. 'active', 'terminated'). Lifecycle states are tenant-defined. | |
location * | string | null | The identity's location, read from the tenant's location identity attribute when present. | |
managerId * | string | null | The ISC identity ID of this identity's manager. Retained alongside the MANAGES relationship because the relationship is built on a second pass over persisted entities. | |
managerName * | string | null | The display name of this identity's manager. | |
processingState * | string | null | The identity's processing state as reported by ISC: ERROR or OK. |
Sailpoint Isc Identity Profile
sailpoint_isc_identity_profile inherits from Configuration
| Property | Type | Description | Specifications |
|---|---|---|---|
authoritativeSourceName * | string | null | The display name of the authoritative source this profile derives identities from. | |
hasTimeBasedAttribute * | boolean | null | Whether the profile has a time-based attribute, which forces periodic refreshes. | |
identityCount * | number | null | The number of identities belonging to this profile. | |
isIdentityRefreshRequired * | boolean | null | Whether a source change has left this profile needing an identity refresh. | |
ownerId * | string | null | The ISC identity ID of the identity profile owner. | |
ownerName * | string | null | The display name of the identity profile owner. | |
priority * | number | null | The evaluation priority of the profile. Lower values win when an account matches more than one profile. |
Sailpoint Isc Role
sailpoint_isc_role inherits from AccessRole
| Property | Type | Description | Specifications |
|---|---|---|---|
accessProfileCount * | number | null | The number of access profiles bundled by the role. A count rather than a reference: the access profiles themselves are modelled as relationships. | |
entitlementCount * | number | null | The number of entitlements granted directly by the role. A count rather than a reference: the entitlements themselves are modelled as relationships. | |
isDimensional * | boolean | null | Whether the role is dimensional, meaning its grants vary by dimension rather than being fixed. | |
isEnabled * | boolean | null | Whether the role is enabled. A disabled role grants nothing even where it is assigned. | |
isRequestable * | boolean | null | Whether the role can be requested through access request. | |
membershipType * | string | null | How role membership is determined: 'STANDARD' (criteria-based) or 'IDENTITY_LIST' (explicit list). | |
ownerName * | string | null | The display name of the role owner. The owning identity is expressed by the OWNS relationship. | |
privilegeLevel * | string | null | The privilege level assigned to the role, when the tenant classifies roles by privilege. | |
segmentIds * | array | null | The IDs of the access segments this role is assigned to. |
Sailpoint Isc Sod Policy
sailpoint_isc_sod_policy inherits from ControlPolicy
| Property | Type | Description | Specifications |
|---|---|---|---|
compensatingControls * | string | null | Mitigating controls documented for identities that violate the policy. | |
correctionAdvice * | string | null | Guidance shown to reviewers on how to remediate a violation of this policy. | |
externalPolicyReference * | string | null | A reference to the corresponding policy in an external governance system. | |
isEnforced * | boolean | null | Whether the policy is enforced. A policy in NOT_ENFORCED state is evaluated but does not block access. | |
isScheduled * | boolean | null | Whether the policy has a scheduled violation report configured. | |
ownerId * | string | null | The ISC identity or governance group ID of the policy owner. | |
ownerName * | string | null | The display name of the policy owner. | |
ownerType * | string | null | The type of the policy owner: 'IDENTITY' or 'GOVERNANCE_GROUP'. | |
policyQuery * | string | null | The search query defining the policy, for query-based policies. | |
policyTags * | array | null | Tags applied to the policy in ISC. Named policyTags because tags on the base entity carries JupiterOne tags. | |
policyType * | string | null | How the policy expresses conflict: 'GENERAL' (search-query based) or 'CONFLICTING_ACCESS_BASED' (two access sets). |
Sailpoint Isc Source
sailpoint_isc_source inherits from Application
| Property | Type | Description | Specifications |
|---|---|---|---|
clusterId * | string | null | The identifier of the virtual appliance cluster that services the source. | |
clusterName * | string | null | The name of the virtual appliance cluster that services the source. | |
connectionType * | string | null | The connection type: 'direct' or 'file'. | |
connector * | string | null | The connector script name used to reach the source. | |
connectorId * | string | null | The identifier of the connector used by the source. | |
connectorName * | string | null | The display name of the connector chosen at source creation. | |
deleteThreshold * | number | null | The percentage of deleted accounts (0-100) above which ISC skips the delete phase of aggregation. | |
features * | array | null | Optional capabilities supported by the source (e.g. 'AUTHENTICATE', 'PROVISIONING', 'PASSWORD', 'SEARCH'). | |
healthCheckedOn * | number | null | When the source health check was last performed. | |
healthStatus * | string | null | The detailed source health status (e.g. 'SOURCE_STATE_HEALTHY', 'SOURCE_STATE_ERROR_VA'). | |
isAuthoritative * | boolean | null | Whether the source is authoritative, meaning an identity profile derives identities from it. | |
isCredentialProviderEnabled * | boolean | null | Whether a credential provider is enabled for the source. | |
isHealthy * | boolean | null | Whether the source passed its most recent ISC health check. | |
managementWorkgroupId * | string | null | The identifier of the governance group that manages the source. | |
managementWorkgroupName * | string | null | The name of the governance group that manages the source. | |
ownerName * | string | null | The display name of the source owner. The owning identity is expressed by the OWNS relationship. | |
sourceCategory * | string | null | The source category as reported by ISC (e.g. 'CredentialProvider'). Named sourceCategory because category is not part of the Application class. | |
sourceType * | string | null | The managed system type (e.g. 'Active Directory', 'Workday'). |
Sailpoint Isc Source Account
sailpoint_isc_source_account inherits from Account
| Property | Type | Description | Specifications |
|---|---|---|---|
accountUuid * | string | null | The account UUID as determined by the source account schema. | |
cloudLifecycleState * | string | null | The lifecycle state of the correlated identity. | |
connectionType * | string | null | The connection type of the source this account came from. | |
hasEntitlements * | boolean | null | Whether the account holds any entitlements. | |
identityId * | string | null | The ISC identity ID this account is correlated to, or null when uncorrelated. Retained alongside the IDENTITY_HAS_ACCOUNT relationship for the same reason as sourceId. | |
identityName * | string | null | The display name of the correlated identity, or null when the account is uncorrelated. | |
identityState * | string | null | The identity state of the correlated identity. | |
isAuthoritative * | boolean | null | Whether the account comes from an authoritative source. | |
isDisabled * | boolean | null | Whether the account is currently disabled on the source. | |
isLocked * | boolean | null | Whether the account is currently locked on the source. | |
isMachine * | boolean | null | Whether ISC classifies the account as a machine account rather than a human one. | |
isManuallyCorrelated * | boolean | null | Whether the account was correlated to its identity by hand rather than by a correlation rule. | |
isSystemAccount * | boolean | null | Whether this is an IdentityNow user account rather than an account on an external source system. | |
isUncorrelated * | boolean | null | Whether the account could not be correlated to any identity. Uncorrelated accounts are a common orphan-account finding. | |
nativeIdentity * | string | The unique account identifier assigned by the source system. | |
origin * | string | null | How the account came to exist in ISC: 'AGGREGATED' (read from the source) or 'PROVISIONED' (created by ISC). | |
sourceId * | string | null | The ID of the source this account belongs to. Retained alongside the SOURCE_HAS_ACCOUNT relationship because that relationship is built on a later pass over persisted entities. | |
sourceName * | string | null | The display name of the source this account belongs to. |