https://d226lax1qjow5r.cloudfront.net/blog/blogposts/best-practices-for-implementing-silent-authentication/best-practices_silent-authentication.png

Best Practices für die Implementierung der stillen Authentifizierung

Zuletzt aktualisiert am May 23, 2023

Lesedauer: 5 Minuten

Verify V2 wurde gerade für die allgemeine Verfügbarkeit freigegebenveröffentlicht wurde, wollten wir unsere Funktion zur stillen Authentifizierung etwas genauer vorstellen! In diesem Artikel erklären wir Ihnen, wie sie funktioniert, und geben Ihnen einige nützliche Tools und Tipps für die Implementierung.

Wie funktioniert die stille Authentifizierung?

Die stille Authentifizierung ist ein Kanal in der Verify API, mit dem Sie die Authentifizierung ohne 2FA-Code durchführen können. Sobald ein Benutzer seine Anmeldedaten eingegeben hat, wird seine Identität überprüft, indem seine SIM-Informationen mit den Aufzeichnungen seines Anbieters abgeglichen werden, um sicherzustellen, dass seine Telefonnummer aktiv und echt ist. Sobald eine Anfrage verifiziert wurde, können Sie den Benutzer kontinuierlich authentifizieren, bis entweder die Anfrage abläuft oder der Benutzer sie abbricht.

Kurz gesagt handelt es sich um eine Authentifizierungsmethode, bei der das Subscriber Identity Module (SIM) eines Mobiltelefons verwendet wird, um die Identität eines Benutzers nachzuweisen ohne Benutzereingabe.

Mehr darüber, wie die stille Authentifizierung funktioniert, erfahren Sie in unserem früheren Blog-Beitrag oder in den Entwickler-DokumentationDer Rest dieses Artikels wird Ihnen einige nützliche Tipps und Funktionen vorstellen, die Sie bei der Implementierung der stillen Authentifizierung berücksichtigen sollten.

Erzwingen einer mobilen Datenverbindung

Die stille Authentifizierung ist nicht nur davon abhängig, dass der Nutzer ein Mobiltelefon hat, sondern benötigt auch eine Mobilfunkverbindung. Wenn die Anfrage über Wi-Fi gesendet wird, wird ein Fehler ausgegeben. Um hier Abhilfe zu schaffen, haben wir iOS- und Android-Bibliotheken bereitgestellt, mit deren Hilfe Sie eine HTTP-Anfrage über das Mobilfunknetz stellen können, auch wenn Sie eine WLAN-Verbindung haben:

Android

Die Android-Bibliothek ist auf GitHub verfügbarverfügbar, wo Sie Informationen über Berechtigungen, Kompatibilität und Beispiele für die Integration von Silent-Auth in Ihre Anwendungen finden können:

import com.vonage.clientlibrary.VGCellularRequestClient
import com.vonage.clientlibrary.VGCellularRequestParameters

VGCellularRequestClient.initializeSdk(this.applicationContext)
val params = VGCellularRequestClientParameters(
    url = "http://www.vonage.com",
    headers = mapOf("x-my-header" to "My Value") ,
    queryParameters = mapOf("query-param" to "value"),
    maxRedirectCount = 10
)

val response = VGCellularRequestClient.getInstance().startCellularGetRequest(params, false)
if (response.optString("error") != "") {
    // error
} else {
    val status = response.optInt("http_status")
    if (status == 200) {
        // 200 OK
    } else {
        // error
    }
}

iOS

Die iOS Library ist auch auf GitHub verfügbarverfügbar, wo Sie Informationen zu Installation, Kompatibilität und Anwendungsbeispielen finden können:

import VonageClientLibrary

let client = VGCellularRequestClient()
let params = VGCellularRequestParameters(url: "http://www.vonage.com",
                                        headers: ["x-my-header": "My Value"],
                                        queryParameters: ["query-param" : "value"]
                                        maxRedirectCount: 10)
   
let response = try await client.startCellularRequest(params: params, debug: true)
if (response["error"]) != nil {
    // Handle error
} else {
    let status = resp["http_status"] as! Int
    if (status == 200) {
        // Handle response
    } else {
        // Handle error
    }
}

Sandbox zur stillen Authentifizierung

Das Testen der stillen Authentifizierung kann schwierig sein. Um eine erfolgreiche Verifizierung zu testen, muss der Code von einer Anwendung ausgeführt werden, die auf einem Telefon über ein Mobilfunknetz läuft, was schwierig einzurichten sein kann. Um dies zu erleichtern, hat Vonage eine Sandbox bereitgestellt, die die Überprüfung mit dem Anbieter umgeht. Stattdessen verwenden Sie die in Ihren Rückrufen zurückgegebenen Daten, um die Überprüfung selbst durchzuführen, so dass keine Verbindung zum Mobilfunknetz erforderlich ist.

Fügen Sie dazu "sandbox": "true" zu Ihrem Workflow hinzu:

