Configuration du provisionnement JIT SAML
Le provisionnement juste à temps (JIT) SAML automatise la création de compte utilisateur lorsque l'utilisateur commence par tenter de recourir à SSO alors qu'il n'existe pas encore dans le domaine d'identité. Outre la création automatique d'utilisateur, le provisionnement JIT SAML permet d'accorder et de révoquer des appartenances aux groupes dans le cadre du provisionnement. Le provisionnement JIT SAML peut être configuré pour mettre à jour les utilisateurs provisionnés afin que les attributs des utilisateurs dans la banque du fournisseur de services puissent rester synchronisés avec les attributs de la banque des utilisateurs du fournisseur d'identités (IdP).
Lors de la configuration du provisionnement JIT SAML, vous définissez la façon dont les données utilisateur envoyées par votre SAML IdP seront utilisées pour créer et/ou mettre à jour des utilisateurs dans votre domaine d'identité. Tout d'abord, vous créez et configurez une valeur SAML IdP pour SSO fédéré, puis vous activez et configurez les options de provisionnement JIT SAML pour cette valeur IdP.
Vous pouvez configurer le provisionnement JIT SAML uniquement à l'aide de l'adresse d'API REST /admin/v1/IdentityProviders.
Propriété IdentityProvider |
Description | Exemple JSON |
|---|---|---|
jitUserProvEnabled |
Propriété booléenne permettant d'activer/de désactiver la fonctionnalité de provisionnement JIT SAML pour cette instance IdP. Si cette propriété esttrue, au moins l'une des propriétés jitUserProvCreateUserEnabled ou jitUserProvAttributeUpdateEnabled doit également être true. |
|
jitUserProvCreateUserEnabled |
Propriété booléenne indiquant si un utilisateur doit être créé, en fonction de l'assertion entrante, si l'utilisateur n'existe pas encore. Par défaut, les utilisateurs créés à l'aide du provisionnement JIT SAML sont des utilisateurs "fédérés". Les utilisateurs fédérés ne disposent pas d'informations d'identification pour se connecter directement au domaine d'identité, mais doivent être authentifiés par le fournisseur d'identités externe. Vous pouvez modifier le statut fédéré d'un utilisateur à l'aide de la console d'administration et en mettant à jour l'attribut |
|
jitUserProvAttributeUpdateEnabled |
Propriété booléenne indiquant si les attributs de l'utilisateur doivent être mis à jour, en fonction de l'assertion entrante, si l'utilisateur existe déjà. |
|
jitUserProvAttributes |
Il s'agit d'une référence à un objet Reportez-vous ci-dessous pour plus de détails sur l'utilisation de |
|
jitUserProvGroupAssertionAttributeEnabled |
Propriété booléenne indiquant si les appartenances aux groupes doivent être affectées à l'utilisateur en fonction d'une liste de noms de groupe reçus de IdP dans un attribut SAML. Si cette propriété est |
|
jitUserProvGroupMappingMode |
Propriété de chaîne qui contrôle la façon dont les groupes dans IdP sont mis en correspondance avec ceux du domaine d'identité. La valeur doit être l'une des suivantes : explicite : les groupes IdP sont explicitement mis en correspondance avec les groupes du domaine d'identité à l'aide de la propriété de configuration implicite : les noms de groupe dans l'assertion SAML doivent correspondre aux noms de groupe dans le domaine d'identité. La valeur par défaut est explicite si aucune valeur n'est spécifiée. |
|
jitUserProvGroupMappings |
Tableau de correspondances entre les groupes de l'assertion IdP et les groupes du domaine d'identité. Chaque objet du tableau représente un mappage entre un groupe IdP et un groupe de domaines d'identité.
Le nombre maximal de mappages de groupe par IdP est de 250. Remarque : Lorsque vous utilisez le provisionnement juste à temps (JIT) SAML avec le mapping de groupe pour affecter ou enlever des autorisations de groupe pour un utilisateur, sachez que les modifications apportées à l'appartenance à un groupe peuvent ne pas être reflétées immédiatement. Cela est dû à la cohérence éventuelle, en particulier lors de l'accès aux fonctionnalités qui s'appuient sur le plan de données Identity, telles que la console OCI. Par conséquent, il peut y avoir un délai avant que les affectations ou les suppressions d'utilisateurs ne soient entièrement propagées aux groupes concernés. Les temps de propagation peuvent être plus longs pour les scénarios inter-région. |
|
jitUserProvGroupSAMLAttributeName |
Nom de l'attribut d'assertion SAML qui contiendra les groupes à affecter à l'utilisateur, si la propriété L'attribut d'assertion peut comprendre les éléments suivants :
|
|
jitUserProvGroupStaticListEnabled |
Propriété booléenne indiquant si les appartenances aux groupes doivent être affectées à l'utilisateur en fonction d'une liste statique de noms de groupe. Si cette propriété est |
|
jitUserProvAssignedGroups |
Tableau de groupes à affecter à l'utilisateur, en plus des valeurs reçues dans l'assertion SAML, si la propriété Remarque : les valeurs définies dans ce tableau sont des ID de groupe (et non des noms de groupe). |
|
jitUserProvGroupAssignmentMethod |
Propriété de chaîne qui contrôle la façon dont les appartenances aux groupes seront affectées à l'utilisateur dans le domaine d'identité. La valeur doit être l'une des suivantes :
|
|
jitUserProvIgnoreErrorOnAbsentGroups |
Propriété booléenne qui détermine l'action à effectuer lorsque l'attribut d'assertion entrant indique un groupe qui n'existe pas ou un groupe pour lequel aucune correspondance de groupe n'existe dans le domaine d'identité. Si cette propriété a la valeur True, le groupe manquant est ignoré et l'utilisateur est créé. Si cette propriété est fausse et qu'un groupe inexistant est spécifié, la création de l'utilisateur échouera. La valeur par défaut est True pour le mode explicit et False pour le mode implicit spécifié à l'aide de |
|
Configuration du mapping jitUserProvAttributes
Une fois que IdentityProvider a été créé et que les attributs de provisionnement JIT SAML ont été configurés, la ressource jitUserProvAttributes doit être mise à jour pour ajouter vos correspondances d'attributs entrantes. La ressource MappedAttributes, référencée par jitUserProvAttributes, est automatiquement créée et supprimée avec la ressource IdentityProvider, et cette propriété est marquée comme non mutable. Les correspondances d'attributs de provisionnement JIT SAML sont configurées en mettant à jour l'objet MappedAttributes existant, et non en le remplaçant.
MappedAttributes utilisées par le provisionnement JIT SAML.Propriété MappedAttributes |
Description | Exemples JSON |
|---|---|---|
attributeMappings |
Liste des correspondances entre les attributs d'assertion SAML et les attributs utilisateur du domaine d'identité. Chaque mapping se compose des éléments suivants :
Remarque : les noms d'attribut d'assertion SAML sont sensibles à la casse. |
|
refResourceType |
Nom de la ressource qui utilise/a une référence à cet attribut mis en correspondance (toujours |
|
idcsResourceType |
Type de la ressource de domaine d'identité avec laquelle nous sommes en correspondance (toujours |
|
direction |
Direction de la mise en correspondance, par rapport à la ressource de domaine d'identité en question (toujours |
|
refResourceID |
ID de la ressource |
|
Pour mettre à jour les correspondances d'attributs, vous devez d'abord identifier la ressource MappedAttributes correcte pour votre ressource IdP. Pour ce faire, extrayez la ressource IdentityProvider et examinez l'attribut $ref de la propriété jitUserProvAttributes.
Par exemple, vous pouvez disposer d'une ressource MappedAttributes telle que https://<domainURL>/admin/v1/MappedAttributes/6533d475754845a8b0e971c48b87edda, que vous devez ensuite PATCH pour mettre à jour sa propriété attributeMappings.
Exemple de charge utile PATCH pour MappedAttributes
{
"schemas": [
"urn:ietf:params:scim:api:messages:2.0:PatchOp"
], "Operations": [
{
"op": "replace",
"path": "attributeMappings",
"value": [
{
"managedObjectAttributeName": "$(assertion.mail)",
"idcsAttributeName": "userName"
},
{
"managedObjectAttributeName": "$(assertion.firstname)",
"idcsAttributeName": "name.givenName"
},
{
"managedObjectAttributeName": "$(assertion.lastname)",
"idcsAttributeName": "name.familyName"
},
{
"managedObjectAttributeName": "$(assertion.mail)",
"idcsAttributeName": "emails[primary eq true and type eq \"work\"].value"
}
]
}
]
}
Utilisation et comportement d'exécution de la correspondance d'attributs de provisionnement JIT SAML
Si les valeurs de userName, name.givenName et name.familyName ne sont pas présentes, une erreur est générée lors de l'exécution, car ces attributs sont marqués comme obligatoires dans le schéma User. Il en va de même pour l'adresse électronique principale, sauf si le locataire a été configuré pour rendre cette option facultative.
Lors de l'exécution, si une valeur d'attribut d'assertion ne peut pas être convertie en un type de données pouvant être affecté à l'attribut utilisateur auquel elle est mise en correspondance, une erreur survient et SSO échoue.
Si plusieurs correspondances d'attributs sont configurées ciblant le même attribut utilisateur de domaines d'identité, elles sont évaluées et exécutées dans l'ordre des positions, et seul le résultat du dernier mapping est conservé.
Un attribut d'assertion entrant qui ne contient aucune valeur entraîne la suppression de la valeur de l'attribut utilisateur de domaines d'identité mis en correspondance, si jitUserProvAttributeUpdateEnabled est true.
${assertion.fed.issuerid)$(assertion.fed.nameidvalue)
- Attributs sensibles : attributs marqués
"idcsSensitive: hash"ou"idcsSensitive: encrypt"dans le schéma - Attributs marqués
"idcsInternal: true"dans le schéma - Attributs : readOnly
- Tous les attributs que la synchronisation utilisateur n'autorise pas
Lorsqu'un utilisateur est créé à l'aide du provisionnement JIT SAML, les attributs suivants sont définis. Les attributs suivants ne sont pas configurables :
bypassNotification : true: par exemple, aucun courriel d'activation de compte ne sera envoyé à l'utilisateur nouvellement créé.syncedFromApp: référence à la ressource de fournisseur d'identités correspondant à l'émetteur de l'assertion SAML entrante.
isFederatedUser est défini sur true par défaut. Vous pouvez modifier ce comportement en définissant l'attribut isFederatedUser sur false dans la configuration attributeMappings du provisionnement JIT SAML.Ce comportement par défaut (
isFederatedUser = true) s'applique uniquement à la création d'utilisateur et non à la mise à jour d'utilisateur. La configuration attributeMappings s'applique à la fois à la création d'utilisateur et à la mise à jour d'utilisateur.Foire aux questions
Q : Est-il obligatoire pour les groupes d'être présents dans les domaines d'identité de mettre à jour l'appartenance aux groupes lors du provisionnement JIT SAML ?
R : Oui. Les groupes doivent être synchronisés ou créés manuellement dans les domaines d'identité avant la mise à jour de l'appartenance au groupe. Le provisionnement JIT SAML ne créera pas de groupes à la volée.
Q : Puis-je mettre en correspondance un littéral dans la mise en correspondance d'attributs ? Par exemple, je veux mettre en correspondance isFederatedUser = true lors de la création de l'utilisateur ?
R : Oui.
Question : La mise en correspondance d'attributs prend-elle en charge les attributs à valeurs multiples ? Si oui, appliquons-nous un patch à la charge utile ou faisons-nous un remplacement ?
R : Oui. Toutes les valeurs de l'attribut utilisateur de domaine d'identité sont remplacées par le résultat net du mappage d'attribut de provisionnement JIT SAML.
Q : Si un utilisateur est enlevé d'un groupe dans IdP, comment le gérer ? Que se passe-t-il si ce groupe est affecté manuellement dans les domaines d'identité ? Pouvons-nous configurer un comportement de remplacement ou de patch ?
R : L'affectation de groupe à l'aide de la mise à jour de provisionnement JIT SAML peut être configurée pour avoir un comportement de fusion ou de remplacement, pour l'ensemble des affectations de groupe de l'utilisateur. Par exemple, si la mise à jour est configurée pour l'écrasement, toutes les affectations de groupe manuelles qui n'apparaissent pas dans l'assertion IdP seront enlevées.
Q : Pouvons-nous configurer le provisionnement JIT SAML pour qu'il se produise uniquement lors de la création de l'utilisateur, mais pas pour qu'il soit mis à jour ultérieurement ?
R : Oui. Si jitUserProvCreateUserEnabled a la valeur True et que jitUserProvAttributeUpdateEnabled a la valeur False, le provisionnement JIT SAML créera des utilisateurs s'ils sont manquants, mais ne les mettra pas à jour lors des connexions suivantes.