SDK d'Orchestration : Authentification locale avec Challenge/Réponse - Partie 1

Duo Liang,

Orchestration SDK fait partie intégrante de OneSpan Mobile Security Suite, qui permet aux développeurs mobiles d'intégrer les cas d'utilisation OneSpan Cloud Authentication (OCA) et Intelligent Adaptive Authentication (IAA) à leur application mobile avec un minimum d'effort.

Dans ce blog, nous allons vous montrer comment authentifier un utilisateur final via Challenge/Response à l'aide d'une application mobile client intégrée à Orchestration SDK. Sans plus attendre, commençons !

Conditions préalables

-Enregistrez un client OneSpan Intelligent Adaptive Authentication Sandbox.
-Un téléphone portable avec Android 4.1 ou plus récent, avec l'application d'exemple Orchestration SDK installée.
-Enregistrez un utilisateur final et activez le dispositif de confiance.

Intégration de la connexion de l'utilisateur final avec Challenge/Response

Le flux principal de l'authentification par Challenge/Réponse commence lorsqu'une application web du client demande un challenge au service d'authentification de OneSpan et le présente à l'utilisateur final sur une page de connexion.
À partir de là, l'utilisateur le saisit dans son authentificateur et génère une réponse hors ligne (dans notre cas, nous ferons une démonstration à l'aide d'une application mobile intégrée au SDK Orchestration).

L'utilisateur saisit ensuite la réponse dans l'application web du client, qui est validée par OneSpan Cloud Authentication (et potentiellement par OneSpan Risk Analytics). Lorsque la validation est réussie, l'authentification est terminée et l'application web du client peut connecter l'utilisateur.

Login flow - Challenge/Response OTP

ÉTAPE 1 : Émission d'une demande de " génération d'un défi " (Generate Challenge)

L'utilisateur final lance l'opération de connexion. Cela déclenche l'envoi par l'application cliente de la requête API ci-dessous pour générer un défi :

Demande HTTP

POST https://{tenant}.{environnement}.tid.onespan.cloud/v1/users/{userid@domain}/generate-challenge

En-têtes HTTP

Accept : application/json

Exemple de charge utile

{
 "length" : 6,
 "checkDigit" : false
}

-la longueur est un nombre compris entre un minimum de 4 et un maximum de 16. L'application Challenge/Response (CR) standard d'un authentificateur Digipass® accepte normalement 6 chiffres.
-checkDigit: Les valeurs possibles sont true ou false.

Exemple de réponse

{
 "requestID" : "39d468d1-7209-4572-88ef-6cbc0f87abd3",
 "challenge" : "324067"
}

-requestID : L'application client doit mettre en cache cet identifiant de demande et l'utiliser lors d'un appel ultérieur.

Lorsque l'API est renvoyée avec succès, l'application client doit présenter le défi à l'utilisateur final et fournir un champ de saisie en attente de la réponse.

ÉTAPE 2 : Générer un OTP sur le dispositif de confiance

Afin de générer une réponse en conséquence, l'utilisateur final aura besoin de l'application Orchestration sample installée sur son mobile et devra activer le mobile en tant qu'appareil de confiance. Ce flux est hors ligne pour l'authentificateur, vous pouvez donc activer le mode avion pendant le test. Une fois que c'est fait, cliquez sur le bouton "TRY IT" sous la section Authentification locale :

Try It

Sur la page d'authentification locale, saisissez la réponse et sélectionnez l'un des types de protection prêts à l'emploi (par exemple, biométrique). Vous serez invité à vérifier l'empreinte digitale avant de générer une réponse.

Local Authentication

ÉTAPE 3 : Émettre une demande de connexion

L'utilisateur final remplit la réponse dans l'application client et déclenche l'envoi par l'application client d'une autre demande API pour valider le défi/la réponse par rapport au service d'authentification OneSpan :

Demande HTTP

POST https://{tenant}.{environnement}.tid.onespan.cloud/v1/users/{utilisateur@domaine}/login

En-têtes HTTP

Content-Type : application/json
Accept : application/json

Si vous utilisez uniquement la solution OneSpan Cloud Authentication, utilisez la charge utile ci-dessous et OneSpan Cloud Authentication validera le Challenge/Response OTP et renverra le résultat de la validation :

Exemple de charge utile

{
 "objectType" : "LoginInput",
 "credentials" : {
   "authenticator" : {
     "OTP" : "177391"   
   }
 },
 "requestID" : "39d468d1-7209-4572-88ef-6cbc0f87abd3"
}

Exemple de réponse{

{

 "sessionStatus" : "success"

}

Si vous utilisez également la solution OneSpan Risk Analytics pour effectuer une surveillance continue de la fraude et une évaluation dynamique des risques, utilisez plutôt ce payload :

Exemple de charge utile

{
 "objectType" : "AdaptiveLoginInput",
 "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,\N-"boxModel\":undefined,\N-"changeBubbles\":undefined,\N-"checkClone\":true,\N-"checkOn\":true,\N-"cors\" :true,\N "cssFloat":undefined,\N "hrefNormalized":undefined,\N "htmlSerialize":undefined,\N "leadingWhitespace":undefined,\N "noCloneChecked":undefined,\N "noCloneChecked" :true,\N "noCloneEvent"\N:undefined,\N "opacity"\N:undefined,\N "optDisabled"\N:undefined,\N "style"\N:undefined,\N "submitBubbles"\N:undefined,\N "tbody"\N:undefined :undefined},computer:{\"screenWidth\":2560,\"screenHeight\":1440,\"OS\":\"Microsoft Windows\",\"platform\":\"Win32\"},additional:{}}",
     "fingerprintHash" : "e96dadc9651f5fe8f071110eb174fe8e7a17a9d7a96b3b1980c13e5b4af3a4d7"
   }
 },
 "relationshipRef" : "ala_user03",
 "sessionID" : "4ED23EA44F23",
 "clientIP" : "192.168.0.1",
 "credentials" : {
   "authenticator" : {
     "OTP" : "177391"
   }
 },
 "requestID" : "39d468d1-7209-4572-88ef-6cbc0f87abd3"
}

Exemple de réponse

{
  "riskResponseCode" : 0,

 "sessionStatus" : "succès"

}

Note :
Incluez le même identifiant de demande dérivé de la demande generate-challenge et de la réponse créée à partir de ce défi.

Une fois que le service d'authentification OneSpan a validé le défi/la réponse et renvoyé le résultat de la validation, l'attribut "sessionStatus" de la réponse JSON est "success" : Si l'attribut "sessionStatus" de la réponse JSON est "success", l'authentification a réussi et l'application client peut connecter l'utilisateur final en toute sécurité.

Voilà, c'est fait. Grâce au blog d'aujourd'hui, vous devriez avoir suffisamment de connaissances pour concevoir un flux de travail d'authentification locale par défi/réponse.

Dans le prochain blog, nous vous guiderons dans la programmation du SDK d'orchestration pour ce flux de travail afin que vous puissiez intégrer le SDK dans votre application mobile existante.

Si vous avez des questions concernant ce blog ou tout autre sujet relatif à l'intégration de OneSpan Cloud Authentication ou Intelligent Adaptive Authentication dans votre application, visitez les forums de la communauté des développeurs. Vos commentaires nous intéressent !

OneSpan Sign Developer Community

OneSpan Sign Developer Community

Rejoignez la communauté OneSpan Sign Developer! Forums, blogs, documentation, téléchargements SDK, et plus encore.

Joignez-vous aujourd'hui