Okta Expression Language et crochets d'événement
Version de l'accès anticipé. Consultez la section Activer les fonctionnalités en libre-service.
Utilisez les expressions Okta Expression Language pour identifier uniquement certains événements qui déclenchent des crochets d'événement Okta. Lors de la création ou de la modification d'un crochet d'événement, vous pouvez utiliser les expressions Okta Expression Language pour effectuer les tâches suivantes :
-
Définir un filtre pour autoriser un sous-ensemble d'événements qui sont déclenchés par un crochet d'événement.
-
Réduire les incidents liés au service Web externe qui gère votre crochet d'événement.
Pour en savoir plus sur Okta Expression Language, consultez Aperçu de Okta Expression Language.
Informations de configuration
-
Assurez-vous que votre expression donne une valeur booléenne lors de la définition du filtre de votre crochet d'événement.
-
Commencez avec des expressions simples, puis ajoutez progressivement des conditions. Cette approche permet de vous assurer que votre expression fonctionne correctement.
Champs de filtre pris en charge
Les crochets d'événement peuvent uniquement filtrer les événements en fonction des données contenues dans les champs suivants :
|
Champ pris en charge (interface utilisateur simple) |
Champ pris en charge (Langage d'expression) |
|---|---|
|
eventType |
event.eventType |
|
outcome.reason |
event.outcome.reason |
|
outcome.result |
event.outcome.result |
|
actor.id |
event.actor.id |
|
actor.type |
event.actor.type |
|
actor.alternateId |
event.actor.alternateId |
|
actor.displayName |
event.actor.displayName |
|
changesAttributes |
event.debugData.changedAttributes |
|
target.id |
event.target.?[id ] |
|
target.type |
event.target.?[type ] |
|
target.alternateId |
event.target.?[alternateId ] |
|
target.displayName |
event.target.?[displayName ] |
Opérateurs
-
eq désigne l'opérateur d'égalité.
-
ne désigne l'opérateur d'inégalité.
-
&& désigne l'opération Et.
-
|| désigne l'opérateur Ou.
Définir les conditions de groupe
Utilisez Okta Expression Language pour définir une liste de groupes pouvant activer un crochet d'événement. Assurez-vous que votre expression donne une valeur booléenne : True pour inclure des groupes ou False pour empêcher l'activation du crochet d'événement.
L'exemple suivant utilise Okta Expression Language pour activer un crochet d'événement pour un groupe appelé Commercial:
event.target.?[type eq 'UserGroup' && displayName eq 'Sales'].size()> 0
...
"target": [
{
"id": "00gsnc3qy7Uy6JZfy0h7",
"type": "UserGroup",
"alternateId": "unknown",
"displayName" : "Sales"
}
],
...
Utilisez les types d'événements suivants avec des conditions de groupe :
-
group.user_membership.add
-
group.user_membership.remove
-
group.lifecycle.create
-
group.lifecycle.delete
-
group.profile.update
-
group.privilege.revoke
-
group.privilege.grant
-
system.import.group.create
-
system.import.group.delete
Exemples d'expressions
| Cas d'utilisation | Exemple d'expression |
|---|---|
| Activer un crochet d'événement pour des noms de groupes spécifiques | event.target.?[type eq 'UserGroup' && displayName eq 'Sales'].size()> 0 || event.target.?[type eq 'UserGroup' && displayName eq 'Marketing'].size()> 0 |
| Activer un crochet d'événement pour des identifiant de groupes spécifiques | event.target.?[type eq 'UserGroup' && id eq '00gsnc3qy7Uy6JZfy0h7'].size()> 0 || event.target.?[type eq 'UserGroup' && id eq '032gs2nc3qy7Uy6JZfasd3'].size()> 0 |
| Utilisez les attributs de l'utilisateur et les groupes afin de définir des expressions complexes (ajout d'un utilisateur spécifique à un groupe spécifique, par exemple) | event.target.?[type eq 'User' && id eq '00usnklbd0FFDxYadmin0h7'].size()>0 && event.target.?[type eq 'UserGroup' && displayName eq 'Admin'].size()> 0 |
Définir des conditions d'application
Utilisez Okta Expression Language pour définir une liste d'applications qui peuvent activer un crochet d'événement. Assurez-vous que votre expression personnalisée donne une valeur booléenne : True pour inclure des applications ou False pour empêcher l'activation du crochet d'événement.
L'exemple suivant utilise Okta Expression Language pour activer un crochet d'événement pour une application de signet nommée My Company Bookmark App :
event.target.?[type eq 'AppInstance' && alternateId eq 'My Company Bookmark App'].size()> 0
...
"target": [
{
"id": "0oat26meilfdn0Em90h7",
"type": "AppInstance",
"alternateId": "MY Company Bookmark App",
"displayName": "Bookmark App"
},
...
Utilisez les types d'événements suivants avec des conditions d'application :
-
application.lifecycle.create
-
application.lifecycle.update
-
application.lifecycle.delete
-
application.lifecycle. activer
-
application.lifecycle.deactivate
-
application.user_membership.add
-
application.user_membership.remove
-
application.user_membership.change_password
-
application.provision.user.sync
-
app.oauth2.as.consent.grant
Exemples d'expressions
| Cas d'utilisation | Exemple d'expression |
|---|---|
| Activer un crochet d'événement pour des noms d'application spécifiques | event.target.?[type eq 'AppInstance' && alternateId eq 'My Company Bookmark App'].size()> 0 || event.target.?[type eq 'AppInstance' && alternateId eq 'My OIDC App'].size()> 0 |
| Activer un crochet d'événement pour des identifiants d'application spécifiques | event.target.?[type eq 'AppInstance' && id eq '00gsnc3qy7Uy6JZfy0h7'].size()> 0 || event.target.?[type eq 'AppInstance' && id eq '032gs2nc3qy7Uy6JZfasd3'].size()> 0 |
| Utilisez les attributs de l'utilisateur et les groupes afin de définir des expressions complexes (ajout d'un utilisateur spécifique à une application pécifique, par exemple) | event.target.?[type eq 'User' && id eq '00usnklbd0FFDxYadmin0h7'].size()>0 && (event.target.?[type eq 'AppInstance' && alternateId eq 'My Admin App'].size() > 0 |
Définir les conditions du profil utilisateur
Utilisez Okta Expression Language pour définir une liste d'attributs du profil utilisateur activant un crochet d'événement. Assurez-vous que votre expression donne une valeur booléenne : True pour inclure des applications ou Falsez pour empêcher l'activation de l'appel d'événement.
L'exemple suivant utilise Okta Expression Language pour activer un crochet d'événement pour un utilisateur dont l'adresse e-mail a été mise à jour :
event.debugData.changedAttributes.contains('email')
..
"debugContext": {
"debugData": {
"requestId": "XyMjlc1OvvWkZPMA7QazbAAFIs",
"threatSuspected": "false",
"requestUri": "/api/v1/ users/00ut27as6fbC0K3rS0h7",
"changedAttributes": "email",
"targetEventHookIds": " whot1dekaabE2suVh0h7",
"url": "/api/v1/users/00ut27as6fbC0K3rS0h7?
}
},
...
Ce qui suit représente le type d'événement le plus courant pour les conditions de profil :
-
user.account.update_profile
Exemples d'expressions
| Cas d'utilisation | Exemple d'expression |
|---|---|
| Activer un crochet d'événement lorsque des attributs spécifiques du profil utilisateur sont mis à jour | event.debugData.changedAttributes.contains('email') || event.debugData.changedAttributes.contains('manager') || event.debugData.changedAttributes.contains('department') |
Définir des conditions de connexion
Utilisez Okta Expression Language pour définir des conditions de connexion spécifiques activant un crochet d'événement. Assurez-vous que votre expression donne une valeur booléenne : True pour inclure des applications ou False pour empêcher l'activation du crochet d'événement.
Cette liste fournit les options de résultat disponibles : SUCCESS, FAILURE, SKIPPED, UNKNOWN, CHALLENGE, DENY.
L'exemple suivant utilise Okta Expression Language pour activer un crochet d'événement en lien avec la connexion d'un utilisateur :
event.outcome.result eq 'SUCCESS'
L'exemple suivant utilise Okta Expression Language pour activer un crochet d'événement en cas d'échec de la connexion d'un utilisateur :
event.outcome.result eq 'FAILURE'
Ce qui suit représente le type d'événement le plus courant pour une condition de connexion :
-
user.session.start
Exemples d'expressions
| Cas d'utilisation | Exemple d'expression |
|---|---|
| Activer un crochet d'événement en cas de connexion réussie | event.outcome.result eq'SUCCESS' |
|
Activer un crochet d'événement en cas d'échec de connexion |
event.outcome.result eq'FAILURE' |
|
Activer un crochet d'événement pour l'adresse e-mail d'un utilisateur spécifique |
event.actor.alternateId eq 'myAdmin@company.com' |
|
Activer un crochet d'événement pour un identifiant d'utilisateur spécifique |
event.actor.id eq '00usnklbd0FFDxYadmin0h7' |
|
Activer un crochet d'événement en cas d'échec des tentatives de connexion d'un utilisateur spécifique |
event.actor.alternateId eq 'myAdmin@company.com' && event.outcome.result eq'FAILURE' |
Définir les conditions des facteurs MFA
Utilisez Okta Expression Language pour définir une liste de facteurs MFA qui peuvent activer un crochet d'événement. Assurez-vous que votre expression donne une valeur booléenne : True pour inclure des applications ou False pour empêcher l'activation du crochet d'événement.
L'exemple suivant utilise Okta Expression Language pour activer un crochet d'événement lorsqu'une question de sécurité est définie comme un facteur MFA :
event.outcome.reason.contains( 'SECURITY_QUESTA')
Utilisez les types d'événements suivants avec les conditions de facteur :
-
user.mfa.factor.activate
-
user.mfa.factor.deactivate
Exemples d'expressions
| Cas d'utilisation | Exemple d'expression |
|---|---|
|
Activer un crochet d'événement pour une configuration de facteur MFA spécifique. Voici les types de facteur disponibles :
|
event.outcome.reason.contains('SECURITY_QUESTION') |
