FIDO2 API na Androida

Zadbaj o dobrą organizację dzięki kolekcji Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.

Interfejs FIDO2 API umożliwia aplikacjom na Androida tworzenie i używanie silnych, potwierdzonych publicznych danych logowania opartych na kluczach do uwierzytelniania użytkowników. Interfejs API udostępnia implementację WebAuthn Client, która obsługuje korzystanie z uwierzytelniania BLE, NFC oraz roamingu USB (klucze bezpieczeństwa), jak również uwierzytelniające platformy, uwierzytelniania za pomocą odcisku palca lub blokady ekranu.

Integracja

Punkt wejścia FIDO2 API to Fido2ApiClient.

Interfejs API obsługuje dwie operacje:

  • Rejestracja jest przeprowadzana raz na uwierzytelniające konto, gdy użytkownik połączy aplikację z kontem.
  • Podpisywanie jest przeprowadzane za każdym razem, gdy podmiot zależny chce uwierzytelnić użytkownika.

Zarówno rejestracja, jak i podpisywanie wymagają interakcji z użytkownikiem.

Przykładową aplikację pokazującą użycie interfejsu API znajdziesz na https://github.com/android/security-samples/tree/master/Fido.

Interoperacyjność z Twoją witryną

Ułatwienie użytkownikom udostępniania danych logowania w witrynie i aplikacji na Androida jest proste. Aby to zrobić, skorzystaj z linków cyfrowych zasobów reklamowych. Możesz powiązać powiązania, hostując plik JSON protokołu Digital Asset Links w swojej witrynie i dodając do pliku manifestu aplikacji link do tego pliku.

Jeśli na przykład chcesz powiązać konto https://example.com z aplikacją na Androida com.example.android, te 3 wymagane czynności:

Krok 1. Host assetlinks.json w Twojej domenie

Utwórz taki plik JSON i umieść go w 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"
      ]
    }
  }
]

Upewnij się, że można ją zindeksować i nagłówek HTTP Content-Type: application/json.

sha256_cert_fingerprints to odciski cyfrowe SHA256 certyfikatu podpisywania aplikacji. Więcej informacji znajdziesz w dokumentacji linków aplikacji na Androida.

W aplikacji na Androida dodaj ten wiersz do pliku manifestu w sekcji <application>:

<meta-data android:name="asset_statements" android:resource="@string/asset_statements" />

Krok 3. Dodaj zasób ciągu znaków asset_statements do pliku string.xml

Ciąg asset_statements to obiekt JSON określający pliki assetlinks.json do wczytania. Musisz zmieniać znaczenie apostrofów i cudzysłowów, których używasz w ciągu znaków. np.:

<string name="asset_statements" translatable="false">
[{
  \"include\": \"https://example.com/.well-known/assetlinks.json\"
}]
</string>

Więcej informacji o wiązaniu aplikacji z witryną znajdziesz w dokumentacji SmartLock for Passwords na Androida.