Genel bakış
Digital Asset Links protokolü ve API'si, bir uygulamanın veya web sitesinin diğer uygulamalar ya da web siteleri hakkında herkese açık, doğrulanabilir ifadeler oluşturabilmesini sağlar. Örneğin, bir web sitesi belirli bir Android uygulamasıyla ilişkili olduğunu veya kullanıcı kimlik bilgilerini başka bir web sitesiyle paylaşmak istediğini belirtebilir.
Dijital Öğe Bağlantılarının olası kullanımlarından bazıları şunlardır:
- Web Sitesi A, uygulamanın yüklü olduğu durumlarda, mobil cihazlardaki belirli bir uygulamada sitesine giden bağlantıların açılacağını beyan eder.
- A Web Sitesi, A web sitesine giriş yapmışsa kullanıcının B web sitesine giriş yapmasının gerekmemesi için Chrome kullanıcı kimlik bilgilerini B web sitesiyle paylaşabileceğini beyan eder.
- A uygulaması, konum gibi cihaz ayarlarını B web sitesiyle paylaşabileceğini belirtiyor.
Anahtar terimler
- Ana hesap: Ana hesap, beyanı yapan uygulama veya web sitesidir. Dijital Öğe Bağlantıları'nda ana hesap her zaman ifade listesini barındıran uygulama veya web sitesidir.
- Ekstre listesi: İfadeler, bir veya daha fazla ifade içeren bir ifade listesinde yer alır. Hesap özeti, ana sayfa tarafından kontrol edilen ve adres sahteciliği yapılması veya üzerinde değişiklik yapılması zor olan bir konumda bulunan net metindir ve herkesin erişimine açıktır. Bağımsız bir dosya veya daha büyük başka bir öğenin bir bölümü olabilir. Örneğin, web sitelerinde dosyanın tamamı; Android uygulamalarında ise uygulama manifestindeki bir bölümdür. Hesap özetleri, herkes tarafından sunulmayan yöntemler kullanılarak herkes tarafından görüntülenebilir ve doğrulanabilir. Daha fazla bilgi için hesap özeti listesine bakın.
- İfade: Hesap özeti, bir ilişkiden (örneğin, kimlik bilgilerini paylaşmayı etkinleştirme) ve bir hedeften (ilişkinin geçerli olduğu web sitesi veya uygulama) oluşan ve iyi yapılandırılmış bir JSON yapısıdır. Bu nedenle her ifade, örneğin hedef hakkında ilişkisi olan bir cümle gibidir.
- Ekstre tüketicisi: Tüketici, bir ana para biriminden beyan listesi ister, belirli bir ana hesaba karşı ifadenin mevcut olup olmadığını kontrol eder ve mevcutsa belirtilen işlemi gerçekleştirebilir. Daha fazla bilgi için ilgili belgeleri içeren beyanı inceleyin.
Hızlı kullanım örneği
www.example.com web sitesinin dijital öğe bağlantılarını nasıl kullanabileceğine dair çok basitleştirilmiş bir örneği burada bulabilirsiniz.
- www.example.com web sitesi, https://www.example.com/.well-known/assetlinks.json adresinde bir ifade listesi yayınlar. Bu, bir sitedeki ifade listesinin resmi adı ve konumudur; başka herhangi bir konumdaki veya başka bir addaki ifade listeleri bu site için geçerli değildir. Örneğimizdeki ifade listesi, bir beyanı ifade ederek Android uygulamasına sitesinde bağlantıları açma izni veriyor:
[{ "relation": ["delegate_permission/common.handle_all_urls"], "target" : { "namespace": "android_app", "package_name": "com.example.app", "sha256_cert_fingerprints": ["hash_of_app_certificate"] } }]Hesap listesi, [ ] işaretleri içindeki bir dizi ifadeyi destekler ancak örnek dosyamızda yalnızca bir ifade bulunur.
sha256_cert_fingerprints, uygulamanızın imzalama sertifikasının SHA256 parmak izidir. Daha fazla bilgi için Android Uygulama Bağlantıları belgelerine bakın.
- Yukarıdaki ifadede listelenen Android uygulamasında, işlemek istediği URL'lerin şemasını, ana makinesini ve yol kalıbını belirten bir intent filtresi vardır: Bu örnekte, https://www.example.com. Niyet filtresi, Android M'de yeni olan özel bir
android:autoVerifyözelliğini içerir. Bu özellik, Android'in, uygulama yüklendiğinde amaç filtresinde açıklanan web sitesinde ifadeyi doğrulaması gerektiğini belirtir.
- Bir kullanıcı uygulamayı yükler. Android,
autoVerifyözelliğini kullanarak amaç filtresini görür ve belirtilen sitede ifade listesinin bulunup bulunmadığını kontrol eder. Varsa Android, bu uygulamanın uygulamaya bağlantı işleme izni veren bir beyan içerip içermediğini kontrol eder ve uygulamayı sertifika karmasıyla ifadeye göre doğrular. Her şey kontrol edilirse Android, tüm https://www.example.com niyetlerini example.com uygulamasına yönlendirir.
- Kullanıcı, cihazında https://www.example.com/yavrukopekler bağlantısını tıklar. Bu bağlantı; tarayıcıda, Google Arama Cihazı önerisinde veya başka herhangi bir yerde olabilir. Android, example.com uygulamasına niyeti bildirir.
- example.com uygulaması amacı alır ve uygulamadaki yavru köpekler sayfasını açarak bunu işlemeyi seçer. Herhangi bir nedenle uygulama, bağlantıyı işlemeyi reddetmişse veya uygulama cihazda bulunmadıysa bağlantı, bu amaç kalıbıyla (genellikle tarayıcı) eşleşen bir sonraki varsayılan amaca yönelik işleyiciye gönderilir.
Göz önünde bulundurulması gereken önemli noktalar ve sınırlamalar:
- Protokol, ifadeyi oluşturan ana hesabın kimliğini doğrulamasa da ifade, ana hesapla yakından ilişkili belirli bir konumda ve ana hesabın kontrolü altındadır.
- Protokol, ifade hedefinin kimliğini doğrulamaz, ancak arayanın hedefin kimliğini doğrulaması için bir yol sağlar (örneğin, bir ifade, mobil uygulama hedeflerini sertifika karması ve paket adına göre tanımlar).
- Protokol, yerel olarak herhangi bir ifade işlemi gerçekleştirmez. Bunun yerine, ifadeleri tüketen bir uygulamanın doğrulayıp işlem yapması gerekip gerekmediğine karar vermesi gereken ifadeleri açığa çıkarabilirsiniz. Android M sizin için yerel olarak bu adımları uygular. Örneğin, bir web sitesi belirli bir uygulamaya bağlantı işleme yetkisi verirse Android, ifadeyi kontrol edip doğrular, hedef uygulamayı doğrular, ardından da uygulamaya söz konusu bağlantıyı işleme seçeneği sunar.
- Protokol, iki üçüncü taraf hakkında beyanda bulunulmasını sağlamaz: Yani A web sitesi B web sitesiyle ilgili bir açıklama yapabilir ancak A web sitesi B web sitesinin C web sitesiyle ilişkisi hakkında bir açıklama yapamaz. Bununla birlikte, B web sitesi A web sitesine güveniyorsa C web sitesine C izni veren bir ifade olup olmadığını kontrol edebilir ve bunu uygulamaya karar verebilir.