Interfejs FIDO2 API umożliwia aplikacjom na Androida tworzenie i wykorzystywanie silnych, autentycznych danych uwierzytelniających opartych na kluczu publicznym do uwierzytelniania użytkowników. Interfejs API udostępnia implementację klienta WebAuthn, która obsługuje korzystanie z BLE, NFC i uwierzytelniania roamingu USB (kluczy bezpieczeństwa), a także narzędzie uwierzytelniające platformy, które umożliwia użytkownikom uwierzytelnianie przy użyciu odcisku palca lub blokady ekranu.
Integracja
Punktem wejścia FIDO2 API jest Fido2ApiClient.
Interfejs API obsługuje 2 operacje:
- Rejestracja jest wykonywana raz na dane konto, gdy użytkownik powiąże go z kontem.
- Podpisywanie ma miejsce za każdym razem, gdy strona uzależniona chce uwierzytelnić użytkownika.
Rejestracja i podpisywanie wymagają interakcji użytkownika.
Przykładowa aplikacja demonstrująca korzystanie z interfejsu API znajduje się na stronie https://github.com/android/identity-samples/tree/main/Fido2.
Interoperacyjność witryny
Możesz w prosty sposób umożliwić użytkownikom bezproblemowe udostępnianie danych logowania w witrynie i aplikacji na Androida. Aby to zrobić, skorzystaj z Digital Asset Links. Aby zadeklarować powiązania, hostuj w swojej witrynie plik JSON protokołu Digital Asset Links i dodaj link do tego pliku w pliku manifestu aplikacji.
Jeśli na przykład chcesz powiązać usługę https://example.com
z aplikacją na Androida com.example.android
, wykonaj te 3 wymagane czynności:
Krok 1. Hostuj assetlinks.json
w swojej domenie
Utwórz plik JSON podobny do tego i hostuj go pod adresem 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"
]
}
}
]
Sprawdź, czy może on być indeksowany przez Google i jest udostępniany z nagłówkiem HTTP Content-Type: application/json
.
sha256_cert_fingerprints
to odciski cyfrowe SHA256 certyfikatu podpisywania Twojej aplikacji.
Więcej informacji znajdziesz w dokumentacji linków aplikacji na Androida.
Krok 2. Połącz z: assetlinks.json
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 asset_statements
do pliku string.xml
Ciąg asset_statements
to obiekt JSON określający pliki assetlinks.json
do wczytania. Musisz zmienić znaczenie apostrofów i cudzysłowów użytych w ciągu. Na przykład:
<string name="asset_statements" translatable="false">
[{
\"include\": \"https://example.com/.well-known/assetlinks.json\"
}]
</string>
Więcej informacji o łączeniu aplikacji z witryną znajdziesz w dokumentacji funkcji SmartLock na potrzeby haseł w Androidzie.