Składnia listy wyciągu

Lista oświadczeń to zakodowany w formacie JSON plik lub fragment kodu w dobrze znanej lokalizacji.

Lokalizacja listy oświadczeń

Więcej informacji o tym, gdzie powinna być przechowywana ta lista, znajdziesz w artykule Tworzenie listy instrukcji.

Składnia

Lista lub fragment kodu zawiera tablicę JSON z co najmniej 1 deklaracją dotyczącą witryny lub aplikacji w formie obiektu JSON. Mogą one występować w dowolnej kolejności. Oto ogólna składnia:

[
  {
    "relation": ["relation_string"],
    "target": {target_object}
  } , ...
]
relation
Tablica zawierająca co najmniej 1 ciąg znaków opisujący deklarowane powiązanie z elementem docelowym. Zobacz listę zdefiniowanych ciągów relacji. Przykład: delegate_permission/common.handle_all_urls
cel
Element docelowy, którego dotyczy to oświadczenie. Dostępne typy miejsc docelowych:
relation_extensions (opcjonalnie)

Do oświadczenia możesz dodać opcjonalne pole relation_extensions, aby podać więcej informacji o uprawnieniach i powiązaniach, które chcesz przyznać. To pole powinno być obiektem, w którym każdy klucz jest ciągiem znaków relacji, a wartość jest obiektem zawierającym rozszerzenia dla tej relacji. Klienci, którzy żądają tych wyciągów, muszą zostać zaktualizowani, aby uwzględniać te pola.

Na przykład relation_extensions dla relacji delegate_permission/common.handle_all_urls może wyglądać tak:

  {
    "relation": ["delegate_permission/common.handle_all_urls"],
    "target": {
      "namespace": "android_app",
      "package_name": "com.example.app",
      "sha256_cert_fingerprints": ["..."]
    },
    "relation_extensions": {
      "delegate_permission/common.handle_all_urls": {...}
    }
  }
  

Interfejs DAL API obsługuje zwracanie rozszerzeń relation_extensions w wywołaniach interfejsu API, gdy w żądaniu ustawiony jest parametr return_relation_extensions=true.

Przykładowa lista oświadczeń

Oto przykładowa lista oświadczeń witryny, która zawiera oświadczenia dotyczące zarówno witryn, jak i aplikacji: http://example.digitalassetlinks.org/.well-known/assetlinks.json

Skalowanie do kilkudziesięciu lub większej liczby stwierdzeń

W niektórych przypadkach podmiot może chcieć wydać wiele różnych oświadczeń dotyczących różnych celów lub może zaistnieć potrzeba wydania oświadczeń przez różne podmioty do tego samego zestawu celów. Na przykład witryna może być dostępna w wielu różnych domenach najwyższego poziomu w poszczególnych krajach, a wszystkie te domeny mogą chcieć opublikować informacje o tej samej aplikacji mobilnej.

W takich sytuacjach pomocne mogą być instrukcje include. Za pomocą tego mechanizmu możesz skonfigurować wskaźniki z wielu różnych podmiotów zabezpieczeń do jednej centralnej lokalizacji, która definiuje instrukcje dla wszystkich podmiotów zabezpieczeń.

Możesz na przykład zdecydować, że centralna lokalizacja powinna mieć postać `https://example.com/includedstatements.json`. Ten plik można skonfigurować tak, aby zawierał te same treści co w przykładach powyżej.

Aby skonfigurować wskaźnik z witryny do pliku dołączanego, zmień `https://example.com/.well-known/assetlinks.json` na:

[{
  "include": "https://example.com/includedstatements.json"
}]

Aby skonfigurować wskaźnik z aplikacji na Androida do pliku dołączanego, zmień plik `res/values/strings.xml` na:

<resources>
  ...
  <string name="asset_statements">
    [{
      \"include\": \"https://example.com/includedstatements.json\"
    }]
  </string>
</resources>

Więcej informacji

Szczegółowe wyjaśnienie formatu listy instrukcji i powiązanych z nim koncepcji znajdziesz w naszym dokumencie specyfikacji.