Eine wichtige Voraussetzung für die Implementierung einer nahtlosen Anmeldung mit dem Credential Manager in Ihrer App und auf Ihrer Website ist die Einrichtung einer sicheren Verknüpfung zwischen ihnen. Dazu werden Digital Asset Links-Dateien verwendet, mit denen Anmeldedatenanbieter Anmeldedaten sicher zwischen Ihrer App und Ihrer Website teilen können. So kann eine Website beispielsweise mithilfe einer Digital Asset Links-Datei deklarieren, dass sie Anmeldedaten mit einer Android-App oder einer anderen Website teilt. Mit Digital Asset Links können sich Ihre Nutzer nahtlos anmelden und dieselben gespeicherten Anmeldedaten für verknüpfte Apps und Websites verwenden.
Digital Asset Links zwischen Ihrer App und Ihrer Website konfigurieren
Damit Anmeldedatenanbieter Passkeys und Passwörter in Ihrer App und auf Ihrer Website verwenden können, erstellen Sie mit den folgenden Schritten eine Digital Asset Links-Datei für Ihre App:
1. Digital Asset Links-JSON-Datei erstellen
Erstellen Sie eine Datei mit dem Namen assetlinks.json und der folgenden Struktur:
[
{
"relation" : [
"<array_of_permissions_granted_to_app>"
],
"target" : {
"namespace" : "android_app",
"package_name" : "<android_application_package_name>",
"sha256_cert_fingerprints" : [
"<sha256_certificate_fingerprint_of_signing_key>"
]
}
}
]
relation: Ein Array mit einem oder mehreren Strings, die die deklarierte Beziehung beschreiben. Wenn Sie angeben möchten, dass Apps und Websites Anmeldedaten gemeinsam nutzen, geben Sie die folgenden Beziehungen in einem Array an:delegate_permission/common.handle_all_urls: Diese Beziehung ermöglicht Android-App-Links, mit denen Ihre Android-App alle Web-URLs für eine bestimmte Domain verarbeiten kann.delegate_permission/common.get_login_creds: Diese Beziehung ermöglicht das Teilen von Anmeldedaten zwischen Ihrer Website und Ihrer Android-App.
target: Ein Objekt, das das Asset angibt, auf das sich die Erklärung bezieht.target.namespace: Setzen Sie dies aufandroid_app.target.package_name: Legen Sie hier den Paketnamen fest, der im Manifest der App deklariert ist, z. B.com.example.android.
sha256_cert_fingerprints: Die SHA256-Fingerabdrücke des Signaturzertifikats Ihrer App. Informationen zum Abrufen des SHA256-Fingerabdrucks für Ihre App finden Sie unter Websitezuordnungen deklarieren.
Ein Beispiel für ein Ziel für eine App:
[
{
"relation" : [
"delegate_permission/common.handle_all_urls",
"delegate_permission/common.get_login_creds"
],
"target" : {
"namespace" : "android_app",
"package_name" : "com.example.android",
"sha256_cert_fingerprints" : [
SHA_HEX_VALUE
]
}
}
]
2. Digital Asset Links-JSON-Datei hosten
Hosten Sie die Digital Asset Links-Datei an der folgenden Stelle auf der Anmeldedomain Ihrer Website:
```none
https://domain[:optional_port]/.well-known/assetlinks.json
```
Wenn Ihre Anmeldedomain beispielsweise signin.example.com ist, hosten Sie die Datei unter https://signin.example.com/.well-known/assetlinks.json.
Der MIME-Typ für die Digital Asset Links-Datei muss JSON sein. Achten Sie darauf, dass der Server in der Antwort einen Content-Type: application/json-Header mit dem HTTP-Status 200 sendet.
3. Abrufen der Digital Asset Links-Datei zulassen
Aktualisieren Sie Ihren Host, damit Google Ihre Digital Asset Links-Datei abrufen kann. Die meisten Websites erlauben es jedem automatisierten Agent, Dateien im Pfad /.well-known/ abzurufen, damit andere Dienste auf die Metadaten in diesen Dateien zugreifen können.
Wenn Sie eine robots.txt-Datei haben, erlauben Sie Webcrawlern, /.well-known/assetlinks.json abzurufen, indem Sie die robots.txt-Datei so aktualisieren:
User-agent: *
Allow: /.well-known/
4. App-Manifest aktualisieren
Fügen Sie der Manifestdatei Ihrer App unter <application> die folgenden Zeilen hinzu:
<meta-data android:name="asset_statements" android:resource="@string/asset_statements" />
5. Digital Asset Links für Passwörter konfigurieren
Wenn Sie den Credential Manager für Passwörter verwenden, müssen Sie einen zusätzlichen Schritt ausführen, um Digital Asset Links zu konfigurieren.
Fügen Sie ein Objekt hinzu, das die assetlinks.json-Dateien angibt, die in der Manifestdatei geladen werden sollen. Alle Apostrophe und Anführungszeichen, die Sie im String verwenden, müssen mit Escapezeichen versehen werden, wie im folgenden Beispiel gezeigt:
<string name="asset_statements" translatable="false">
[{
\"include\": \"https://signin.example.com/.well-known/assetlinks.json\"
}]
</string>
Der https://signin.example.com/.well-known/assetlinks.json-Link muss eine HTTP 200-Antwort zurückgeben und einen Content-Type-Header mit dem Wert application/json haben.
Die Überprüfung schlägt fehl, wenn die Antwort eine HTTP-Weiterleitung 301 oder 302 oder eine Content-Type enthält, die kein JSON ist.
Das folgende Beispiel zeigt eine Beispielanfrage und die erwarteten Antwortheader:
> GET /.well-known/assetlinks.json HTTP/1.1
> User-Agent: curl/7.35.0
> Host: signin.example.com
< HTTP/1.1 200 OK
< Content-Type: application/json
Nächste Schritte
Nachdem Sie die erforderlichen Abhängigkeiten hinzugefügt und Digital Asset Links für Passkeys konfiguriert haben, können Sie mit Credential Manager die unterstützten Authentifizierungsmethoden implementieren: Passkeys und „Mit Google anmelden“. Weitere Informationen zum Einstieg finden Sie in den folgenden Entwicklerleitfäden:
- Passkeys mit Credential Manager einrichten: Hier erfahren Sie, wie Sie Passkeys implementieren, die moderne, phishing-resistente Methode für eine sichere und nutzerfreundliche Authentifizierung.
- „Über Google anmelden“ mit Credential Manager einrichten: Integrieren Sie „Über Google anmelden“, um die Nutzeranmeldung mit Google-Konten zu optimieren.
- Häufige Fehler mit dem Anmeldeinformationsmanager beheben: Hier erfahren Sie, wie Sie häufige Fehler mit dem Anmeldeinformationsmanager beheben.
- Firebase Authentication einbinden: Ermöglichen Sie Ihren Nutzern, sich mit ihren Google-Konten bei Firebase zu authentifizieren.