Exemples d'Okta Expression Language

Okta Expression Language (EL) permet aux super administrateurs, aux administrateurs d'applications et aux administrateurs personnalisés de référence, de transformer ou d'associer des attributs d'utilisateur et des informations concernant les groupes. Lors de la création ou de la modification d'une règle de politique, vous pouvez utiliser des expressions Okta Expression Language pour définir la permission de l'utilisateur.

Conseils

  • Consultez la documentation Okta Expression Language pour vous familiariser avec la syntaxe.
  • Assurez-vous que votre expression donne une valeur booléenne lors de la définition des utilisateurs :
    • « True » pour inclure des utilisateurs.
    • « False » pour exclure des utilisateurs de la règle.
  • 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é Prévisualiser.
  • Utilisez n'importe quelle valeur contenue dans le profil d'un utilisateur afin de réduire la permission de la règle.
  • Pour faire référence à un groupe dans votre expression, utilisez le nom ou l'ID du groupe. Okta recommande d'utiliser l'ID du groupe, car il ne changera pas.
  • Utilisez les symboles suivants pour désigner un opérateur :
    • ET ou && pour désigner l'opérateur Et.
    • OR ou || pour désigner l'opérateur Ou.
    • ! pour désigner l'opérateur Non.

Exemples d'expressions

Cas d'utilisation Exemple d'expression
Limiter la règle aux membres d'un groupe en particulier. Utilisez l'une des expressions suivantes :
  • user.isMemberOf({'group.profile.name': 'West Coast Users', 'operator': 'EXACT'})

  • user.isMemberOf({'group.id': '00gjitX9HqABSoqTB0g3'})

Inclure uniquement les utilisateurs qui appartiennent à un domaine Realm spécifique dans la règle de politique. user.realmId == "o4cbj6ybZl1QShj0g7" OR user.realmId == "guo4c8usniIlFgluO0g7" OR user.realmId == "guo4c7skrkbxDgJ140g7"

Utilisez cette expression uniquement si la fonctionnalité Domaines Realm est activée.

Inclure tous les utilisateurs, sauf les membres de certains groupes. Utilisez l'une des expressions suivantes :
  • !user.isMemberOf({'group.profile.name': 'West Coast Users', 'operator': 'EXACT'})

  • !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. Utilisez l'une des expressions suivantes :
  • user.isMemberOf({'group.id': '00gjitX9HqABSoqTB0g3'}) || user.isMemberOf({'group.id': '00garwpuyxHaWOkdV0g4'})

  • user.isMemberOf({'group.id': {'00gjitX9HqABSoqTB0g3', '00garwpuyxHaWOkdV0g4'}})

Inclure les utilisateurs qui sont membres d'un groupe, mais pas d'un autre groupe. user.isMemberOf({'group.profile.name': 'West Coast Users', 'operator': 'EXACT'}) && !user.isMemberOf({'group.id': '00garwpuyxHaWOkdV0g4'})
IInclure ncluez les utilisateurs dont le statut est Actif dans la règle. user.status == 'ACTIVE'
Restreindre une règle en fonction des attributs du Profil utilisateur (p. ex. : département, état, centre de coûts). Pour des correspondances exactes, utilisez : user.profile.department != null && user.profile.department == "Finance Department"

Pour des correspondances partielles, utilisez : user.profile.department != null && user.profile.department.contains("Finance")

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 :

  • Les utilisateurs qui font partie du service des ressources humaines ou d'un service dont le nom contient le mot « communications » ; et
  • Les utilisateurs qui ne font pas partie d'un groupe dans l'EMEA ; et
  • Les utilisateurs qui font partie d'au moins un des trois groupes suivants : Stagiaires, Fournisseurs ou Partenaires.
user.profile.department != null &&(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'})

Rubriques liées

Gérer la politique

Prévisualisation de la politique