Skip to content

The SCIM connector allows data synchronization between applications supporting the SCIM (System for Cross-domain Identity Management) 2.0 standard and RAC/M Identity. To do this, the connector uses the SCIM REST API. The SCIM standard is defined in RFC 7642, RFC 7643, and RFC 7644.

WARNING

SCIM support varies among applications. In general, not all functionality is available to the SCIM API. Please refer to your application's SCIM documentation to understand which features are supported.

Configuration

The connector supports several authentication methods. To determine which method to use, refer to your application's SCIM documentation. Additionally, OKIOK has tested some specific SCIM implementations and provides specific configuration parameters for them. See the dedicated pages for each implementation.

Common Parameters

The following parameters are required regardless of the authentication type:

ConfigurationDescription
AuthenticationSelect the authentication method: token (API token), jwt-bearer-token (JWT bearer token), or oauth-client-credentials (OAuth Client Credentials Flow).
SCIM EndpointEnter the SCIM endpoint path on the service provider (e.g., /services/scim).
SCIM VersionEnter the SCIM API version supported by the service provider (e.g., /v1 or /v2).
Proxy AddressEnter the proxy server address (hostname or IP address).
Proxy Port NumberEnter the port number of the proxy server.
Default CharsetEnter the default character encoding used when the response doesn't specify a charset (e.g., UTF-8).
Base URLEnter the base URL of the service.

Token Authentication

The token authentication method is a simple "Bearer" token added to the Authorization header of the request.

When using token as the authentication type, the following parameters are required:

ConfigurationDescription
TokenEnter the API token used for token-based authentication.

JWT Bearer Token Authentication

The jwt-bearer-token authentication method generates a signed JWT token using a private key and sends it to the authentication endpoint. The authentication endpoint then returns an OAuth access token that can be used to authenticate the request.

When using jwt-bearer-token as the authentication type, the following parameters are required:

ConfigurationDescription
Private Key (PEM)Enter the private key in PEM format (PKCS#8). Required for JWT bearer token authentication. See Private Key Format below for details.
JWT Authentication EndpointEnter the URL of the authentication endpoint that accepts JWT bearer tokens and returns OAuth access tokens.
JWT IssuerEnter the issuer (iss) claim value to include in the JWT token.
JWT SubjectEnter the subject (sub) claim value to include in the JWT token.
JWT AudienceEnter the audience (aud) claim value to include in the JWT token.
JWT Expiration SecondsEnter the JWT token expiration time in seconds (default: 300 seconds / 5 minutes).

Private Key Format

The private key must be provided in PEM format using PKCS#8 encoding. The key should start with -----BEGIN PRIVATE KEY----- and end with -----END PRIVATE KEY-----.

Supported format:

  • PKCS#8: -----BEGIN PRIVATE KEY----- ... -----END PRIVATE KEY-----

Not supported:

  • PKCS#1: -----BEGIN RSA PRIVATE KEY----- ... -----END RSA PRIVATE KEY-----

If your private key is in a different format, use the following commands to convert it:

  • Convert PKCS#1 to PKCS#8:

    bash
    openssl pkcs8 -topk8 -nocrypt -in key.pem -out key_pkcs8.pem
  • Convert DER to PKCS#8 PEM:

    bash
    openssl pkcs8 -topk8 -nocrypt -inform DER -in key.der -out key_pkcs8.pem
  • Convert PKCS#12 (.p12 or .pfx) to PKCS#8 PEM:

    bash
    openssl pkcs12 -in key.p12 -nocerts -nodes -out key_pkcs8.pem
  • Extract private key from a certificate and key pair:

    bash
    openssl pkcs8 -topk8 -nocrypt -in private_key.pem -out key_pkcs8.pem

OAuth Client Credentials Flow Authentication

The oauth-client-credentials authentication method uses the OAuth 2.0 Client Credentials Flow to obtain an access token. This method authenticates using client credentials (client ID and client secret) and optionally username/password, then exchanges them for an OAuth access token at the authentication endpoint.

When using oauth-client-credentials as the authentication type, the following parameters are required:

ConfigurationDescription
UsernameEnter the service account username for the SCIM-enabled service (required for OAuth Client Credentials Flow).
PasswordEnter the service account password for the SCIM-enabled service (required for OAuth Client Credentials Flow).
Client IDEnter the client ID generated by the service endpoint for application integration (required for OAuth Client Credentials Flow).
Client SecretEnter the client secret generated by the service endpoint for application integration (required for OAuth Client Credentials Flow).
Login URLEnter the URL address for login/authentication (required for OAuth Client Credentials Flow).
Grant TypeEnter the URL path and grant type parameter for OAuth Client Credentials Flow authentication (e.g., /services/oauth2/token?grant_type=password) (required for OAuth Client Credentials Flow).