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:
-
Witryna docelowa "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
-
Ustawienie aplikacji na Androida "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 Javakeytool
, jak pokazano tutaj:openssl x509 -in $CERTFILE -noout -fingerprint -sha256
keytool -printcert -file $CERTFILE | grep SHA256
["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
lubopenssl
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.