Stille Authentifizierung Asynchrone Implementierung
Einführung
Eine asynchrone Implementierung ähnelt sehr der synchron Methode; anstatt den Geräte-Client zu verwenden, um eine Reihe von Aufrufen zu tätigen, wird jeder Teil des Arbeitsablaufs in Webhook-Rückrufe an eine von Ihnen definierte URL gesendet.
Dieser Leitfaden erklärt, wie die stille Authentifizierung mit dem asynchronen Ansatz implementiert wird, bei dem Ihr Backend einen Callback einrichtet, um das Authentifizierungsergebnis zu erhalten.
Erstellen einer Applikation
Um zu beginnen, besuchen Sie die Seite Entwickler-Dashboard um Ihre Anwendung zu erstellen:
- Vergewissern Sie sich, dass Verify unter "Fähigkeiten" aktiviert ist.
- Konfigurieren Sie die Status-URL für den Empfang von Callback-Ereignissen.
- Erzeugen einer JWT unter Verwendung der Anwendungs-ID und des privaten Schlüssels der Anwendung.
Trigger-Verifizierung
Um den Prozess der stillen Authentifizierung zu starten, stellen Sie eine Anfrage an /verify. Im folgenden Beispiel wird die Arbeitsablauf legt fest, dass Verify zunächst versucht, die stille Authentifizierung zu verwenden. Wenn die Anfrage aus irgendeinem Grund fehlschlägt, wird auf SMS zurückgegriffen, gefolgt von einem OTP per Sprachanruf.
Um das Beispiel auszuführen, ersetzen Sie die folgenden Variablen im Beispielcode durch Ihre eigenen Werte:
| Variabel | Beschreibung |
|---|---|
JWT | Authentifiziert die API-Anfrage mit JWT. |
VERIFY_BRAND_NAME | Der Name Ihres Unternehmens oder Ihrer Dienstleistung, der dem Nutzer in der Bestätigungsnachricht angezeigt wird. |
VONAGE_APPLICATION_PRIVATE_KEY_PATH | Pfad zum privaten Schlüssel Ihrer Anwendung. |
VONAGE_APPLICATION_ID | Application ID Ihrer Anwendung. |
VERIFY_NUMBER | Die Telefonnummer, an die das OTP gesendet werden soll, im E.164-Format (z. B., +441112233447). |
Führen Sie Ihren Code aus
Speichern Sie diese Datei auf Ihrem Rechner und führen Sie sie aus:
Voraussetzungen
Erstellen Sie eine Datei mit dem Namen send-request-with-fallback.js und fügen Sie den folgenden Code hinzu:
Schreiben Sie den Code
Fügen Sie Folgendes zu send-request-with-fallback.js hinzu:
Führen Sie Ihren Code aus
Speichern Sie diese Datei auf Ihrem Rechner und führen Sie sie aus:
Voraussetzungen
Fügen Sie Folgendes zu build.gradle hinzu:
Erstellen Sie eine Datei mit dem Namen SendVerificationRequestWithFallback und fügen Sie den folgenden Code in die Methode main ein:
Schreiben Sie den Code
Fügen Sie der Methode main in der Datei SendVerificationRequestWithFallback Folgendes hinzu:
Führen Sie Ihren Code aus
Wir können das Applikation Plugin für Gradle verwenden, um die Ausführung unserer Anwendung zu vereinfachen. Aktualisieren Sie Ihre build.gradle mit dem Folgenden:
Führen Sie den folgenden Befehl gradle aus, um Ihre Anwendung auszuführen, und ersetzen Sie dabei com.vonage.quickstart.kt.verify durch das Paket, das SendVerificationRequestWithFallback enthält:
Voraussetzungen
Fügen Sie Folgendes zu build.gradle hinzu:
Erstellen Sie eine Datei mit dem Namen SendRequestWithFallback und fügen Sie den folgenden Code in die Methode main ein:
Schreiben Sie den Code
Fügen Sie der Methode main in der Datei SendRequestWithFallback Folgendes hinzu:
Führen Sie Ihren Code aus
Wir können das Applikation Plugin für Gradle verwenden, um die Ausführung unserer Anwendung zu vereinfachen. Aktualisieren Sie Ihre build.gradle mit dem Folgenden:
Führen Sie den folgenden Befehl gradle aus, um Ihre Anwendung auszuführen, und ersetzen Sie dabei com.vonage.quickstart.verify2 durch das Paket, das SendRequestWithFallback enthält:
Voraussetzungen
Erstellen Sie eine Datei mit dem Namen StartVerificationRequestWithFallback.cs und fügen Sie den folgenden Code hinzu:
Fügen Sie Folgendes zu StartVerificationRequestWithFallback.cs hinzu:
Schreiben Sie den Code
Fügen Sie Folgendes zu StartVerificationRequestWithFallback.cs hinzu:
Voraussetzungen
Erstellen Sie eine Datei mit dem Namen request.php und fügen Sie den folgenden Code hinzu:
Führen Sie Ihren Code aus
Speichern Sie diese Datei auf Ihrem Rechner und führen Sie sie aus:
Voraussetzungen
Schreiben Sie den Code
Fügen Sie Folgendes zu send-request-with-fallback.py hinzu:
Führen Sie Ihren Code aus
Speichern Sie diese Datei auf Ihrem Rechner und führen Sie sie aus:
Voraussetzungen
Erstellen Sie eine Datei mit dem Namen request.rb und fügen Sie den folgenden Code hinzu:
Führen Sie Ihren Code aus
Speichern Sie diese Datei auf Ihrem Rechner und führen Sie sie aus:
Antwort
Wenn die Anfrage erfolgreich ist, gibt die Antwort HTTP 200 mit dem check_url im Körper, die wir im nächsten Schritt benötigen:
Liegt ein Fehler in der Anfrage vor, z. B. eine falsch formatierte Telefonnummer, enthält die Antwort eine HTTP 422 Fehler wie dieser:
Da wir die asynchrone Implementierung verwenden, erhalten Sie parallel zur API-Antwort eine Rückruf (oder Webhook) an die in den Einstellungen Ihrer Dashboard-Anwendung angegebene URL, um Sie über den Fortschritt der Anfrage zu informieren.
Während des API-Aufrufs an /verifyführt die Verify-API interne Vorprüfungen durch. Wenn alles in Ordnung ist, enthält der Callback den folgenden Body:
Bis der Antrag abläuft oder storniert wird, check_url wird verwendet, um eine Überprüfung der stillen Authentifizierung durchzuführen, indem Senden der Auth-URL. Wenn Sie diesen Rückruf erhalten, müssen Sie eine
check_url von dem mobilen Gerät, das Sie zu authentifizieren versuchen. Das ist wichtig: Die check_url Anfrage muss über eine mobile Datenverbindung (nicht Wi-Fi) ausgeführt werden. Die empfohlene Methode, dies sicherzustellen, ist die Verwendung des Vonage Client SDK (iOS oder Android), das die Anfrage automatisch über das Mobilfunknetz des Geräts leitet. Siehe die Anleitung zur Umgehung von Wi-Fi für die stille Authentifizierung für weitere Einzelheiten.
Wenn eine dieser Vorprüfungen fehlschlägt, z. B. aufgrund eines Netzwerkfehlers oder eines nicht unterstützten Operators, sieht der Callback wie folgt aus:
Wenn Ihr /verify Anfrage einen Rückfallkanal enthält, verwendet Verify diesen Kanal weiter, wie im folgenden Sequenzdiagramm dargestellt:
Auth URL senden
Sobald Sie die
HTTP 302 Umleitungen je nach Gebiet und Träger des Zielgeräts: Die Befolgung der Weiterleitungen führt entweder zu einer HTTP 200 oder HTTP 4xx Antwort je nach Ergebnis. Wenn es ein Problem mit dem Netzwerk gibt, könnten Sie eine Antwort wie diese sehen:
Eine vollständige Liste der möglichen Fehlercodes finden Sie in der API-Spezifikation.
Die Timeout-Verwaltung Abschnitt des Leitfadens zu bewährten Verfahren enthält nützliche Informationen zum Umgang mit Situationen wie Netzsignal- oder Netzabdeckungsproblemen während dieses Schritts.
Wenn die Anfrage gültig ist, erhalten Sie eine HTTP 200 Antwort mit Ihrer request_id und eine code:
Hinweis: Um eine sichere Authentifizierungsprüfung zu gewährleisten und einen möglichen Man-in-the-Middle-Angriff abzuschwächen, speichern Sie das Original request_id und vergleichen Sie es mit dem request_id die in der Antwort zurückgegeben werden. Wenn die IDs nicht übereinstimmen, sollte die stille Authentifizierungsprüfung abgebrochen werden. Siehe unsere Beispielanwendung für eine Beispielimplementierung, wie der Angriff abgewehrt werden kann.
Überprüfen Sie den Verifizierungscode
Sobald der Endbenutzer den Code erhält, muss Ihre Client-Anwendung eine
/v2/verify/{request_id} Endpunkt und ersetzt damit {request_id} mit der ID, die Sie beim letzten Anruf erhalten haben. Um das Beispiel auszuführen, ersetzen Sie die folgenden Variablen im Beispielcode durch Ihre eigenen Werte:
| Variabel | Beschreibung |
|---|---|
JWT | Authentifiziert die API-Anfrage mit JWT. |
VERIFY_REQUEST_ID | Die request_id die Sie im vorherigen Schritt erhalten haben. |
VONAGE_APPLICATION_PRIVATE_KEY_PATH | Privater Schlüssel Ihrer Anwendung. |
VONAGE_APPLICATION_ID | Application ID Ihrer Anwendung. |
VERIFY_CODE | Der vom Endnutzer erhaltene Verifizierungscode |
Schreiben Sie den Code
Fügen Sie Folgendes zu check-verification-code.sh hinzu:
Führen Sie Ihren Code aus
Speichern Sie diese Datei auf Ihrem Rechner und führen Sie sie aus:
Voraussetzungen
Erstellen Sie eine Datei mit dem Namen check-verification-code.js und fügen Sie den folgenden Code hinzu:
Schreiben Sie den Code
Fügen Sie Folgendes zu check-verification-code.js hinzu:
Führen Sie Ihren Code aus
Speichern Sie diese Datei auf Ihrem Rechner und führen Sie sie aus:
Voraussetzungen
Fügen Sie Folgendes zu build.gradle hinzu:
Erstellen Sie eine Datei mit dem Namen CheckVerificationCode und fügen Sie den folgenden Code in die Methode main ein:
Schreiben Sie den Code
Fügen Sie der Methode main in der Datei CheckVerificationCode Folgendes hinzu:
Führen Sie Ihren Code aus
Wir können das Applikation Plugin für Gradle verwenden, um die Ausführung unserer Anwendung zu vereinfachen. Aktualisieren Sie Ihre build.gradle mit dem Folgenden:
Führen Sie den folgenden Befehl gradle aus, um Ihre Anwendung auszuführen, und ersetzen Sie dabei com.vonage.quickstart.kt.verify durch das Paket, das CheckVerificationCode enthält:
Voraussetzungen
Fügen Sie Folgendes zu build.gradle hinzu:
Erstellen Sie eine Datei mit dem Namen CheckVerificationCode und fügen Sie den folgenden Code in die Methode main ein:
Schreiben Sie den Code
Fügen Sie der Methode main in der Datei CheckVerificationCode Folgendes hinzu:
Führen Sie Ihren Code aus
Wir können das Applikation Plugin für Gradle verwenden, um die Ausführung unserer Anwendung zu vereinfachen. Aktualisieren Sie Ihre build.gradle mit dem Folgenden:
Führen Sie den folgenden Befehl gradle aus, um Ihre Anwendung auszuführen, und ersetzen Sie dabei com.vonage.quickstart.verify2 durch das Paket, das CheckVerificationCode enthält:
Voraussetzungen
Erstellen Sie eine Datei mit dem Namen VerifyCodeRequest.cs und fügen Sie den folgenden Code hinzu:
Fügen Sie Folgendes zu VerifyCodeRequest.cs hinzu:
Schreiben Sie den Code
Fügen Sie Folgendes zu VerifyCodeRequest.cs hinzu:
Voraussetzungen
Erstellen Sie eine Datei mit dem Namen send_code.php und fügen Sie den folgenden Code hinzu:
Führen Sie Ihren Code aus
Speichern Sie diese Datei auf Ihrem Rechner und führen Sie sie aus:
Voraussetzungen
Schreiben Sie den Code
Fügen Sie Folgendes zu check-verification-code.py hinzu:
Führen Sie Ihren Code aus
Speichern Sie diese Datei auf Ihrem Rechner und führen Sie sie aus:
Voraussetzungen
Erstellen Sie eine Datei mit dem Namen check.rb und fügen Sie den folgenden Code hinzu:
Führen Sie Ihren Code aus
Speichern Sie diese Datei auf Ihrem Rechner und führen Sie sie aus:
Hinweis: Ein Code für einen Workflow zur stillen Authentifizierung kann nur geprüft werden einmal.
Wenn der Code gültig ist, erhalten Sie einen Rückruf mit dem Status completed:
Wenn ein Fehler auftritt, wird "Ungültiger Code" angezeigt:
Sie erhalten dann einen letzten Rückruf mit dem Ergebnis der Prüfung. Im Erfolgsfall erhalten Sie einen Callback mit "status": "completed":
Ist dies nicht der Fall, z. B. wenn der Benutzer abgewiesen wurde, wird dies in der status Feld:
An diesem Punkt ist die Überprüfung der stillen Authentifizierung abgeschlossen.