Skip to content

SCIM 2.0 ​

Le connecteur SCIM permet la synchronisation des données entre les applications supportant le standard SCIM (System for Cross-domain Identity Management) 2.0 et RAC/M Identity. Pour ce faire, le connecteur utilise l'API REST SCIM. Le standard SCIM est défini dans les RFC 7642, RFC 7643 et RFC 7644.

WARNING

Le support SCIM varie selon les applications. En général, toutes les fonctionnalités ne sont pas disponibles via l'API SCIM. Veuillez vous référer à la documentation SCIM de votre application pour comprendre quelles fonctionnalités sont supportées.

Configuration ​

Le connecteur supporte plusieurs méthodes d'authentification. Pour déterminer quelle méthode utiliser, référez-vous à la documentation SCIM de votre application. De plus, OKIOK a testé certaines implémentations SCIM spécifiques et fournit des paramètres de configuration spécifiques pour celles-ci. Consultez les pages dédiées pour chaque implémentation.

Paramètres communs ​

Les paramètres suivants sont requis indépendamment du type d'authentification :

ConfigurationDescription
AuthenticationSélectionnez la méthode d'authentification : token (jeton API), jwt-bearer-token (jeton porteur JWT), ou oauth-client-credentials (flux OAuth Client Credentials).
SCIM EndpointEntrez le chemin de l'endpoint SCIM sur le fournisseur de services (par ex., /services/scim).
SCIM VersionEntrez la version de l'API SCIM supportée par le fournisseur de services (par ex., /v1 ou /v2).
Proxy AddressEntrez l'adresse du serveur proxy (nom d'hôte ou adresse IP).
Proxy Port NumberEntrez le numéro de port du serveur proxy.
Default CharsetEntrez l'encodage de caractères par défaut utilisé lorsque la réponse ne spécifie pas de charset (par ex., UTF-8).
Base URLEntrez l'URL de base du service.
Custom HTTP headersListe optionnelle d'en-têtes HTTP supplémentaires ajoutés à chaque requête SCIM, une valeur par entrée, au format Name: value (par ex., ocp-apim-subscription-key: <clé>). Utile pour les passerelles API telles qu'Azure API Management. Les valeurs sont confidentielles (stockées et affichées comme valeurs protégées), car un en-tête peut contenir un secret tel qu'une clé d'abonnement. Non envoyés avec la requête d'authentification (jeton). Laissez vide pour n'envoyer aucun en-tête supplémentaire.

Authentification par jeton ​

La méthode d'authentification token est un simple jeton "Bearer" ajouté à l'en-tête Authorization de la requête.

Lors de l'utilisation de token comme type d'authentification, les paramètres suivants sont requis :

ConfigurationDescription
TokenEntrez le jeton API utilisé pour l'authentification basée sur un jeton.

Authentification par jeton porteur JWT ​

La méthode d'authentification jwt-bearer-token génère un jeton JWT signé à l'aide d'une clé privée et l'envoie à l'endpoint d'authentification. L'endpoint d'authentification renvoie ensuite un jeton d'accès OAuth qui peut être utilisé pour authentifier la requête.

Lors de l'utilisation de jwt-bearer-token comme type d'authentification, les paramètres suivants sont requis :

ConfigurationDescription
Private Key (PEM)Entrez la clé privée au format PEM (PKCS#8). Requis pour l'authentification par jeton porteur JWT. Consultez Format de la clé privée ci-dessous pour plus de détails.
JWT Authentication EndpointEntrez l'URL de l'endpoint d'authentification qui accepte les jetons porteurs JWT et renvoie des jetons d'accès OAuth.
JWT IssuerEntrez la valeur de la revendication (claim) émetteur (iss) à inclure dans le jeton JWT.
JWT SubjectEntrez la valeur de la revendication (claim) sujet (sub) à inclure dans le jeton JWT.
JWT AudienceEntrez la valeur de la revendication (claim) audience (aud) à inclure dans le jeton JWT.
JWT Expiration SecondsEntrez le temps d'expiration du jeton JWT en secondes (par défaut : 300 secondes / 5 minutes).

Format de la clé privée ​

La clé privée doit être fournie au format PEM en utilisant l'encodage PKCS#8. La clé doit commencer par -----BEGIN PRIVATE KEY----- et se terminer par -----END PRIVATE KEY-----.

Format supporté :

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

Non supporté :

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

Si votre clé privée est dans un format différent, utilisez les commandes suivantes pour la convertir :

  • Convertir PKCS#1 en PKCS#8 :

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

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

    bash
    openssl pkcs12 -in key.p12 -nocerts -nodes -out key_pkcs8.pem
  • Extraire la clé privée d'une paire certificat/clé :

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

Authentification par flux OAuth Client Credentials ​

La méthode d'authentification oauth-client-credentials utilise le flux OAuth 2.0 Client Credentials pour obtenir un jeton d'accès. Cette méthode s'authentifie en utilisant les identifiants client (ID client et secret client) et, pour les types d'octroi qui les exigent, un nom d'utilisateur/mot de passe, puis les échange contre un jeton d'accès OAuth à l'endpoint d'authentification. Le paramètre grant_type est toujours envoyé dans le corps de la requête de jeton (requis par des fournisseurs tels que Microsoft Entra ID).

Lors de l'utilisation de oauth-client-credentials comme type d'authentification, les paramètres suivants s'appliquent :

ConfigurationDescription
UsernameEntrez le nom d'utilisateur du compte de service pour le service compatible SCIM. Requis pour les types d'octroi qui portent les identifiants du propriétaire de la ressource (par ex. password) ; laissez vide pour client_credentials.
PasswordEntrez le mot de passe du compte de service pour le service compatible SCIM. Requis pour les types d'octroi qui portent les identifiants du propriétaire de la ressource (par ex. password) ; laissez vide pour client_credentials.
Client IDEntrez l'ID client généré par l'endpoint de service pour l'intégration d'application (requis pour le flux OAuth Client Credentials).
Client SecretEntrez le secret client généré par l'endpoint de service pour l'intégration d'application (requis pour le flux OAuth Client Credentials).
Login URLEntrez l'adresse URL pour la connexion/authentification (requis pour le flux OAuth Client Credentials). Lorsque Grant type est un type d'octroi seul (par ex. client_credentials), cette URL doit être l'endpoint de jeton lui-même.
Grant TypeEntrez soit le type d'octroi seul (par ex. client_credentials) — l'URL de connexion est alors l'endpoint de jeton lui-même — soit le chemin de l'endpoint de jeton avec son paramètre de type d'octroi, ajouté à l'URL de connexion (par ex. /services/oauth2/token?grant_type=password) (requis pour le flux OAuth Client Credentials). Les orthographes avec tirets du type d'octroi client credentials (client-credentials, client-credential) sont acceptées et mappées vers client_credentials.
OAuth scopeListe optionnelle de portées OAuth séparées par des espaces, envoyée comme paramètre scope de la requête de jeton (par ex., api refresh_token). Laissez vide pour omettre le paramètre. Certains fournisseurs exigent une portée pour le flux OAuth Client Credentials.

Si la réponse de jeton ne contient pas d'instance_url (par exemple Microsoft Entra ID), le connecteur utilise le Base URL configuré comme racine du service. Dans ce cas, définissez Base URL sur la racine du service SCIM.