Exemples d' Langage d'expression Okta
L'Langage d'expression Okta (EL) permet aux super administrateurs et aux administrateurs des certifications d'accès de référencer, transformer ou associer des attributs d'utilisateur et des informations concernant les groupes. Lors de la création ou de la modification d'une campagne de certification d'accès, vous pouvez utiliser les expressions d'Langage d'expression Okta pour faire ce qui suit :
- Limiter votre campagne à un sous-ensemble d'utilisateurs
- Personnaliser les réviseurs pour chaque utilisateur
Conseils
- Consultez la documentation Langage d'expression Okta pour vous familiariser avec la syntaxe.
- Utilisez l'opérateur ternaire
[Condition] ? [Value if TRUE] : [Value if FALSE]pour générer des conditions qui ont pour but de définir des réviseurs dynamiques. - Assurez-vous que votre expression donne une valeur booléenne lors de la définition des utilisateurs :
- True (Vrai) pour inclure des utilisateurs.
- False (Faux) pour les exclure de la campagne.
- Effectuez les tâches suivantes lorsque vous définissez des réviseurs :
- Assurez-vous que votre expression détermine s'il faut utiliser l'identifiant de l'utilisateur ou le nom d'utilisateur d'un utilisateur Okta unique. Si ça n'est pas le cas, le système affecte le réviseur de secours défini dans le générateur de campagne à la révision de l'ensemble des éléments pour cet utilisateur.
- Lorsque vous créez vos expressions, il peut s'avérer utile de réfléchir à la logique liée au réviseur avec les termes IF/THEN pour chaque utilisateur. Par exemple, pour l'utilisateur A, si la condition P est True (Vrai), alors il faut affecter le réviseur B.
- Commencez avec des expressions simples. Ajoutez ensuite progressivement des conditions pour vous assurer que votre expression fonctionne correctement.
- Testez votre expression à l'aide de la fonctionnalité Preview (Prévisualiser) sur les panneaux Users (Utilisateurs) et Reviewers (Réviseurs).
- Servez-vous de n'importe quelle valeur contenue sur le profil d'un utilisateur et d'un groupe afin de réduire la portée de la campagne.
- Pour faire référence à un groupe dans votre expression, utilisez le nom ou l'ID du groupe. Okta recommande d'utiliser l'identifiant du groupe, car il ne changera pas.
- Utilisez les symboles suivants pour désigner un opérateur :
-
&&pour signifier Et opérateur. -
||pour signifier Ou opérateur. -
!pour désigner l'opérateur Non.
-
Définir la portée de l'utilisateur
Utilisez l'Langage d'expression Okta pour limiter la portée de la campagne à un utilisateur selon les attributs de leur profil et l'appartenance à un groupe. Dans votre expression personnalisée, True (Vrai) doit inclure les utilisateurs et False (faux) doit les exclure de la campagne.
Assurez-vous que votre expression personnalisée donne une valeur booléenne : True (Vrai) doit inclure les utilisateurs et False (faux) doit les exclure de la campagne. Consultez la section Langage d'expression Okta pour obtenir de plus amples informations.
Exemples d'expressions
| Cas d'utilisation | Exemples d'expressions |
|---|---|
| Restreindre la campagne aux membres d'un groupe en particulier. | user.isMemberOf({'group.profile.name': 'West Coast Users', 'operator': 'EXACT'}) ou |
| Inclure tous les utilisateurs, sauf les membres de certains groupes. | !user.isMemberOf({'group.profile.name': 'West Coast Users', 'operator': 'EXACT'}) ou !user.isMemberOf({'group.id': '00gjitX9HqABSoqTB0g3'}) |
| Inclure les utilisateurs membres des deux groupes. | user.isMemberOf({'group.id': '00gjitX9HqABSoqTB0g3'}) && user.isMemberOf({'group.id': '00garwpuyxHaWOkdV0g4'}) |
| Inclure seulement les utilisateurs membres d'au moins un des deux groupes. | user.isMemberOf({'group.id': '00gjitX9HqABSoqTB0g3'}) || user.isMemberOf({'group.id': '00garwpuyxHaWOkdV0g4'}) ou |
| Inclure uniquement les utilisateurs qui appartiennent à un domaine Realm spécifique dans la campagne. | user.realmId == "o4cbj6ybZl1QShj0g7" ou user.realmId == "guo4c8usniIlFgluO0g7" ou user.realmId == "guo4c7skrkbxDgJ140g7" Remarque :
Utilisez cette expression uniquement si la fonctionnalité Domaines Realm est activée. |
| Inclure les utilisateurs qui sont membres d'un groupe, mais pas d'un autre groupe. | |
|
Inclure les utilisateurs dont le statut est Actif pour des campagnes. Cette expression n'inclut pas les utilisateurs dont le statut est Approvisionné ou Intermédiaire. |
user.status == 'ACTIVE' or user.status == 'PASSWORD_EXPIRED' or user.status == 'LOCKED_OUT' or user.status == 'RECOVERY' |
| Restreindre une campagne en fonction des attributs du profil de l'utilisateur (p. ex. : service, état, centre de coûts). | Pour les correspondances exactes, utilisez cette expression : user.profile.department == "Finance Department" Pour les correspondances partielles, utilisez cette expression : |
|
Utilisez une combinaison d'attributs de profil utilisateur et de groupes pour définir des expressions complexes qui vous permettront d'inclure les utilisateurs suivants :
|
(user.profile.department.contains("Communications") || (user.profile.department.contains("Communications") || user.profile.department == "Human Resources") && !user.isMemberOf({'group.profile.name': 'EMEA', 'operator': 'EXACT' }) && user.isMemberOf({'group.profile.name': {{"Interns", "Contractors", "Partners"}, 'operator': 'EXACT'}}) |
Définir des réviseurs dynamiques
Utilisez l'Langage d'expression Okta pour personnaliser le réviseur pour chaque utilisateur. Par exemple, si vous souhaitez que le responsable d'un utilisateur examine ses accès ou encore si vous voulez désigner un réviseur pour différentes équipes ou services. Avant de créer des expressions avec l'Langage d'expression Okta, consultez la section Astuces.
Assurez-vous que votre expression détermine s'il faut utiliser l'identifiant de l'utilisateur ou le nom d'utilisateur d'un utilisateur Okta unique. Si l'expression est invalide ou ne permet pas d'obtenir un utilisateur, alors le système assigne le réviseur de secours défini lors de la création de la campagne pour la révision de l'ensemble des éléments pour cet utilisateur.
Lorsque vous créez vos expressions, il peut s'avérer utile de réfléchir à la logique liée au réviseur avec les termes IF/THEN pour chaque utilisateur. Par exemple, pour l'utilisateur A, si la condition P est True (Vrai), alors il faut affecter le réviseur B.
Exemples d'expressions
| Cas d'utilisation | Exemples d'expressions |
|---|---|
| Affecter le responsable de l'utilisateur à chaque utilisateur. | user.profile.managerId |
| Affecter le responsable de l'utilisateur uniquement pour les utilisateurs qui disposent d'un certain attribut de profil (dans cet exemple, le service est le Service 1) et un réviseur spécifique à tous les autres utilisateurs. | user.profile.department == "Human Resources" ? user.profile.managerId : "jsmith@example.com" |
|
Définissez un propriétaire du groupe comme réviseur pour un groupe ayant au moins un propriétaire défini. |
|
|
Définissez le propriétaire du groupe comme réviseur pour un groupe qui a un ou plusieurs propriétaires. |
|
|
Affecter un réviseur aux utilisateurs membres d'un groupe en particulier. |
De plus, pour affecter le réviseur de secours aux utilisateurs qui ne font pas partie du groupe, utilisez cette expression : |
|
Affecter les réviseurs qui appartiennent à un domaine Realm spécifique |
Remarque :
Utilisez cette expression uniquement si la fonctionnalité Domaines Realm est activée. |
| Affecter un réviseur aux utilisateurs membres de deux groupes. Sinon, affecter le responsable de l'utilisateur. | (user.isMemberOf({'group.id': '00gjitX9HqABSoqTB0g3'}) && user.isMemberOf({'group.id': '00garwpuyxHaWOkdV0g4'})) ? 'groupreviewer@example.com' : user.profile.managerId |
| Affecter un réviseur aux utilisateurs membres d'au moins un des deux groupes. Sinon, affecter le réviseur de secours. | user.isMemberOf({'group.id': {'00gjitX9HqABSoqTB0g3', '00garwpuyxHaWOkdV0g4'}}) ? "groupreviewer@example.com" : null |
| Affecter un réviseur pour les utilisateurs qui sont membres d'un groupe, mais qui ne sont pas membres d'un autre. Sinon, affecter le responsable de l'utilisateur. | (user.isMemberOf({'group.profile.name': 'West Coast Users', 'operator': 'EXACT'}) && !user.isMemberOf({'group.id': '00garwpuyxHaWOkdV0g4'})) ? "groupreviewer@example.com" : user.profile.managerId |
Rubriques connexes
Créer une campagne de certification des droits d'accès
Créer des campagnes utilisateurs