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 ve doğrulanabilir beyanlar yapmasına olanak tanır. Ö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 beyan edebilir.
Digital Asset Links'in olası kullanım alanlarından bazıları şunlardır:
- A web sitesi, uygulamanın yüklü olması durumunda sitesine yönlendiren bağlantıların mobil cihazlarda belirlenmiş bir uygulamada açılması gerektiğini belirtir.
- A web sitesi, Chrome kullanıcı kimlik bilgilerini B web sitesiyle paylaşabileceğini beyan eder. Böylece kullanıcı, A web sitesinde oturum açtıysa B web sitesinde oturum açmak zorunda kalmaz.
- A uygulaması, konum gibi cihaz ayarlarını B web sitesiyle paylaşabileceğini beyan ediyor.
Anahtar terimler
- Asıl: Asıl, açıklamayı yapan uygulama veya web sitesidir. Dijital Varlık Bağlantıları'nda asıl taraf her zaman ifade listesini barındıran uygulama veya web sitesidir.
- İfade listesi: İfadeler, bir veya daha fazla ifade içeren bir ifade listesinde yer alır. Bir ifade listesi, ana hesap tarafından kontrol edilen ve sahteciliğin ya da üzerinde değişiklik yapılmasının zor olduğu bir konumda, açık metin biçiminde ve herkese açık olarak erişilebilir. Bağımsız bir dosya veya daha büyük bir öğenin bir bölümü olabilir. Örneğin, bir web sitesinde bu dosya tamamen yer alır. Android uygulamasında ise uygulama manifestosundaki bir bölümdür. Bildirimler, tescilli olmayan yöntemler kullanılarak herkes tarafından görüntülenebilir ve doğrulanabilir. Daha fazla bilgi için ifade listesi belgelerini inceleyin.
- İfade: İfade, ilişki (ifadenin ne yapılması gerektiğini söylediği, örneğin: Paylaşım kimlik bilgilerini etkinleştir) ve hedef (ilişkinin geçerli olduğu web sitesi veya uygulama) içeren sıkı bir şekilde yapılandırılmış JSON yapısıdır. Bu nedenle, her ifade bir cümleye benzer. Burada özne, hedef hakkında ilişki kurar.
- Bildirim tüketicisi: Bir bildirim tüketicisi, bir asıl kişiden bildirim listesi ister, belirli bir asıl kişiye karşı bir bildirimin varlığını kontrol eder ve varsa belirtilen işlemi gerçekleştirebilir. Daha fazla bilgi için hesap ekstresi tüketimiyle ilgili dokümanları inceleyin.
Kısa kullanım örneği
www.example.com web sitesinin, bu sitedeki URL'lere verilen bağlantıların tarayıcı yerine belirlenmiş bir uygulamada açılması gerektiğini belirtmek için Dijital Varlık Bağlantıları'nı nasıl kullanabileceğine dair çok basitleştirilmiş bir örneği aşağıda bulabilirsiniz:
- www.example.com web sitesi, https://www.example.com/.well-known/assetlinks.json adresinde bir bildirim listesi yayınlıyor. Bu, bir sitedeki açıklama listesinin resmi adı ve konumu; başka bir konumdaki veya başka bir adla oluşturulan açıklama listeleri bu site için geçerli değildir. Örneğimizde, ifade listesi tek bir ifadeden oluşuyor ve Android uygulamasına sitesindeki bağlantıları açma izni veriliyor:
Bir ifade listesi, [ ] işaretleri içindeki bir ifade dizisini destekler ancak örnek dosyamızda yalnızca bir ifade bulunmaktadır.[{ "relation": ["delegate_permission/common.handle_all_urls"], "target" : { "namespace": "android_app", "package_name": "com.example.app", "sha256_cert_fingerprints": ["hash_of_app_certificate"] } }]
sha256_cert_fingerprints
, uygulamanızın imzalama sertifikasının SHA256 parmak izleridir. Daha fazla bilgi için Android App Links belgelerine göz atı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 var. Bu örnekte, https://www.example.com. Intent filtresi, Android M'de yeni olan ve Android'in uygulama yüklendiğinde intent filtresinde açıklanan web sitesindeki ifadeyi doğrulamasını belirten özel bir
android:autoVerify
özelliği içeriyor. - Kullanıcı uygulamayı yükler. Android,
autoVerify
özelliğini içeren amaç filtresini görür ve belirtilen sitede ifade listesinin olup olmadığını kontrol eder. Varsa Android, bu dosyanın uygulamaya bağlantı işleme izni veren bir ifade içerip içermediğini kontrol eder ve uygulamayı sertifika karmasıyla ifadeye göre doğrular. Her şey yolundaysa Android, https://www.example.com amaçlarını example.com uygulamasına yönlendirir. - Kullanıcı, cihazında https://www.example.com/puppies adresine giden bir bağlantıyı tıklar. Bu bağlantı, tarayıcıda, Google Arama Cihazı önerisinde veya başka bir yerde olabilir. Android, niyeti example.com uygulamasına yönlendirir.
- example.com uygulaması, amaç isteğini alır ve bunu işlemeyi seçerek uygulamada yavru köpekler sayfasını açar. Uygulama, bağlantıyı işlemeyi reddetmişse veya uygulama cihazda yoksa bağlantı, bu amaç kalıbıyla eşleşen bir sonraki varsayılan amaç işleyiciye (genellikle tarayıcı) gönderilir.
Dikkat edilecek önemli noktalar ve sınırlamalar:
- Protokol, ifadeyi veren asıl kişiyi doğrulamıyor ancak ifade, asıl kişiyle güçlü bir şekilde ilişkili olan ve asıl kişinin kontrolü altında bulunan belirli bir konumda yer alıyor.
- Protokol, ifade hedefini doğrulamasa da arayanın hedefi 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, herhangi bir ifade işlemini yerel olarak gerçekleştirmez. Bunun yerine, ifadeleri kullanıma sunma olanağı sağlar. Tüketen bir uygulama, ifadeleri doğrulayıp bunlara göre hareket edip etmeyeceğine ve nasıl hareket edeceğine karar vermelidir. Android M, bu adımları sizin için yerel olarak gerçekleştirir; örneğin, bir web sitesi bağlantı işleme işini belirli bir uygulamaya devrederse Android, ifadeyi kontrol edip doğrular, hedef uygulamayı doğrular ve ardından uygulamaya verilen bağlantıyı işleme seçeneği sunar.
- Protokol, iki üçüncü taraf hakkında açıklama yapılmasına izin vermez. Yani A web sitesi B web sitesi hakkında açıklama yapabilir ancak A web sitesi, B web sitesinin C web sitesiyle ilişkisi hakkında açıklama yapamaz. Ancak B web sitesi A web sitesine güveniyorsa A web sitesinde C web sitesine izin veren bir ifade olup olmadığını kontrol edebilir ve bu ifadeyi uygulamaya karar verebilir.