1. Przegląd
Czy użytkownicy korzystają z Twojej usługi w witrynach i aplikacjach na Androida? Zmuszanie użytkowników do osobnego logowania się na każdej platformie powoduje niepotrzebne utrudnienia i może prowadzić do rezygnacji.
Digital Asset Links (DAL) rozwiązuje ten problem, umożliwiając deklarowanie powiązań między witrynami a aplikacjami. Dzięki temu menedżerowie haseł, np. Menedżer haseł Google, mogą udostępniać sobie zapisane hasła i klucze dostępu.
Konfiguracja pliku Digital Asset Links wymaga różnych relacji w zależności od tego, co chcesz udostępniać:
- W przypadku haseł: uwzględnienie
delegate_permission/common.get_login_credsumożliwia menedżerom haseł udostępnianie zapisanych haseł między Twoją witryną a aplikacją. - Klucze dostępu: ponieważ klucze dostępu są ściśle powiązane z określoną domeną internetową, Android wymaga potwierdzenia własności domeny. Dlatego musisz dodać
delegate_permission/common.handle_all_urls. Możesz rozpoznać to uprawnienie jako używane w przypadku linków do aplikacji na Androida (precyzyjnych linków), ale jest ono też niezbędne, aby umożliwić używanie kluczy dostępu utworzonych na jednej platformie na innej.
Efekt? Użytkownicy mogą logować się na powiązanych platformach bezproblemowo, używając haseł lub kluczy dostępu zapisanych tylko na jednej z nich.

Wdrożenie łatwego udostępniania danych logowania może znacznie zwiększyć wygodę użytkowników. Na przykład eBay odnotował 10-procentowy wzrost liczby udanych logowań po wdrożeniu DAL do udostępniania danych logowania.
Z tego ćwiczenia dowiesz się, jak używać protokołu Digital Asset Links, aby włączyć udostępnianie danych logowania między witryną a aplikacją na Androida.
Wymagania wstępne
- Podstawowa wiedza o formacie JSON i programowaniu na Androida.
- Znajomość wymagań wstępnych dotyczących Menedżera danych logowania na Androidzie.
Czego się nauczysz
- Jak skonfigurować udostępnianie danych logowania za pomocą Konsoli Google Play (zalecane).
- Jak ręcznie utworzyć plik
assetlinks.json. - Jak skonfigurować aplikację na Androida do ręcznego powiązania.
- Jak włączyć klucze dostępu w aplikacji na Androida, powiązując ją z domeną witryny.
- Jak używać narzędzi do generowania i weryfikowania konfiguracji.
Czego potrzebujesz
- Witryna: możliwość hostowania pliku JSON pod adresem
https://{your-domain}/.well-known/assetlinks.json. - Aplikacja na Androida:
- W przypadku metody Konsoli Play: aplikacja opublikowana w Google Play.
- W przypadku metody ręcznej: projekt aplikacji na Androida, który możesz modyfikować i kompilować. Pamiętaj, że aby udostępnianie danych logowania Menedżerowi haseł Google działało, aplikacja musi być opublikowana w Google Play.
Jak to działa
Aby udostępnianie danych logowania działało, musisz ustanowić zaufanie dwukierunkowe:
- Sieć –> aplikacja: w Twojej witrynie musi być przechowywany plik
assetlinks.json, który deklaruje, że witryna ufa Twojej aplikacji na Androida. - Aplikacja –> internet: aplikacja na Androida musi być skonfigurowana tak, aby ufać Twojej witrynie.
Opiszemy 2 sposoby: automatyczny za pomocą Konsoli Google Play (zalecany) i ręczny za pomocą bezpośredniego użycia Digital Asset Links.
2. Konfigurowanie za pomocą Konsoli Google Play (zalecane)
Najprostszym sposobem włączenia udostępniania danych logowania między witryną a aplikacją na Androida jest skorzystanie z Konsoli Google Play. Ta metoda umożliwia powiązanie aplikacji z witryną bez konieczności modyfikowania pliku manifestu aplikacji ani publikowania jej nowej wersji. Google Play zarządza powiązaniem po stronie aplikacji.
Wymagania wstępne
- uprawnienia w Konsoli Play do uzyskiwania dostępu do strony Precyzyjne linki;
- możliwość opublikowania pliku
/.well-known/assetlinks.jsonw swojej domenie;
Więcej informacji o precyzyjnych linkach znajdziesz w artykule Linki aplikacji na Androida.
Kroki
- W Konsoli Play kliknij Rozwój > Precyzyjne linki.
- Jeśli Twojej domeny nie ma na liście, kliknij Dodaj domenę w sekcji Konfiguracja aplikacji.
- Znajdź swoją domenę i odszukaj kolumnę Udostępnianie danych logowania. Kliknij Włącz (lub upewnij się, że w przypadku nowych domen opcja Włącz udostępnianie danych logowania jest włączona).
- Skopiuj fragment kodu JSON wygenerowany przez Konsolę Play.
- Opublikuj tę treść JSON w
https://{your-domain}/.well-known/assetlinks.json. (Jeśli masz już ten plik, dodaj do niego nowe oświadczenie). - Wróć do Konsoli Play i kliknij Utwórz powiązanie z witryną lub Włącz udostępnianie danych logowania.
Konsola Play zweryfikuje teraz konfigurację hostingu.

