OneSpan Developer: Lokale Benutzerauthentifizierung mit einem OTP

OneSpan Team,

In diesem Blog-Beitrag wird gezeigt, wie ein Endbenutzer mit einem One Time Password (OTP) authentifiziert wird. Das OTP wird von der mit dem Orchestration SDK integrierten mobilen App generiert und auf dem vertrauenswürdigen Gerät des Endbenutzers aktiviert

Von dort wird eine Anmeldeanforderung zusammen mit dem OTP an OneSpan Intelligent Adaptive Authentication (IAA ) gesendet. Dieser Aufruf erfolgt aus der Webanwendung, auf die der Endbenutzer zugreift

Bevor wir beginnen

Bevor Sie den Login-Endpunkt erkunden können, müssen Sie zunächst Mitglied der OneSpan Community sein und sich für ein kostenloses Intelligent Adaptive Authentication-Sandbox-Konto anmelden. Eine Anleitung dazu finden Sie in unserem vorherigen Blog, OneSpan Cloud Solutions In Action - MyBank Web Portal Demo, Teil I.

Sie sollten auch sicher sein, dass mindestens ein registrierter Benutzer vorhanden ist, bevor Sie diesen Aufruf versuchen. Wie Sie einen Benutzer registrieren können, erfahren Sie in OneSpan Developer: Intelligent Adaptive Authentication - User Registration.

Schließlich müssen Sie die Orchestration-Beispiel-App auf dem vertrauenswürdigen Gerät aktivieren, wie in den letzten beiden Blogs beschrieben: Orchestration SDK (Java Edition) - Trusted Device Activation with Android Studio: Part I und Orchestration SDK (Java Edition) - Trusted Device Activation with Android Studio: Part II

Endpunkt-URL

Die Anfrage-URL für diesen API-Aufruf wird dem folgenden Beispiel ähneln: https://{Ihre_Mieter_ID}.sdb.tid.onespan.cloud/v1/users/{userID@domain}/login

Sie müssen diese URL während des Tutorials nicht angeben. Sie dient nur dazu, die Struktur der URL zu zeigen. Die URL wird in der Interaktiven API beim Aufruf des Webservice automatisch zugewiesen

Generieren Sie ein OTP auf dem Mobile Trusted Device:

Um sich mit einem virtuellen OTP anzumelden, müssen Sie die folgenden Schritte ausführen, um eines von der Beispiel-App zu erhalten. Diese App wurde zuvor auf dem vertrauenswürdigen Gerät des registrierten Benutzers aktiviert.

  • Klicken Sie unter Lokale Authentifizierung auf die Schaltfläche "TRY IT", wie unten hervorgehoben

OneSpan-BlogImage[Benutzer_Lokale_Authentifizierung_mit_OTP]1_01

  • Sie werden zur lokalen Authentifizierungsseite weitergeleitet, wie unten gezeigt, wo Sie ein OTP zur Anmeldung anfordern können. Wählen Sie für den "Schutztyp" die Option "Keine PIN", um sofort ein OTP zu erhalten, ohne dass Sie eine zusätzliche Authentifizierungsmethode angeben müssen.

 OneSpan-BlogImage[Benutzer_Lokale_Authentifizierung_mit_OTP]1_02

  • Sie erhalten dann ein OTP, wie im Screenshot unten gezeigt, mit dem Sie sich in der folgenden Übung anmelden können. Sie müssen dieses OTP innerhalb von 30 Sekunden verwenden. Andernfalls läuft sie ab, und Sie müssen eine neue generieren.

OneSpan-BlogImage[Benutzer_Lokale_Authentifizierung_mit_OTP]1_03

Probieren Sie es aus

Um mit der Anmelde-API zu experimentieren, navigieren Sie in Ihrem OneSpan-Community-Konto zum Dokument IAA Sandbox Interactive API. Erweitern Sie im Open API Swagger-Editor die Ressource "Benutzer". Sie finden dann einen Eintrag für die Login-HTTP-Post-Methode, wie in der folgenden Abbildung dargestellt

OneSpan-BlogImage[Benutzer_Lokale_Authentifizierung_mit_OTP]1_04

URL-Pfad-Parameter:

Für den Zweck des Login-API-Aufrufs gibt es einen erforderlichen Pfadparameter für die eindeutige Benutzerkennung. Sie wird als userID@domain formatiert. Ein Beispiel für die UserID ist "iaa_user". Es ist die UserID, die auf dem vertrauenswürdigen Gerät aktiviert wurde. Der Teil des Parameters, der auf das "@"-Zeichen folgt, ist die Benutzerdomäne. Dieser Eintrag sollte durch die unten gezeigte Zeichenfolge "Sandbox-Benutzer" ersetzt werden, die Sie im Abschnitt "Sandbox-Details" unter der Registerkarte "Intelligente adaptive Authentifizierung" auf Ihrer Sandbox-Homepage finden.

OneSpan-BlogImage[Benutzer_Lokale_Authentifizierung_mit_OTP]1_05

Körper der Benutzeranmeldeanforderung

Wählen Sie unter dem Abschnitt "Request Body" des Login-Endpunkts den Objekttyp "AdaptiveLoginInput" aus dem Dropdown-Menü aus, wie unten gezeigt. Sie erhalten dann ein Beispiel für den JSON-Payload einer Login-Anfrage. Es wird mit einem Beispiel der JSON-Objekte bestückt, die von der API des Objekttyps " AdaptiveLoginInput " benötigt werden

OneSpan-BlogImage[Benutzer_Lokale_Authentifizierung_mit_OTP]1_06

