Développeur OneSpan : Point de fin de validation des événements
La sécurisation des événements non monétaires est cruciale pour l'intégrité des affaires dans toute organisation. Grâce au point de terminaison Events/Validate, l'Intelligent Adaptive Authentication (IAA) de OneSpan reçoit les événements non monétaires déclenchés dans une application utilisateur. L'analyse des risques (RA ) évalue alors l'ethnicité de ces événements et invite l'utilisateur final à fournir la méthode d'authentification appropriée, en fonction du risque associé à un événement. Dans ce blog, nous illustrerons la validation des événements non monétaires à l'aide de l'API interactive de l'Environnement de test et montrerons les réponses possibles de l'AE à un événement
Avant de commencer
Avant d'explorer le point de terminaison de la validation des événements, vous devez d'abord être membre de la communauté OneSpan et vous inscrire à un compte sandbox gratuit d'Intelligent Adaptive Authentication. Voici des instructions étape par étape sur la manière de le faire.
Vous devez également vous assurer d'avoir au moins un utilisateur enregistré avant d'essayer cet appel. Pour apprendre comment enregistrer un utilisateur, consultez ce blog détaillé sur l'enregistrement d'un utilisateur.
URL du point de terminaison
L'URL de la demande pour cet appel API ressemblera à l'exemple ci-dessous :
https://{votre_ID_locataire}.sdb.tid.onespan.cloud/v1/users/{userID@domain}/events/validate
Vous n'aurez pas besoin de fournir cette URL pendant le tutoriel. Il s'agit uniquement de montrer la structure de l'URL. L'URL sera automatiquement attribuée dans l'API interactive lors de l'appel du service web
Essayez-le
Afin d'expérimenter l'API de validation des événements, accédez au document IAA Sandbox Interactive API dans votre compte OneSpan Community. Dans l'éditeur Open API Swagger, développez la ressource "Events". Vous trouverez alors une entrée pour la méthode Events /Validate HTTP Post comme le montre l'image ci-dessous
Paramètres du chemin URL :
Aux fins de l'appel API Events/Validate, un paramètre de chemin d'accès est requis pour l'identifiant unique de l'utilisateur. Il sera formaté comme suit : userID@domain. Un exemple de l'ID utilisateur est "iaa_user". Il s'agit de l'ID utilisateur qui a été activé sur le dispositif de confiance. La partie du paramètre qui suit le signe "@" est le domaine de l'utilisateur. Cette entrée doit être remplacée par la chaîne "Sandbox User" présentée ci-dessous, qui est présente dans la section des détails de votre Sandbox sous l'onglet "Intelligent Adaptive Authentication" de la page d'accueil de votre Sandbox.
Corps de la demande de validation des événements
Remarque : L'API de validation des événements est spécifique à la solution OneSpan Intelligent Adaptive Authentication. Son but est de notifier à Risk Analytics un événement et de transmettre les données nécessaires pour prendre une décision unique concernant cet événement. Pour cette raison, il n'est pas nécessaire de sélectionner un type d'objet dans le corps de la requête de l'appel RESTful, comme c'était le cas pour les appels API dans les blogs précédents
Le corps de la demande ressemblera à l'exemple ci-dessous des champs obligatoires du point de terminaison Events/Validate.
{ "eventType" : "LoginSuccess", "relationshipRef" : "iaa_enduser", "sessionID" : "4ed23ea44f23", "cddc" : { "browserCDDC" : { "fingerprintRaw" : "{browser:{\"userAgent\":Mozilla/5.0 (Windows NT 6.1 ; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36},support:{\"ajax\":true,\"boxModel\":undefined,\"changeBubbles\":undefined,\"checkClone\":true,\"checkOn\":true,\"cors\":true,\"cssFloat\":undefined,\"hrefNormalized\":undefined,\"htmlSerialize\":undefined,\"leadingWhitespace\":undefined,\"noCloneChecked\":true,\"noCloneEvent\":undefined,\"opacity\":undefined,\"optDisabled\":undefined,\"style\":undefined,\"submitBubbles\":undefined,\"tbody\":undefined},computer:{\"screenWidth\":2560,\"screenHeight\":1440,\"OS\":\"Microsoft Windows\",\"platform\":\"Win32\"},additional:{}}", "fingerprintHash" : "e96dadc9651f5fe8f071110eb174fe8e7a17a9d7a96b3b1980c13e5b4af3a4d7" } }, "clientIP" : "192.168.0.1" }
Charge utile de la demande
Il contient les objets JSON obligatoires indiqués dans le tableau :
Champs de données obligatoires JSON | Description | Champ Type de données |
---|---|---|
type d'événement * | Le type d'événement non monétaire à valider.Type : chaîne | Exemple : "LoginSuccess", "NewBeneficiaryAttempt" |
relationRef* | La référence relationnelle de l'ID utilisateur. |
Type : string |
identifiant de la session | Identifiant de session de l'application, formaté sous forme de chaîne hexadécimale ; commun à tous les événements liés à la même session. | Type : string pattern : ^[0-9a-fA-F]+$ minLength : 2 maxLength : 100 Exemple : 4ed23ea44f23 |
cddc* | Méta-données du collecteur de données du dispositif client. Les deux champs browserCDDC et mobileCDDC sont mutuellement exclusifs et collectivement exhaustifs. | Type : chaîne de caractères Exemple : "browserCDDC" ou "mobileCDDC" |
clientIP | Adresse IP d'où provient l'événement, formatée en notation point-décimale. Ce champ est fortement recommandé si l'événement provient d'une application bancaire en ligne. | Type : chaîne de caractères Exemple : " 192.168.0.1 ". |
Appeler le point de terminaison
Nous sommes maintenant prêts à effectuer un appel RESTful vers le point de terminaison Events/Validate à l'aide de l'API Sandbox interactive IAA. Pour effectuer l'appel, cliquez sur le bouton "Try it out" illustré dans la capture d'écran ci-dessous et situé à droite de la section relative à la méthode HTTP POST. Une fois la demande effectuée, vous recevrez le corps de la réponse en retour au format JSON. Il sera similaire à la charge utile de la réponse décrite dans la section suivante.
Charge utile de la réponse
Vous trouverez ci-dessous un exemple du corps de la réponse renvoyée avec un code de réponse 200 qui indique que la demande a abouti.
{ "requestID" : "413b2c39-2d67-4293-9adb-25601731b062", "riskResponseCode" : 0, "sessionStatus" : "accepted", "requestMessage" : "0000F8B81D" }
Description des champs du corps de la réponse
Le "requestID" est le premier champ de la réponse. Il s'agit d'une chaîne de 36 caractères utilisée pour conserver une référence de l'appel API précédent. Cet ID peut être utile pour le débogage et le référencement.
Le champ "riskResponseCode" est le code de réponse de Risk Analytics. La valeur "0" dans la réponse ci-dessus indique que la demande a été acceptée et que l'utilisateur a été authentifié avec succès sans qu'aucune mesure supplémentaire ne soit nécessaire. Le type de réponse aux différentes activités pourrait être détecté à partir de Risk Analytics.
Vous trouverez ci-dessous une liste d'autres valeurs possibles qui peuvent être renvoyées par Risk Analytics. En outre, des valeurs supplémentaires peuvent être configurées par le biais du service de présentation de Risk Analytics.
Comportement d'analyse des risques | Code de réponse au risque (nombre entier) |
---|---|
Accepter | 0 |
Déclin | 1 |
Défi | 2 |
ChallengeSMS | 3 |
ChallengeDevice2FA | 5 |
ChallengeEmail | 8 |
DéfiCronto | 11 |
ChallengeNoPIN | 21 |
DéfiPIN | 22 |
ChallengeEmpreinte digitale | 23 |
ChallengeFace | 24 |
Le champ "sessionStatus" de la réponse JSON représente l'état actuel de la session après l'envoi de la demande. Le tableau ci-dessous énumère les valeurs d'état possibles :
Statut de la session | Description du statut |
---|---|
inconnu | L'état est inconnu et la réponse est traitée en externe |
en attente de | En attente d'une action de l'utilisateur final |
accepté | Réalisé avec succès |
a refusé | Refusé par l'utilisateur final |
délai d'attente | Le délai a expiré après qu'aucune réponse n'ait été reçue dans le délai imparti |
échoué | L'échec de la validation de l'OTP |
Le champ "requestMessage" est de type String. Il est utilisé pour transmettre une commande d'orchestration au dispositif de confiance de l'utilisateur final.
Aujourd'hui, nous avons vu comment créer un événement non monétaire via l'API OneSpan Interactive. Dans le prochain blog, nous montrerons comment créer une règle Risk Analytics pour les événements non monétaires. En attendant, si vous avez des questions, n'hésitez pas à les poser sur les forums du portail communautaire OneSpan.