Aby udostępnianie danych logowania działało, dostawca hostingu witryny musi spełniać te wymagania:
- Adres URL jest dostępny przez HTTPS.
- Serwer odpowiada kodem
Content-Type: application/json. - URL jest dostępny bez przekierowań.
Po zweryfikowaniu udostępnianie danych logowania zostanie włączone. Zastosowanie zmian w konfiguracji może potrwać od 1 do 2 tygodni.
3. Konfigurowanie ręczne za pomocą Digital Asset Links
Chcesz mieć większą kontrolę? lub nie masz dostępu do Konsoli Play? Udostępnianie danych logowania między witryną a aplikacją na Androida możesz skonfigurować ręcznie. Obejmuje to 2 główne zadania: hostowanie pliku JSON w witrynie i zaktualizowanie pliku manifestu aplikacji na Androida.
1. Uzyskiwanie cyfrowego odcisku palca aplikacji
Zanim skonfigurujesz łatwe udostępnianie danych logowania, upewnij się, że masz te elementy na każdej platformie:
W przypadku każdej aplikacji na Androida:
- Identyfikator aplikacji na Androida zadeklarowany w pliku
build.gradleaplikacji. - Odciski cyfrowe SHA256 certyfikatu podpisywania.
- (Zalecane) Logowanie użytkownika zaimplementowane za pomocą interfejsu Credential Manager API.
2. Tworzenie pliku powiązania
Musisz utworzyć plik assetlinks.json, który deklaruje relacje między Twoją witryną a aplikacją. Użyj delegate_permission/common.get_login_creds, aby przyznać uprawnienia do udostępniania haseł, a delegate_permission/common.handle_all_urls, aby włączyć precyzyjne linki i udostępniać klucze dostępu.
Utwórz plik o nazwie assetlinks.json z następującą treścią. Zastąp przykładowe wartości własnym adresem URL witryny, nazwą pakietu i odciskiem palca:
[{
"relation": [
"delegate_permission/common.handle_all_urls",
"delegate_permission/common.get_login_creds"
],
"target": {
"namespace": "android_app",
"package_name": "com.example.app",
"sha256_cert_fingerprints":
["14:6D:E9:83:C5:73:06:50:D8:EE:B9:95:2F:34:FC:64:16:A0:83:42:E6:1D:BE:A8:8A:04:96:B2:3F:CF:44:E5"]
}
}]
3. Hostowanie pliku
Prześlij plik assetlinks.json do katalogu .well-known w katalogu głównym domeny.
Lokalizacja: https://{your-domain}/.well-known/assetlinks.json
Aby udostępnianie danych logowania działało, dostawca hostingu witryny musi spełniać te wymagania:
- Adres URL jest dostępny przez HTTPS.
- Serwer odpowiada kodem
Content-Type: application/json. - URL jest dostępny bez przekierowań.

4. Konfigurowanie aplikacji na Androida
Teraz poinformuj aplikację na Androida, że witryna jest zaufana. W pliku manifestu dodasz odwołanie do pliku zasobów zawierającego Twój assetlinks.json URL.
1. Dodawanie zasobu tekstowego
W res/values/strings.xml dodaj nowy ciąg znaków asset_statements. Zwróć uwagę na znaki ucieczki przy cudzysłowach.
<resources>
<string name="asset_statements" translatable="false">
[{
\"include\": \"https://www.example.com/.well-known/assetlinks.json\"
}]
</string>
</resources>
2. Dodawanie metadanych do pliku manifestu
W pliku AndroidManifest.xml dodaj tag <meta-data> w elemencie <application>, który odwołuje się do tego zasobu tekstowego:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.app">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme">
<meta-data
android:name="asset_statements"
android:resource="@string/asset_statements" />
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Po wykonaniu tych czynności i opublikowaniu nowej wersji aplikacji na Androida menedżery haseł obsługujące Digital Asset Links (np. Menedżer haseł Google) będą mogły sugerować dane logowania zapisane dla www.example.com, gdy użytkownik spróbuje zalogować się w com.example.app, i odwrotnie.
4. Sprawdzanie konfiguracji
Przed wysłaniem aplikacji koniecznie sprawdź konfigurację Digital Asset Links. Nieprawidłowy plik JSON lub niedostępne pliki nie będą powodować błędów.
Użyj oficjalnego narzędzia Generator i walidator oświadczeń.