curl -X POST https://api.nexmo.com/v2/verify \ -H "Content-Type: application/json" \ -H "Authorization: Bearer XXXXX" \ -d '{"brand": "Your Brand", "workflow": [ {"channel": "silent_auth", "to": "447700900002", "sandbox": "true"} }'

Dadurch wird der Träger umgangen und Ihre Anfrage an die Sandbox gesendet.

Die vollständige Anleitung zur Verwendung der Sandbox für die stille Authentifizierung finden Sie hier.

Unabhängig davon, ob Sie die Sandbox verwenden oder nicht, erhalten Sie eine Antwort, die sowohl Ihre request_idund die check_url:

{
  "request_id": "31eaf23d-b2db-4c42-9d1d-e847e75ab330",
  "check_url": "https://api.nexmo.com/v2/verify/31eaf23d-b2db-4c42-9d1d-e847e75ab330/silent-auth/redirect"
}

Um fortzufahren, müssen Sie eine GET Anfrage an den check_url. Dies führt zu mehreren HTTP302 Antworten, denen Ihr Client folgen muss, wobei die Anzahl davon abhängt, welches Carrier-Routing aufgrund des Standorts des Geräts erforderlich ist.

HTTP/1.1 302 Found
Location: https://eu.api.silentauth.com/phone_check/v0.2/checks/31eaf23d-b2db-4c42-9d1d-e847e75ab330/redirect
HTTP/1.1 302 Found
Location: https://sandbox.redirect.m-auth.com/callback/sandbox?id=31eaf23d-b2db-4c42-9d1d-e847e75ab330

Wenn Sie den Weiterleitungen gefolgt sind, erhalten Sie eine HTTP200 was uns zum letzten Schritt führt. Sie erhalten eine code in der Antwort, die Sie an den check-code Endpunkt übermittelt werden muss:

{
  "request_id": "31eaf23d-b2db-4c42-9d1d-e847e75ab330",
  "code": "si9sfG"
}

Dieser Code funktioniert genauso wie ein Code, der über einen anderen Kanal übermittelt wird. Senden Sie den Code an den API-Endpunkt:

POST /https://api.nexmo.com/v2/verify/31eaf23d-b2db-4c42-9d1d-e847e75ab330 HTTP/1.1
Content-Type: application/json

{
  "code": "si9sfG"
}

und Sie erhalten Ihre endgültige Antwort. Wenn erfolgreich:

HTTP/1.1 200 OK
Content-Type: application/json

{
  "request_id": "31eaf23d-b2db-4c42-9d1d-e847e75ab330",
  "status": "completed"
}

Und wenn die Überprüfung fehlschlägt:

HTTP/1.1 409 CONFLICT
Content-Type: application/json

{
  "title": "Network error",
  "detail": "The Silent Auth request could not be completed due to formatting or the carrier is not supported."
}

Die vollständige Anleitung zur Verwendung der Sandbox für die stille Authentifizierung finden Sie hier.

Fallback zu anderen Kanälen

Es gibt mehrere Situationen, in denen die stille Authentifizierung nicht funktioniert, z. B. wenn der Benutzer:

  • Auf einem Desktop-Gerät

  • Außerhalb der Reichweite ihres Netzes

  • über eine Wi-Fi-Verbindung statt über ihr Mobilfunknetz

In diesen Fällen haben Sie die Möglichkeit, auf andere Kanäle zurückzugreifen. Sie können dies tun, indem Sie den Arbeitsablauf in Ihrer Anfrage konfigurieren; in diesem Beispiel wird zuerst die stille Anmeldung versucht. Wenn dies fehlschlägt, wird eine SMS gesendet:

curl -X POST https://api.nexmo.com/v2/verify \ -H "Content-Type: application/json" \ -H "Authorization: Bearer XXXXX" \ -d '{"brand": "Your Brand", "workflow": [ {"channel": "silent_auth", "to": "447700900002"}, {"channel": "sms", "to": "447700900002"}] }'

Lesen Sie mehr über Workflows und die verfügbaren Kanäle hier.

Schlussfolgerung

Wir hoffen, dass Sie diese Zusammenstellung von Hinweisen und Tipps nützlich fanden und dass sie Ihnen bei Ihren zukünftigen Projekten mit Silent Authentication helfen wird! Sie können für einen Account anmelden um Verify jetzt zu nutzen, folgen Sie unserem Twitter Entwickler Account um auf dem Laufenden zu bleiben, und sehen Sie sich unsere Entwickler-Dokumente für weitere Informationen.

Teilen Sie:

https://a.storyblok.com/f/270183/400x400/fa81e51a55/helena-bower.png
Helena BowerTechnischer Redakteur

Helena ist technische Redakteurin bei Vonage und arbeitet an der Dokumentation für unsere Kommunikations-APIs. Sie wohnt in London und man kann sie oft beim Spielen, beim Kauf von zu vielen Schallplatten oder beim Ansehen einer Theatervorstellung antreffen.