SCIM
System for Cross-domain Identity Management is protocol for automating the exchange of user information between identity domains and IT systems. In addition to user data, it can also be used to import host data to PrivX. For cloud provider hosts, existing PrivX cloud provider specific directory types are sufficient, but for on-prem hosts, using SCIM to import the data would be one option.
To configure SCIM endpoint to PrivX:
- Create a new role for SCIM access. The role should have "sources-data-push" permission. Role's contextual restrictions can be used to limit the access to the SCIM endpoint.
- Create a new API client in Administration/Deployment and attach the previously created role to your API client. API client's credentials will be used for OAuth authentication.
- Create a new SCIM directory. Select "API Client" authentication type to use OAuth2.
To automatically create missing roles for hosts imported via SCIM connector, enable Create roles; disable to manage roles manually.
Automatically created roles will include 1:1 mapping rule between role's name and user's group name. Roles created by SCIM but not currenly used by any host will be periodically deleted (see the SCIM role cleanup interval in Administration→Settings→Role Store).
You may optionally specify filters and only matching users from the imported ones will be made available for use.
- After saving the SCIM directory, you can see the SCIM API endpoint and OAuth token endpoint in PrivX UI. Use them to configure your SCIM client.
- After configuring the SCIM client, you should create the attribute mapping for your SCIM client for the following attributes:
User object (urn:ietf:params:scim:schemas:core:2.0:User)
Host object (custom object type, urn:ietf:params:scim:schemas:ssh:2.0:Host)
- After importing the users, see that your user attributes are mapped correctly. You can also change the PrivX user field contents by specifying Attribute mapping parameters in SCIM directory configuration.
For example, forcing SSH and RDP to use user's email as account name for Directory logins:
- If you are importing users via SCIM and want to use them to log into PrivX, enable and configure OIDC settings for the SCIM directory.
For successful logging in as SCIM user, the OIDC server userInfo endpoint (or ID token) needs to return the subject (sub) field that matches the externalId of the user imported via SCIM. If externalId is not defined, SCIM userName attribute is used instead by default.
To specify a different SCIM attribute for matching the user's subject, define an attribute mappings under Advanced directory settings. The example below maps SCIM user data mail field to external_id. Note that external_id needs to be unique within the SCIM directory.
mail=external_id
PrivX supports SCIM protocol v2 and the following SCIM operations:
Create
Read
Replace
Delete
Search is partially supported (eq -filter only).
Patch and Bulk operations are not supported yet.
Multi-value attributes are currently supported only for user's groups. See supported attributes above.
"Group" resource type is currently not supported.
For user's group memberships, see "groups" and "title" attributes above. If your SCIM client does not support multi-value attributes, use "title" field instead.
Supported authentication types:
- Basic credential authentication
- OAuth2 authentication (grant_type=client_credentials)
- Access token authentication
Multiple simultaneous SCIM directories are supported, which could be used for bringing in hosts from different sources.
Was this page helpful?