FIDO2-API für Android

Mit der FIDO2 API können Android-Anwendungen starke, attestierte, öffentlicher Schlüssel basierende Anmeldedaten zum Authentifizieren 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.

Interoperabilität mit Ihrer Website

Sie können Nutzern ganz einfach die nahtlose Freigabe von Anmeldedaten auf Ihrer Website und in Ihrer Android-App ermöglichen. 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.

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 asset_statements-Stringressource 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.