Podstawowym warunkiem wstępnym wdrożenia płynnego logowania za pomocą Menedżera danych logowania w aplikacji i witrynie jest utworzenie między nimi bezpiecznego powiązania. Jest to możliwe dzięki plikom Digital Asset Links, które umożliwiają dostawcom danych logowania bezpieczne udostępnianie danych logowania między aplikacją a witryną. Na przykład witryna może zadeklarować, że udostępnia dane logowania aplikacji na Androida lub innej witrynie, używając pliku Digital Asset Links. Korzystanie z Digital Asset Links umożliwia użytkownikom płynne logowanie i używanie tych samych zapisanych danych logowania w powiązanych aplikacjach i witrynach.
Konfigurowanie protokołu Digital Asset Links między aplikacją a witryną
Aby umożliwić dostawcom danych logowania używanie kluczy dostępu i haseł w aplikacji i witrynie, wykonaj te czynności, aby utworzyć plik Digital Asset Links dla aplikacji:
1. Tworzenie pliku JSON protokołu Digital Asset Links
Utwórz plik o nazwie assetlinks.json o tej strukturze:
[
{
"relation" : [
"<array_of_permissions_granted_to_app>"
],
"target" : {
"namespace" : "android_app",
"package_name" : "<android_application_package_name>",
"sha256_cert_fingerprints" : [
"<sha256_certificate_fingerprint_of_signing_key>"
]
}
}
]
relation: tablica zawierająca co najmniej jeden ciąg tekstowy opisujący deklarowaną relację. Aby zadeklarować, że aplikacje i witryny udostępniają dane logowania, w tablicy określ te relacje:delegate_permission/common.handle_all_urls: ta relacja umożliwia korzystanie z linków do aplikacji na Androida, dzięki którym aplikacja na Androida może obsługiwać wszystkie adresy URL w określonej domenie.delegate_permission/common.get_login_creds: ta relacja umożliwia udostępnianie danych logowania między Twoją witryną a aplikacją na Androida.
target: obiekt określający zasób, którego dotyczy deklaracja.target.namespace: ustaw wartośćandroid_app.target.package_name: ustaw nazwę pakietu zadeklarowaną w pliku manifestu aplikacji, np.com.example.android.
sha256_cert_fingerprints: odciski cyfrowe SHA256 certyfikatu podpisywania aplikacji. Aby uzyskać odcisk cyfrowy SHA256 aplikacji, zapoznaj się z artykułem Deklarowanie powiązań z witryną.
Przykładowe miejsce docelowe w przypadku aplikacji:
[
{
"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" : [
SHA_HEX_VALUE
]
}
}
]
2. Hostowanie pliku JSON protokołu Digital Asset Links
Umieść plik Digital Asset Links w tej lokalizacji w domenie logowania w swojej witrynie:
```none
https://domain[:optional_port]/.well-known/assetlinks.json
```
Jeśli na przykład domena logowania to signin.example.com, umieść plik pod adresem https://signin.example.com/.well-known/assetlinks.json.
Typ MIME pliku Digital Asset Links musi mieć wartość JSON. Sprawdź, czy serwer wysyła w odpowiedzi nagłówek Content-Type: application/json, a stan HTTP jest ustawiony na 200.
3. Zezwalaj na pobieranie pliku Digital Asset Links
Zaktualizuj hosta, aby umożliwić Google pobranie pliku Digital Asset Links. Większość witryn zezwala dowolnemu agentowi automatycznemu na pobieranie plików ze ścieżki /.well-known/, aby inne usługi mogły uzyskiwać dostęp do metadanych w tych plikach.
Jeśli masz plik robots.txt, zezwól robotom internetowym na pobieranie /.well-known/assetlinks.json, aktualizując plik robots.txt w ten sposób:
User-agent: *
Allow: /.well-known/
4. Aktualizowanie pliku manifestu aplikacji
W pliku manifestu aplikacji dodaj te wiersze w sekcji <application>:
<meta-data android:name="asset_statements" android:resource="@string/asset_statements" />
5. Konfigurowanie Digital Asset Links w przypadku haseł
Jeśli do zarządzania hasłami używasz Menedżera danych logowania, musisz wykonać dodatkowy krok, aby skonfigurować linki do zasobów cyfrowych.
Dodaj obiekt, który określa pliki assetlinks.json do załadowania w pliku manifestu. W ciągu znaków musisz używać symboli zmieniających znaczenie w przypadku apostrofów i cudzysłowów, jak pokazano w tym przykładzie:
<string name="asset_statements" translatable="false">
[{
\"include\": \"https://signin.example.com/.well-known/assetlinks.json\"
}]
</string>
Link https://signin.example.com/.well-known/assetlinks.json musi zwracać odpowiedź HTTP 200 i mieć nagłówek Content-Type o wartości application/json.
Weryfikacja nie powiedzie się, jeśli odpowiedź zawiera przekierowanie HTTP 301 lub 302 albo Content-Type w formacie innym niż JSON.
Poniższy przykład pokazuje przykładowe żądanie i oczekiwane nagłówki odpowiedzi:
> GET /.well-known/assetlinks.json HTTP/1.1
> User-Agent: curl/7.35.0
> Host: signin.example.com
< HTTP/1.1 200 OK
< Content-Type: application/json
Dalsze kroki
Po dodaniu niezbędnych zależności i skonfigurowaniu linków do zasobów cyfrowych dla kluczy dostępu możesz użyć Menedżera danych logowania, aby wdrożyć obsługiwane metody uwierzytelniania: klucze dostępu i logowanie przez Google. Aby rozpocząć, zapoznaj się z tymi przewodnikami dla programistów:
- Konfigurowanie kluczy dostępu za pomocą Menedżera danych logowania: dowiedz się, jak wdrażać klucze dostępu, czyli nowoczesną, odporną na phishing metodę bezpiecznego i wygodnego uwierzytelniania.
- Konfigurowanie logowania przez Google za pomocą Menedżera danych logowania: zintegruj „Zaloguj się przez Google”, aby uprościć logowanie użytkowników za pomocą kont Google.
- Rozwiązywanie typowych błędów Menedżera danych logowania: dowiedz się, jak rozwiązywać typowe błędy Menedżera danych logowania.
- Zintegruj uwierzytelnianie Firebase: umożliwiaj użytkownikom uwierzytelnianie w Firebase za pomocą kont Google.