Configure SCIM Connector
The SCIM connector adds a SCIM API to Password Safe to allow third-party applications to view and modify users, groups, and Smart Rule permissions.
- SCIM implementations at http://www.simplecloud.info/
- The PAM extension at https://datatracker.ietf.org/doc/html/draft-grizzle-scim-pam-ext-00
SailPoint IdentityIQ Integration
IdentityIQ currently supports:
- Reading users, groups, Smart Rules, and Smart Rule permissions into their system
- Creating users, and adding and removing users to and from groups
Although this is what the IdentityIQ supports, the SCIM connector follows the SCIM and PAM extension standard, so it is possible to assign permissions to groups. IdentityIQ supports assigning permissions to users only, which isn't compatible with Password Safe.
Configure SailPoint IdentityIQ
To help configure the SCIM API in IndentityIQ, an application XML prebuilt with local and AD user provisioning is available on the BeyondTrust customer portal.
Account Schema
To configure the IdentityIQ SCIM application manually to be compatible with Password Safe, there are some default schema settings you need to modify, as follows:
- Under name, remove middleName, honorificPrefix, and honorificSuffix.
- Remove nickName, profileUrl, title, userType, preferredLanguage, locale, and timezone.
- Remove all email fields and replace with a single email field.
For the provisioning form, if you intend to create Active Directory users only, the native identifier must be populated with the distinguished name. All other fields are populated with what is in Active Directory. The following script populates IdentityIQ fields with allowed values for distinguished name:
import java.util.*; import sailpoint.object.*; import sailpoint.api.*; List adLinks = new ArrayList(); if (identity != null) { Application targetApplication = context.getObjectByName(Application.class, "Active Directory"); // "Active Directory" here is the name of the AD application you want to use IdentityService identityService = new IdentityService(context); List links = identityService.getLinks(identity, targetApplication); if (links != null) { for (Link link : links) { adLinks.add((String)link.getAttribute("distinguishedName")); } } } return adLinks;
Enable the SCIM Connector
- In BeyondInsight, go to Configuration > General > Connectors.
- From the Connectors pane, click Create New Connector.
- Enter a name for the connector.
- Select SCIM Connector.
- Check Enable.
- Set the Refresh Token Expiry.
This is intended to be long-lived.
- Set the Access Token Expiry.
This is intended to be short-lived.
Access and Refresh tokens are an OAuth 2.0 concept.
- Select a Default Access Policy, and then click Update.
If a requester role is assigned to a group via the SCIM API, this access policy is assigned. The API does not support assigning different access policies. The container permissions you can provision include Read, Write, and Password Safe roles, such as Requester and Approver.
- Now that the connector has been enabled and saved, the API is available to access, and you see credential information specific to your user account on the Connectors > SCIM Details page:
- Client ID
- Recycle Client Secret button
- Generate Refresh Token button
The Client ID and secret are part of your credentials for requesting refresh and access tokens. The authentication endpoint is [host]/scim/oauth/token.
-
To obtain a refresh and access token, you can use client credentials or password authentication. Send a POST request with a body in one of these formats:
Client Credentials:
grant_type=client_credentials&client_id=[Client ID]&client_secret=[Client Secret]
Password:
grant_type=password&username=[Username]&password=[Password]
If you already have a refresh token, you can get a new access token with a POST request in this format:
grant_type=refresh_token&refresh_token=[Refresh Token]
The base URL for non-authentication requests is [host]/scim/v2.