Der Anfragerumpf sieht aus wie das folgende Beispiel für die erforderlichen Felder des Login-Endpunkts.

{ "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,\"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" } }, "relationshipRef": "iaa_user", "sessionID": "4ED23EA44F23", "clientIP": "192.168.0.1", "credentials": { "authenticator": { &quot

Nutzlast anfordern

Sie enthält zwei obligatorische JSON-Objekte, die in der Tabelle aufgeführt sind:

JSON Erforderliche Datenfelder Beschreibung Feld Datentyp
objektTyp* Damit wird der Objekttyp in der Nutzlast der Anfrage für den Zweck der adaptiven Authentifizierungslösung deklariert. Typ: Enum
Beispiel: "[ AdaptiveLoginInput ]"
anmeldeinformationen* Dieses trägt die Anmeldeinformationen zur Authentifizierung des Benutzers einschließlich des Authenticator-Objekts. Ein OTP ist ein Authentifikator-Typ, der in diesem Beispiel verwendet werden soll. Typ: JSON verschachteltes Objekt
Beispiel: "credentials": {
"authenticator": {
"OTP": "714346"
}
cddc* Client Device Data Collector-Metadaten. Die beiden Felder browserCDDC und mobileCDDC schließen sich gegenseitig aus und sind gemeinsam erschöpfend. Typ: String
Beispiel: "browserCDDC" oder "mobileCDDC"
beziehungRef* Die Beziehungsreferenz der Benutzer-ID. Typ: string
minLength: 1
maxLength: 150
Beispiel: iaa_user
staticPassword* Das anfängliche statische Kennwort, das dem Benutzer zugewiesen wurde. Typ: String
minLength: 8
maxLength: 255
Beispiel: Test1234
sessionID* Kennung der Anwendungssitzung, formatiert als hexadezimale Zeichenfolge; gemeinsam für alle Transaktionen, die sich auf dieselbe Sitzung beziehen. Typ: String
Muster: ^[0-9a-fA-F]+$
minLength: 2
maxLength: 100
Beispiel: 4ed23ea44f23

Aufrufen des Endpunkts

An diesem Punkt sind wir bereit, einen RESTful-Aufruf an den Login-Endpunkt unter Verwendung der interaktiven IAA-Sandbox-API durchzuführen. Um den Aufruf durchzuführen, klicken Sie auf die Schaltfläche "Try it out", die im Screenshot unten gezeigt wird und sich rechts neben dem Abschnitt zur HTTP-POST-Methode befindet. Nach der Anfrage erhalten Sie den Antwortkörper in einem JSON-Format zurück. Sie ähnelt der Antwort-Payload, die im folgenden Abschnitt beschrieben wird.

OneSpan-BlogImage[User_Local_Authentication_with_OTP]7

 

Benutzeranmeldung Antwortkörper

Wenn das OTP akzeptiert wurde, erhalten Sie einen Antwortkörper ähnlich dem folgenden Beispiel mit einem 200-Antwortcode, der eine erfolgreiche Anmeldung anzeigt.

{ "riskResponseCode": 0, "sessionStatus": "accepted" }

 

Beschreibung der Felder des Antwortkörpers

Das Feld "riskResponseCode" ist der Antwortcode von Risk Analytics. Der Wert "0" in der obigen Antwort zeigt an, dass die Anfrage akzeptiert wurde und der Benutzer erfolgreich authentifiziert wurde, ohne dass zusätzliche Maßnahmen erforderlich waren. Nachfolgend finden Sie eine Liste anderer möglicher Werte, die von Risk Analytics zurückgegeben werden können. Außerdem können zusätzliche Werte über den Risk Analytics Presentation Service konfiguriert werden.

Risikoanalyse Verhalten

Risiko-Reaktions-Code (Ganzzahl)

Akzeptieren 0
Abnehmen 1
Herausforderung 2
HerausforderungSMS 3
ChallengeDevice2FA 5
HerausforderungEmail 8
HerausforderungCronto 11
ChallengeNoPIN 21
HerausforderungPIN 22
HerausforderungFingerabdruck 23
HerausforderungGesicht 24

Das Feld sessionStatus in der JSON-Antwort stellt den aktuellen Status der Sitzung dar, nachdem die Anfrage gesendet wurde. In der folgenden Tabelle sind die möglichen Statuswerte aufgeführt.

Session-Status Status Beschreibung
unbekannt Der Status ist nicht bekannt und die Antwort wird extern gehandhabt
anhängig Warten auf eine Aktion des Endbenutzers
akzeptiert Erfolgreich abgeschlossen
abgelehnt Vom Endbenutzer abgelehnt
timeout Zeitüberschreitung, nachdem innerhalb des Zeitrahmens keine Antwort empfangen wurde
gescheitert Die OTP-Validierung schlägt fehl


Wenn die obigen Schritte abgeschlossen sind, sollte der Benutzer erfolgreich authentifiziert worden sein. Bleiben Sie dran für weitere Blogs zur Verwendung der Intelligent Adaptive Authentication API von OneSpan. Wenn Sie in der Zwischenzeit Fragen haben, können Sie uns in den Foren des OneSpan Community Portals erreichen.
 

OneSpan Sign-Entwickler-Community

OneSpan Sign-Entwickler-Community

Treten Sie der OneSpan Sign Developer Community bei! Foren, Blogs, Dokumentationen, SDK-Downloads und mehr.

Tritt heute bei

The OneSpan Team is dedicated to delivering the best content to help you secure tomorrow's potential. From blogs to white papers, ebooks, webinars, and more, our content will help you make informed decisions related to cybersecurity and digital agreements.

Popup default