Pierwsze kroki

Omówienie

Protokół Digital Asset Links i interfejs API umożliwiają aplikacji lub witrynie publikowanie publicznych i możliwych do zweryfikowania twierdzeń dotyczących innych aplikacji lub witryn. Na przykład witryna może zadeklarować, że jest powiązana z konkretną aplikacją na Androida lub że chce udostępnić dane logowania użytkownikowi w innej witrynie.

Oto kilka zastosowań logo Digital Asset Links:

  • Witryna A deklaruje, że linki do witryny powinny otwierać się w określonej aplikacji na urządzeniu mobilnym, jeśli jest ona zainstalowana.
  • Witryna A deklaruje, że może udostępniać swoje dane logowania do Chrome witryny B, aby użytkownik nie musiał logować się na stronie B, jeśli jest zalogowany na stronie A.
  • Aplikacja A deklaruje, że może udostępniać stronie B ustawienia urządzenia, takie jak lokalizacja.

Kluczowe terminy

  • Podmiot zabezpieczeń: podmiot zabezpieczeń to aplikacja lub strona internetowa tworząca oświadczenie. W Digital Asset Links podmiotem zabezpieczeń jest zawsze aplikacja lub strona hostująca listę wyciągów.
  • Lista wyciągów: wyciągi znajdują się na liście wyciągów, która zawiera co najmniej 1 wyciąg. Lista wyciągu to jawny tekst i publicznie dostępny w miejscu kontrolowanym przez podmiot zabezpieczeń, którego trudno użyć do podszywania się pod kogoś innego. Może to być plik wolnostojący lub sekcja innego, większego elementu. Na przykład w witrynie jest to cały plik, a w przypadku aplikacji na Androida jest to sekcja w manifeście aplikacji. Wyciągi mogą wyświetlać i weryfikować każdy, korzystając z niezastrzeżonych metod. Więcej informacji znajdziesz w dokumentacji listy wyciągu
  • Wyciąg: instrukcja to ściśle skonstruowana konstrukcja JSON, która składa się z relacji (zgodnie z opisem, np. jak włączyć udostępnianie danych logowania) oraz celu (strony internetowej lub aplikacji, której dotyczy relacja). Każde zdanie jest więc jak zdanie, gdzie podmiot zabezpieczeń to relacja o celu.
  • Konsument korzystający z wyciągu: klient, który chce uzyskać wyciąg, poprosi o jego listę, a także o sprawdzenie, czy podmiot ten istnieje. Aby dowiedzieć się więcej, zapoznaj się z dokumentacją na temat przetwarzania danych.

Przykład szybkiego użycia

Oto bardzo uproszczony przykład tego, jak witryna www.example.com może wykorzystywać linki do zasobów cyfrowych, by wskazać, że wszystkie linki do adresów URL w danej witrynie powinny otwierać się w określonej aplikacji, a nie w przeglądarce:

  1. Witryna www.example.com publikuje listę instrukcji pod adresem https://www.example.com/.well-known/assetlinks.json. Jest to oficjalna nazwa i lokalizacja na liście wyciągów w witrynie. Listy z innych lokalizacji lub z żadną inną nazwą nie są poprawne w przypadku tej witryny. W naszym przykładzie lista instrukcji składa się z jednego oświadczenia, które przyznaje aplikacji na Androida uprawnienia do otwierania linków w witrynie:
    [{
      "relation": ["delegate_permission/common.handle_all_urls"],
      "target" : { "namespace": "android_app", "package_name": "com.example.app",
                   "sha256_cert_fingerprints": ["hash_of_app_certificate"] }
    }]
    Lista instrukcji obsługuje tablicę z informacjami w znakach [ ], ale przykładowy plik zawiera tylko jedno wyrażenie. sha256_cert_fingerprints to odciski cyfrowe SHA256 certyfikatu podpisywania aplikacji. Więcej informacji znajdziesz w dokumentacji linków aplikacji na Androida.
  2. Aplikacja na Androida wymieniona w powyższym omówieniu ma filtr intencji, który określa schemat, hosta i wzór ścieżki adresów URL, które chce obsługiwać: w tym przypadku https://www.example.com. Filtr intencji zawiera specjalny atrybut android:autoVerify (nowszy dla Androida M), który wskazuje, że podczas instalacji aplikacji na Androida należy zweryfikować instrukcję w witrynie opisanej w filtrze intencji.
  3. Użytkownik instaluje aplikację. Android widzi filtr intencji z atrybutem autoVerify i sprawdza, czy w określonej witrynie znajduje się lista instrukcji. Jeśli plik zawiera instrukcję, Android sprawdza, czy plik zawiera wyciąg z linkiem do aplikacji, i weryfikuje ją za pomocą hasha certyfikatu. Jeśli wszystko działa, Android przekierowuje wszystkie intencje https://www.example.com do aplikacji example.com.
  4. Użytkownik klika link na stronie https://www.example.com/szczeniaki na swoim urządzeniu. Ten link może znajdować się w dowolnym miejscu: w przeglądarce, w sugestii Modułu Wyszukiwania Google lub w dowolnym innym miejscu. Android przekierowuje intencję do aplikacji example.com.
  5. Aplikacja example.com otrzymuje intencję i decyduje się ją obsłużyć, otwierając w niej stronę szczeniaków. Jeśli z jakiegoś powodu aplikacja odmówiła obsługi linku lub nie była na urządzeniu, link zostałby wysłany do następnego domyślnego modułu obsługi pasującego do tego wzorca intencji (często w przeglądarce).

Ważne uwagi i ograniczenia:

  • Protokół nie uwierzytelnia podmiotu zabezpieczeń wykonującego instrukcje, ale znajduje się on w konkretnej lokalizacji, która jest silnie powiązana z podmiotem zabezpieczeń, i pod jego kontrolą.
  • Protokół nie uwierzytelnia uwierzytelniania elementu docelowego, ale udostępnia metodę, która umożliwia uwierzytelnianie celu (np. instrukcja identyfikuje cele aplikacji mobilnych na podstawie skrótu certyfikatu i nazwy pakietu).
  • Protokół nie wykonuje natywnie żadnych działań związanych z deklaracjami. Zamiast tego umożliwia udostępnianie instrukcji, które muszą sprawdzać i weryfikować aplikacje, a także zdecydować, co z nimi zrobić. Android M wykonuje te czynności za Ciebie. Jeśli na przykład strona przekazuje obsługę linków do określonej aplikacji, Android sprawdza i potwierdza oświadczenie, weryfikuje aplikację docelową, a potem umożliwia aplikacji obsługę wybranego linku.
  • Protokół nie zezwala na wyrażanie informacji o 2 firmach zewnętrznych, tzn. witryna A może udzielać informacji o witrynie B, ale witryna A nie może składać żadnych oświadczeń o relacji witryny B z witryną C. Jeśli jednak witryna B jest zaufana dla witryny A, może sprawdzić, czy witryna A zawiera oświadczenie przyznające uprawnienia do witryny C, i zdecydować się na wdrożenie.

Dalsze kroki

  1. Sprawdź, czy w Twoim przypadku nie ma wyraźnej dokumentacji.
  2. Dowiedz się, jak utworzyć zestawienie