- Wpisz domenę witryny i nazwę pakietu aplikacji.
- Kliknij Test Statement (Testowy wyciąg).
- Narzędzie sprawdzi, czy plik
assetlinks.jsonjest prawidłowo hostowany i zawiera prawidłowe powiązanie.
5. Udostępnianie danych logowania w wielu witrynach

Jeśli masz kilka witryn korzystających z tego samego systemu logowania (np. example.com i example.co.uk), możesz zadeklarować je jako powiązane, aby można było udostępniać między nimi dane logowania.
Udostępnianie haseł na wielu stronach
Aby udostępniać hasła między witrynami, możesz zadeklarować powiązanie web z web za pomocą delegate_permission/common.get_login_creds.
Na przykład, aby example.com mogła udostępniać hasła użytkownikowi example.co.uk, plik assetlinks.json hostowany na stronie https://example.com/.well-known/assetlinks.json musi zawierać oświadczenie skierowane do użytkownika example.co.uk:
[{
"relation": ["delegate_permission/common.get_login_creds"],
"target": {
"namespace": "web",
"site": "https://example.co.uk"
}
}]
Podobnie https://example.co.uk/.well-known/assetlinks.json musi zawierać oświadczenie kierowane do example.com.
Udostępnianie kluczy dostępu w wielu witrynach
Aby umożliwić wielu witrynom udostępnianie tych samych kluczy dostępu, muszą one używać tego samego identyfikatora podmiotu ufającego (RP ID). W przypadku WebAuthn i kluczy dostępu identyfikator RP określa zakres danych logowania według nazwy domeny. Klucz dostępu jest powiązany z konkretnym identyfikatorem RP i może być używany tylko w domenach, które wchodzą w zakres tego identyfikatora. Prawidłowe zdefiniowanie identyfikatora RP zapewnia bezproblemowe korzystanie z kluczy dostępu w subdomenach, źródłach różnych witryn i aplikacjach mobilnych własnych. Więcej informacji o ustawianiu identyfikatora RP znajdziesz w artykule Understanding Relying Party ID (RP ID) (Identyfikator RP). Dzięki powiązanym żądaniom pochodzenia jedna witryna może określić inne pochodzenia, które mogą używać jej identyfikatora RP, co pozwala użytkownikom ponownie używać tego samego klucza dostępu w wielu witrynach, które obsługujesz. Pamiętaj, że różni się to od udostępniania kluczy dostępu między witryną a aplikacją na Androida, które wykorzystuje delegate_permission/common.handle_all_urls w protokole Digital Asset Links.
Jeśli na przykład chcesz, aby witryny example.com i example.co.uk współużytkowały klucze dostępu, możesz zdecydować, że example.com będzie kanonicznym identyfikatorem RP. Aby to działało, example.co.uk musi używać rpId: 'example.com' w wywołaniach interfejsu WebAuthn API, a example.com musi hostować plik pod adresem https://example.com/.well-known/webauthn, aby dodać example.co.uk do listy dozwolonych:
{
"origins": [
"https://example.co.uk"
]
}
Umożliwia to example.co.uk tworzenie i używanie kluczy dostępu powiązanych z example.com.
6. Podsumowanie
Gratulacje! Udało Ci się skonfigurować łatwe udostępnianie danych logowania.
Użytkownicy mogą teraz zapisywać hasła i klucze dostępu w Twojej witrynie i używać ich do logowania się w aplikacji na Androida jednym kliknięciem (i odwrotnie). Ta prosta zmiana może znacznie zwiększyć współczynniki konwersji logowania i satysfakcję użytkowników.
Co dalej?
- Zapoznaj się z oficjalną dokumentacją Digital Asset Links.
- Dowiedz się więcej o podstawach udostępniania danych logowania.
- Przeczytaj studium przypadku eBay, aby zobaczyć, jaki był wpływ tego rozwiązania.