Składnia listy wyciągu

Lista instrukcji to zakodowany w formacie JSON plik lub fragment kodu w dobrze znanej lokalizacji.

Lokalizacja listy wyciągów

Aby dowiedzieć się, gdzie należy przechowywać tę listę, zapoznaj się z artykułem Tworzenie listy stwierdzeń.

Składnia

Lista lub fragment oświadczenia składa się z tablicy JSON z co najmniej 1 oświadczeniem dotyczącym witryny lub aplikacji w postaci obiektów JSON. Te instrukcje mogą być wykonywane w dowolnej kolejności. Oto ogólna składnia:

[
  {
    "relation": ["relation_string"],
    "target": {target_object}
  } , ...
]
relacja
Tablica z co najmniej jednym ciągiem tekstowym opisującym zadeklarowaną relację dotyczącą elementu docelowego. Zobacz listę zdefiniowanych ciągów relacji. Przykład: delegate_permission/common.handle_all_urls
cel
Zasób docelowy, którego dotyczy ta informacja. Dostępne typy kierowania:
  • "target": {
      "namespace": "web",
      "site": "site_root_url"
    }
    przestrzeń nazw
    W przypadku witryn musi to być web.
    witryna
    URI witryny, która jest celem instrukcji, w formacie http[s]://<hostname>[:<port>], gdzie <hostname> to pełna nazwa domeny, a <port> musi zostać pominięty, jeśli używasz portu 80 w przypadku HTTP lub portu 443 w przypadku HTTPS. Docelowa witryna może być tylko domeną główną. Nie możesz ograniczyć się do konkretnego podkatalogu. Wszystkie katalogi w ramach tej domeny głównej będą pasować. Subdomen nie należy uznawać za dopasowane: to znaczy, że jeśli plik z wyciągiem znajduje się na stronie www.example.com, adres www.szczeniaki.example.com nie powinien być uznawany za dopasowanie. Więcej informacji o regułach i przykładach dopasowywania docelowych witryn znajdziesz w dokumentacji na temat celów. Przykład: http://www.example.com
  • "target": {
      "namespace": "android_app",
      "package_name": "fully_qualified_package_name",
      "sha256_cert_fingerprints": ["cert_fingerprint"]
    }
    przestrzeń nazw
    W przypadku aplikacji na Androida wartość to android_app.
    package_name
    Pełna i jednoznaczna nazwa pakietu aplikacji, której dotyczy to stwierdzenie. Przykład: com.google.android.apps.maps
    sha256_cert_fingerprints
    Odcisk cyfrowy SHA265 pisany wielkimi literami certyfikatu dla aplikacji, która do której ma zastosowanie. Możesz to obliczyć za pomocą funkcji openssl lub Java keytool, jak pokazano tutaj:
    • openssl x509 -in $CERTFILE -noout -fingerprint -sha256
    • keytool -printcert -file $CERTFILE | grep SHA256
    Przykład: ["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"].

    Jeśli w przypadku swojej aplikacji korzystasz z podpisywania aplikacji w Google Play, odcisk cyfrowy certyfikatu wygenerowany przez uruchomienie keytool lub openssl lokalnie zwykle nie będzie pasować do odcisku cyfrowego na urządzeniach użytkowników. Aby sprawdzić, czy używasz podpisywania aplikacji przez Google Play w swojej aplikacji, konto dewelopera w Konsoli Play; poniżej Release > Setup > App Integrity; jeśli tak, na tej samej stronie znajdziesz też odpowiedni fragment kodu JSON protokołu Digital Asset Links dla swojej aplikacji. stronę.

Przykładowa lista instrukcji

Oto przykładowa lista oświadczeń dotyczących 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ęcej instrukcji

W niektórych przypadkach podmiot zabezpieczeń może chcieć składać wiele różnych instrukcji na temat różnych celów lub też konieczne może być wydanie oświadczeń różne podmioty zabezpieczeń do tego samego zbioru wartości docelowych. Na przykład witryna może mogą być dostępne w wielu różnych domenach najwyższego poziomu w poszczególnych krajach. może zechcieć przedstawić opinię o tej samej aplikacji mobilnej.

W takich sytuacjach pomocne mogą być oświadczenia. Za pomocą tego mechanizmu możesz skonfigurować wskaźniki z wielu różnych podmiotów zabezpieczeń do jednego centralnego miejsca, które definiuje instrukcje dotyczące wszystkich podmiotów.

Na przykład można uznać, że lokalizacja centralna powinien mieć postać „https://example.com/includedstatements.json”. Taki plik można skonfigurowano tak, aby zawierał tę samą treść co w powyższych przykładach.

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

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

Aby skonfigurować wskaźnik z aplikacji na Androida do pliku include, zmień wartość „res/values/strings.xml” na:

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

Więcej informacji

Bardziej szczegółowe objaśnienie formatu listy wyciągów i podstawowych pojęć znajdziesz w dokumentacji.