Provisioning SCIM
Le Système de Gestion d'Identité Inter-domaines (SCIM) est disponible pour les clients Docker Business. Ce guide fournit un aperçu du provisioning SCIM.
Comment fonctionne SCIM
SCIM automatise le provisioning et dé-provisioning des utilisateurs pour Docker via votre fournisseur d'identité (IdP). Après avoir activé SCIM, tout utilisateur assigné à votre application Docker dans votre IdP est automatiquement provisionné et ajouté à votre organisation Docker. Quand un utilisateur est retiré de l'application Docker dans votre IdP, SCIM le désactive et le retire de votre organisation Docker.
En plus du provisioning et retrait, SCIM synchronise aussi les mises à jour de profil comme les changements de nom—effectués dans votre IdP. Vous pouvez utiliser SCIM aux côtés du provisioning Just-in-Time (JIT) par défaut de Docker ou seul avec JIT désactivé.
SCIM automatise :
- Créer des utilisateurs
- Mettre à jour les profils utilisateur
- Retirer et désactiver les utilisateurs
- Ré-activer les utilisateurs
- Mappage de groupe
NoteSCIM ne gère que les utilisateurs provisionnés via votre IdP après que SCIM soit activé. Il ne peut pas retirer les utilisateurs qui ont été ajoutés manuellement à votre organisation Docker avant que SCIM soit configuré.
Pour retirer ces utilisateurs, supprimez-les manuellement de votre organisation Docker. Pour plus d'informations, voir Gérer les membres d'organisation.
Attributs pris en charge
SCIM utilise des attributs (ex. nom, email) pour synchroniser les informations utilisateur entre votre IdP et Docker. Mapper correctement ces attributs dans votre IdP assure que le provisioning utilisateur fonctionne en douceur et empêche des problèmes comme les comptes utilisateur dupliqués lors de l'utilisation du single sign-on (SSO).
Docker prend en charge les attributs SCIM suivants :
Attribut | Description |
---|---|
userName | Adresse email principale de l'utilisateur, utilisée comme identifiant unique |
name.givenName | Prénom de l'utilisateur |
name.familyName | Nom de famille de l'utilisateur |
active | Indique si un utilisateur est activé ou désactivé, définir à "false" pour dé-provisionner un utilisateur |
Pour des détails supplémentaires sur les attributs pris en charge et SCIM, voir Référence SCIM API Docker Hub.
ImportantPar défaut, Docker utilise le provisioning Just-in-Time (JIT) pour SSO. Si SCIM est activé, les valeurs JIT ont toujours priorité et écraseront les valeurs d'attribut définies par SCIM. Pour éviter les conflits, assurez-vous que vos valeurs d'attribut JIT correspondent à vos valeurs SCIM.
Alternativement, vous pouvez désactiver le provisioning JIT pour vous appuyer uniquement sur SCIM. Pour des détails, voir Just-in-Time.
Prérequis
- Vous avez configuré SSO avec Docker et vérifié votre domaine.
- Vous avez accès au portail administrateur de votre fournisseur d'identité avec permission de créer et gérer des applications.
Activer SCIM dans Docker
Vous devez configurer SSO avant d'activer SCIM. Forcer SSO n'est pas requis pour utiliser SCIM.
- Sign in to the Admin Console.
- Select your organization or company in the left navigation drop-down menu, and then select SSO and SCIM.
- In the SSO connections table, select the Actions icon and Setup SCIM.
- Copy the SCIM Base URL and API Token and paste the values into your IdP.
ImportantLa gestion des organisations est en cours de transfert vers la console d'administration.
Gérez les membres, les équipes, les paramètres et les journaux d'activité dans la console d'administration Docker. L'accès à ces fonctionnalités dans Docker Hub prendra bientôt fin. Explorez la console d'administration.
- Sign in to Docker Hub.
- Navigate to the SSO settings page for your organization.
- Organization: Select My Hub, your organization, Settings, and then Security.
- In the SSO connections table, select the Actions icon and Setup SCIM.
- Copy the SCIM Base URL and API Token and paste the values into your IdP.
Activer SCIM dans votre IdP
L'interface utilisateur de votre IdP peut différer légèrement des étapes suivantes. Vous pouvez vous référer à la documentation de votre IdP pour vérifier. Pour des détails supplémentaires, voir la documentation de votre IdP :
NoteMicrosoft ne prend actuellement pas en charge SCIM et OIDC dans la même application non-galerie dans Entra ID. Ce guide fournit une solution de contournement vérifiée utilisant une application non-galerie séparée pour le provisioning SCIM. Bien que Microsoft ne documente pas officiellement cette configuration, elle est largement utilisée et supportée en pratique.
Étape une : Activer SCIM
- Connectez-vous à Okta et sélectionnez Admin pour ouvrir le portail admin.
- Ouvrez l'application que vous avez créée quand vous avez configuré votre connexion SSO.
- Sur la page d'application, sélectionnez l'onglet Général, puis Modifier les Paramètres d'App.
- Activez le provisioning SCIM, puis sélectionnez Sauvegarder.
- Maintenant vous pouvez accéder à l'onglet Provisioning dans Okta. Naviguez vers cet onglet, puis sélectionnez Modifier la Connexion SCIM.
- Pour configurer SCIM dans Okta, configurez votre connexion en utilisant les valeurs et paramètres suivants :
- URL Base SCIM : URL de base du connecteur SCIM (copiée depuis Docker Hub)
- Champ d'identifiant unique pour les utilisateurs :
email
- Actions de provisioning supportées : Pousser Nouveaux Utilisateurs et Pousser Mises à Jour de Profil
- Mode d'Authentification : En-tête HTTP
- Jeton Bearer SCIM : Jeton Bearer d'Autorisation d'En-tête HTTP (copié depuis Docker Hub)
- Sélectionnez Tester la Configuration du Connecteur.
- Examinez les résultats de test et sélectionnez Sauvegarder.
Étape deux : Activer la synchronisation
- Dans Okta, sélectionnez Provisioning.
- Sélectionnez Vers l'App, puis Modifier.
- Activez Créer Utilisateurs, Mettre à Jour Attributs Utilisateur, et Désactiver Utilisateurs.
- Sélectionnez Sauvegarder.
- Retirez les mappages non nécessaires. Les mappages nécessaires sont :
- Nom d'utilisateur
- Prénom
- Nom de famille
Microsoft ne prend pas en charge SCIM et OIDC dans la même application non-galerie. Vous devez créer une seconde application non-galerie dans Entra ID pour le provisioning SCIM.
Étape une : Créer une app SCIM séparée
- Dans le Portail Azure, allez à Microsoft Entra ID > Applications d'Entreprise > Nouvelle application.
- Sélectionnez Créer votre propre application.
- Nommez votre application et choisissez Intégrer toute autre application que vous ne trouvez pas dans la galerie.
- Sélectionnez Créer.
Étape deux : Configurer le provisioning SCIM
- Dans votre nouvelle application SCIM, allez à Provisioning > Commencer.
- Définissez Mode de Provisioning à Automatique.
- Sous Identifiants Admin :
- URL de Locataire : Collez l'URL Base SCIM de Docker.
- Jeton Secret : Collez le jeton API SCIM de Docker.
- Sélectionnez Tester la Connexion pour vérifier.
- Sélectionnez Sauvegarder pour stocker les identifiants.
Ensuite, configurez le mappage de rôle.
Configurer le provisioning SCIM
- Dans le Portail Azure, allez à Microsoft Entra ID > Applications d'Entreprise, et sélectionnez votre app SAML Docker.
- Sélectionnez Provisioning > Commencer.
- Définissez Mode de Provisioning à Automatique.
- Sous Identifiants Admin :
- URL de Locataire : Collez l'URL Base SCIM de Docker.
- Jeton Secret : Collez le jeton API SCIM de Docker.
- Sélectionnez Tester la Connexion pour vérifier.
- Sélectionnez Sauvegarder pour stocker les identifiants.
Ensuite, configurez le mappage de rôle.
Configurer le mappage de rôle
Vous pouvez assigner des rôles Docker aux utilisateurs en ajoutant des attributs SCIM optionnels dans votre IdP. Ces attributs écrasent les valeurs de rôle et équipe par défaut définies dans votre configuration SSO.
NoteLes mappages de rôle sont pris en charge pour SCIM et le provisioning Just-in-Time (JIT). Pour JIT, le mappage de rôle s'applique seulement quand l'utilisateur est d'abord provisionné.
Le tableau suivant liste les attributs optionnels au niveau utilisateur pris en charge :
Attribut | Valeurs possibles | Notes |
---|---|---|
dockerRole |
member , editor , ou owner |
Si non défini, l'utilisateur a par défaut le rôle member . Définir cet attribut écrase la valeur par défaut.Pour les définitions de rôle, voir Rôles et permissions. |
dockerOrg |
organizationName Docker (ex. moby ) |
Écrase l'organisation par défaut configurée dans votre connexion SSO. Si non défini, l'utilisateur est provisionné à l'organisation par défaut. Si dockerOrg et dockerTeam sont tous deux définis, l'utilisateur est provisionné à l'équipe dans l'organisation spécifiée. |
dockerTeam |
teamName Docker (ex. developers ) |
Provisionne l'utilisateur à l'équipe spécifiée dans l'organisation par défaut ou spécifiée. Si l'équipe n'existe pas, elle est automatiquement créée. Vous pouvez toujours utiliser le mappage de groupe pour assigner des utilisateurs à plusieurs équipes dans les organisations. |
L'espace de nom externe utilisé pour ces attributs est : urn:ietf:params:scim:schemas:extension:docker:2.0:User
.
Cette valeur est requise dans votre IdP lors de la création d'attributs SCIM personnalisés pour Docker.
Étape une : Configurer le mappage de rôle dans Okta
- Configurez SSO et SCIM d'abord.
- Dans le portail admin Okta, allez à Répertoire, sélectionnez Éditeur de Profil, puis Utilisateur (Par défaut).
- Sélectionnez Ajouter Attribut et configurez les valeurs pour le rôle, organisation, ou équipe que vous voulez ajouter. Un nommage exact n'est pas requis.
- Retournez à l'Éditeur de Profil et sélectionnez votre application.
- Sélectionnez Ajouter Attribut et entrez les valeurs requises. Le Nom Externe et Espace de Nom Externe doivent être exacts. Les valeurs de nom externe pour le mappage organisation/équipe/rôle sont
dockerOrg
,dockerTeam
, etdockerRole
respectivement, comme listé dans le tableau précédent. L'espace de nom externe est le même pour tous :urn:ietf:params:scim:schemas:extension:docker:2.0:User
. - Après avoir créé les attributs, naviguez vers le haut de la page et sélectionnez Mappages, puis Utilisateur Okta vers VOTRE APP.
- Allez aux attributs nouvellement créés et mappez les noms de variable aux noms externes, puis sélectionnez Sauvegarder les Mappages. Si vous utilisez le provisioning JIT, continuez vers les étapes suivantes.
- Naviguez vers Applications et sélectionnez VOTRE APP.
- Sélectionnez Général, puis Paramètres SAML, et Modifier.
- Sélectionnez Étape 2 et configurez le mappage de l'attribut utilisateur vers les variables Docker.
Étape deux : Assigner des rôles par utilisateur
- Dans le portail Admin Okta, sélectionnez Répertoire, puis Personnes.
- Sélectionnez Profil, puis Modifier.
- Sélectionnez Attributs et mettez à jour les attributs aux valeurs désirées.
Étape trois : Assigner des rôles par groupe
- Dans le portail Admin Okta, sélectionnez Répertoire, puis Personnes.
- Sélectionnez VOTRE GROUPE, puis Applications.
- Ouvrez VOTRE APPLICATION et sélectionnez l'icône Modifier.
- Mettez à jour les attributs aux valeurs désirées.
Si un utilisateur n'a pas déjà des attributs configurés, les utilisateurs qui sont ajoutés au groupe hériteront de ces attributs lors du provisioning.
Étape une : Configurer les mappages d'attribut
- Complétez la configuration du provisioning SCIM.
- Dans le Portail Azure, ouvrez Microsoft Entra ID > Applications d'Entreprise, et sélectionnez votre application SCIM.
- Allez à Provisioning > Mappages > Provisionner les Utilisateurs Azure Active Directory.
- Ajoutez ou mettez à jour les mappages suivants :
userPrincipalName
->userName
mail
->emails.value
- Optionnel. Mappez
dockerRole
,dockerOrg
, oudockerTeam
en utilisant une des méthodes de mappage.
- Retirez tous attributs non supportés pour empêcher les erreurs de synchronisation.
- Optionnel. Allez à Mappages > Provisionner les Groupes Azure Active Directory :
- Si le provisioning de groupe cause des erreurs, définissez Activé à Non.
- Si activation, testez les mappages de groupe soigneusement.
- Sélectionnez Sauvegarder pour appliquer les mappages.
Étape deux : Choisir une méthode de mappage de rôle
Vous pouvez mapper dockerRole
, dockerOrg
, ou dockerTeam
en utilisant une des
méthodes suivantes :
Mappage d'expression
Utilisez cette méthode si vous avez seulement besoin d'assigner des rôles Docker comme member
, editor
,
ou owner
.
- Dans la vue Modifier Attribut, définissez le type de mappage à Expression.
- Dans le champ Expression :
- Si vos Rôles d'App correspondent exactement aux rôles Docker, utilisez : SingleAppRoleAssignment([appRoleAssignments])
- S'ils ne correspondent pas, utilisez une expression switch :
Switch(SingleAppRoleAssignment([appRoleAssignments]), "My Corp Admins", "owner", "My Corp Editors", "editor", "My Corp Users", "member")
- Définissez :
- Attribut cible :
urn:ietf:params:scim:schemas:extension:docker:2.0:User:dockerRole
- Faire correspondre les objets utilisant cet attribut : Non
- Appliquer ce mappage : Toujours
- Attribut cible :
- Sauvegardez vos changements.
WarningVous ne pouvez pas utiliser
dockerOrg
oudockerTeam
avec cette méthode. Le mappage d'expression n'est compatible qu'avec un attribut.
Mappage direct
Utilisez cette méthode si vous avez besoin de mapper plusieurs attributs (ex. dockerRole
+
dockerTeam
).
- Pour chaque attribut Docker, choisissez un attribut d'extension Entra unique (ex.
extensionAttribute1
,extensionAttribute2
, etc.). - Dans la vue Modifier Attribut :
- Définissez le type de mappage à Direct.
- Définissez Attribut source à votre attribut d'extension sélectionné (ex.
extensionAttribute1
). - Définissez Attribut cible à un de :
dockerRole: urn:ietf:params:scim:schemas:extension:docker:2.0:User:dockerRole
dockerOrg: urn:ietf:params:scim:schemas:extension:docker:2.0:User:dockerOrg
dockerTeam: urn:ietf:params:scim:schemas:extension:docker:2.0:User:dockerTeam
- Définissez Appliquer ce mappage à Toujours.
- Sauvegardez vos changements.
Pour assigner des valeurs, vous devrez utiliser l'API Microsoft Graph.
Étape trois : Assigner des utilisateurs et groupes
Pour l'une ou l'autre méthode de mappage :
- Dans l'app SCIM, allez à Utilisateurs et Groupes > Ajouter utilisateur/groupe.
- Sélectionnez les utilisateurs ou groupes à provisionner vers Docker.
- Sélectionnez Assigner.
Si vous utilisez le mappage d'expression :
- Allez à Enregistrements d'App > votre app SCIM > Rôles d'App.
- Créez des Rôles d'App qui correspondent aux rôles Docker.
- Assignez des utilisateurs ou groupes aux Rôles d'App sous Utilisateurs et Groupes.
Si vous utilisez le mappage direct :
- Allez à Microsoft Graph Explorer et connectez-vous en tant qu'admin de locataire.
- Utilisez l'API Microsoft Graph pour assigner des valeurs d'attribut. Exemple de requête PATCH :
PATCH https://graph.microsoft.com/v1.0/users/{user-id}
Content-Type: application/json
{
"extensionAttribute1": "owner",
"extensionAttribute2": "moby",
"extensionAttribute3": "developers"
}
NoteVous devez utiliser un attribut d'extension différent pour chaque champ SCIM.
Voir la documentation de votre IdP pour des détails supplémentaires :
Tester le provisioning SCIM
Après avoir complété le mappage de rôle, vous pouvez tester la configuration manuellement.
- Dans le portail admin Okta, allez à Répertoire > Personnes.
- Sélectionnez un utilisateur que vous avez assigné à votre application SCIM.
- Sélectionnez Provisionner Utilisateur.
- Attendez quelques secondes, puis vérifiez la Console Admin Docker sous Membres.
- Si l'utilisateur n'apparaît pas, examinez les journaux dans Rapports > Journal Système et confirmez les paramètres SCIM dans l'app.
- Dans le Portail Azure, allez à Microsoft Entra ID > Applications d'Entreprise, et sélectionnez votre app SCIM.
- Allez à Provisioning > Provisionner à la demande.
- Sélectionnez un utilisateur ou groupe et choisissez Provisionner.
- Confirmez que l'utilisateur apparaît dans la Console Admin Docker sous Membres.
- Si nécessaire, vérifiez Journaux de provisioning pour les erreurs.
Désactiver SCIM
Si SCIM est désactivé, tout utilisateur provisionné via SCIM restera dans l'organisation. Les changements futurs pour vos utilisateurs ne se synchroniseront pas depuis votre IdP. Le dé-provisioning d'utilisateur n'est possible que lors de la suppression manuelle de l'utilisateur de l'organisation.
- Sign in to the Admin Console.
- Select your organization or company in the left navigation drop-down menu, and then select SSO and SCIM.
- In the SSO connections table, select the Actions icon.
- Select Disable SCIM.
ImportantLa gestion des organisations est en cours de transfert vers la console d'administration.
Gérez les membres, les équipes, les paramètres et les journaux d'activité dans la console d'administration Docker. L'accès à ces fonctionnalités dans Docker Hub prendra bientôt fin. Explorez la console d'administration.
- Sign in to Docker Hub.
- Navigate to the SSO settings page for your organization.
- Organization: Select My Hub, your organization, Settings, and then Security.
- In the SSO connections table, select the Actions icon.
- Select Disable SCIM.
Plus de ressources
Les vidéos suivantes démontrent comment configurer SCIM pour votre IdP :
- Vidéo : Configurer SCIM avec Okta
- Vidéo : Mappage d'attribut avec Okta
- Vidéo : Configurer SCIM avec Entra ID/Azure AD
- Vidéo : Mappage d'attribut et de groupe avec Entra ID/Azure AD
Référez-vous au guide de dépannage suivant si nécessaire :