Mit der FIDO2 API können Android-Anwendungen starke, attestierte öffentliche Schlüssel-basierte Anmeldedaten zur Authentifizierung von Nutzern erstellen und verwenden. Die API bietet eine WebAuthn-Client-Implementierung, die die Verwendung von BLE-, NFC- und USB-Roaming-Authentifikatoren (Sicherheitsschlüsseln) sowie einen Plattform-Authentifikator unterstützt, mit dem sich der Nutzer per Fingerabdruck oder Displaysperre authentifizieren kann.
Integration
Der Einstiegspunkt der FIDO2 API ist der Fido2ApiClient.
Die API unterstützt zwei Vorgänge:
- Die Registrierung erfolgt einmal pro Authenticator und Konto, wenn der Nutzer einen Authenticator mit einem Konto verknüpft.
- Die Signatur wird jedes Mal erstellt, wenn die vertrauende Partei einen Nutzer authentifizieren möchte.
Sowohl die Registrierung als auch die Signatur erfordern eine Nutzerinteraktion.
Eine Beispielanwendung zur Veranschaulichung der API-Nutzung finden Sie unter https://github.com/android/identity-samples/tree/main/Fido2.
Interoperabilität mit Ihrer Website
Sie können Nutzern ganz einfach die Möglichkeit geben, Anmeldedaten nahtlos auf Ihrer Website und in Ihrer Android-App zu teilen. Verwende dazu Digital Asset Links. Sie können Verknüpfungen deklarieren, indem Sie eine Digital Asset Links-JSON-Datei auf Ihrer Website hosten und dem Manifest Ihrer App einen Link zur Digital Asset Links-Datei hinzufügen.
Wenn Sie beispielsweise https://example.com
mit einer Android-App verknüpfen möchtencom.example.android
, sind drei Schritte erforderlich:
Schritt 1: assetlinks.json
in Ihrer Domain hosten
Erstellen Sie eine JSON-Datei wie diese und hosten Sie sie unter https://example.com/.well-known/assetlinks.json
.
[
{
"relation" : [
"delegate_permission/common.handle_all_urls",
"delegate_permission/common.get_login_creds"
],
"target" : {
"namespace" : "web",
"site" : "https://example.com"
}
},
{
"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" : [
"DE:AD:BE:EF"
]
}
}
]
Achten Sie darauf, dass die Seite von Google gecrawlt werden kann und mit dem HTTP-Header Content-Type: application/json
bereitgestellt wird.
sha256_cert_fingerprints
ist der SHA256-Fingerabdruck des Signaturzertifikats Ihrer App.
Weitere Informationen finden Sie in der Dokumentation zu Android App Links.
Schritt 2: Link zu assetlinks.json
in der Android-App
Fügen Sie in Ihrer Android-App der Manifestdatei unter <application>
die folgende Zeile hinzu:
<meta-data android:name="asset_statements" android:resource="@string/asset_statements" />
Schritt 3: Fügen Sie der Datei „strings.xml“ eine String-Ressource asset_statements
hinzu.
Der String asset_statements
ist ein JSON-Objekt, das die zu ladenden assetlinks.json
-Dateien angibt. Apostrophe und Anführungszeichen im String müssen maskiert werden. Beispiel:
<string name="asset_statements" translatable="false">
[{
\"include\": \"https://example.com/.well-known/assetlinks.json\"
}]
</string>
Weitere Informationen zum Verknüpfen Ihrer App mit Ihrer Website finden Sie in der SmartLock-Dokumentation für Passwörter auf Android-Geräten.