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, atestowanych publicznych danych logowania na podstawie klucza na potrzeby uwierzytelniania użytkowników. Interfejs API udostępnia implementację klienta WebAuthn, która umożliwia korzystanie z uwierzytelniania za pomocą BLE, NFC i roamingu USB (klucze bezpieczeństwa), a także uwierzytelnianie platformy, które umożliwia uwierzytelnianie przy użyciu odcisku palca lub blokady ekranu.

Integracja

Punkt wejścia FIDO2 API to Fido2ApiClient.

Interfejs API obsługuje 2 operacje:

  • Rejestracja jest przeprowadzana tylko raz dla każdego mechanizmu uwierzytelniania, gdy użytkownik przypisze do niego uwierzytelnianie.
  • Podpisywanie odbywa się zawsze, gdy podmiot zależny chce uwierzytelnić użytkownika.

Zarówno rejestracja, jak i podpisanie wymagają interakcji użytkownika.

Przykładowa aplikacja pokazująca użycie interfejsu API jest dostępna na https://github.com/android/identity-samples/tree/main/Fido2.

Interoperacyjność Twojej witryny

Użytkownicy mogą łatwo udostępniać dane logowania w witrynie i aplikacji na Androida. Skorzystaj z linków do zasobów cyfrowych. Możesz zdefiniować 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 np. chcesz powiązać aplikację https://example.com z aplikacją na Androida com.example.android, musisz wykonać te 3 czynności:

Krok 1. Hostowanie usługi assetlinks.json w Twojej domenie

Utwórz taki plik JSON i umieść go na serwerze 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 Google może ją zindeksować i że zawiera 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 w pliku manifestu w sekcji <application> dodaj ten wiersz:

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

Krok 3. Dodaj zasób tekstowy asset_statements do pliku string.xml

Ciąg asset_statements jest obiektem JSON, który określa pliki assetlinks.json do wczytania. Musisz ominąć wszelkie apostrofy i cudzysłowy używane w ciągu znaków. Przykład:

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

Aby dowiedzieć się więcej o powiązywaniu aplikacji z witryną, przeczytaj dokumentację na temat Smart Lock na hasła w Androidzie.