1. Genel Bakış
Kullanıcılarınız hizmetinize hem web sitelerinden hem de Android uygulamalarından erişiyor mu? Kullanıcıları her platformda ayrı ayrı oturum açmaya zorlamak gereksiz sorunlara yol açar ve kullanıcı kaybına neden olabilir.
Digital Asset Links (DAL), web siteleriniz ve uygulamalarınız arasındaki ilişkilendirmeleri bildirmenize olanak tanıyarak bu sorunu çözer. Bu sayede Google Şifre Yöneticisi gibi şifre yöneticileri, kayıtlı şifreleri ve geçiş anahtarlarını birbirleriyle paylaşabilir.
Özellikle, Digital Asset Links dosyanızı yapılandırmak için paylaşmak istediğiniz öğeye bağlı olarak farklı ilişkiler gerekir:
- Şifreler için:
delegate_permission/common.get_login_credseklemek, şifre yöneticilerinin kayıtlı şifreleri web siteniz ve uygulamanız arasında paylaşmasına olanak tanır. - Geçiş anahtarları için: Geçiş anahtarları belirli bir web alanına sıkı bir şekilde bağlı olduğundan Android, alan sahipliğinin kanıtlanmasını gerektirir. Bu nedenle,
delegate_permission/common.handle_all_urlseklemeniz gerekir. Bunu Android App Links (derin bağlantı) için kullanılan izin olarak tanıyor olabilirsiniz. Ancak bu izin, bir platformda oluşturulan geçiş anahtarlarının diğer platformda kullanılması için de kesinlikle gereklidir.
Sonuç mu? Kullanıcılar, yalnızca bir platform için kaydedilen şifreleri veya geçiş anahtarlarını kullanarak bağlı platformlarınızda sorunsuz bir şekilde oturum açabilir.

Otomatik kimlik bilgisi paylaşımını uygulamak, kullanıcı deneyimini önemli ölçüde iyileştirebilir. Örneğin, eBay, kimlik bilgisi paylaşımı için DAL'ı uyguladıktan sonra oturum açma başarısında% 10'luk bir artış gördü.
Bu codelab'de, web siteniz ile Android uygulamanız arasında kimlik bilgisi paylaşımını etkinleştirmek için Digital Asset Links'i nasıl kullanacağınızı öğreneceksiniz.
Ön koşullar
- JSON ve Android geliştirme hakkında temel düzeyde bilgi sahibi olmanız gerekir.
- Android Kimlik Bilgisi Yöneticisi'nin ön koşulları hakkında bilgi sahibi olmanız gerekir.
Neler öğreneceksiniz?
- Google Play Console'u kullanarak kimlik bilgisi paylaşımını ayarlama (önerilir).
assetlinks.jsondosyasını manuel olarak oluşturma- Android uygulamasını manuel ilişkilendirme için yapılandırma
- Bir Android uygulamasını web sitesi alanıyla ilişkilendirerek geçiş anahtarlarını etkinleştirme
- Kurulumunuzu oluşturmak ve doğrulamak için araçları kullanma
İhtiyacınız olanlar
- Web sitesi:
https://{your-domain}/.well-known/assetlinks.jsonkonumunda bir JSON dosyası barındırabilme. - Android uygulaması:
- Play Console yöntemi için: Google Play'de yayınlanmış bir uygulama.
- Manuel yöntem için: Değiştirebileceğiniz ve oluşturabileceğiniz bir Android projesi. Google Şifre Yöneticisi ile kimlik bilgisi paylaşımının çalışması için uygulamanın Google Play'de yayınlanması gerektiğini unutmayın.
İşleyiş şekli
Kimlik bilgisi paylaşımının çalışması için iki yönlü güven oluşturmanız gerekir:
- Web -> Uygulama: Web siteniz, Android uygulamanıza güvendiğini belirten bir
assetlinks.jsondosyası barındırmalıdır. - Uygulama -> Web: Android uygulamanız, web sitenize güvenecek şekilde yapılandırılmalıdır.
Bunu yapmanın iki yolunu ele alacağız: Google Play Console'u kullanarak otomatik yöntem (önerilen) ve doğrudan Digital Asset Links'i kullanarak manuel yöntem.
2. Google Play Console'u kullanarak ayarlama (Önerilir)
Web siteniz ve Android uygulamanız arasında kimlik bilgisi paylaşımını etkinleştirmenin en kolay yolu Google Play Console'dur. Bu yöntem, uygulamanızın manifestini değiştirmeniz veya uygulamanızın yeni bir sürümünü yayınlamanız gerekmeden uygulamanızı web sitenizle ilişkilendirmenize olanak tanır. Google Play, uygulama tarafındaki ilişkilendirmeyi sizin için yönetir.
Ön koşullar
- Derin bağlantılar sayfasına erişmek için Play Console izinleri.
- Alanınızda
/.well-known/assetlinks.jsondosyası yayınlayabilme
Derin bağlantılar hakkında daha fazla bilgi için Android App Links başlıklı makaleyi inceleyin.
Adımlar
- Play Console'da Büyüme > Derin bağlantılar'a gidin.
- Alanınız listede yoksa Uygulama yapılandırması bölümünde Alan ekle'yi tıklayın.
- Alanınızı bulun ve Kimlik bilgisi paylaşımı sütununu bulun. Aç'ı tıklayın (veya yeni alanlar için Kimlik bilgisi paylaşımını etkinleştir'in etkinleştirildiğinden emin olun).
- Play Console tarafından oluşturulan JSON snippet'ini kopyalayın.
- Bu JSON içeriğini
https://{your-domain}/.well-known/assetlinks.jsonadresinde yayınlayın. (Bu dosya sizde varsa yeni beyanı dosyaya ekleyin.) - Play Console'a geri dönüp Web sitesi ilişkilendirmesi oluştur'u veya Kimlik bilgisi paylaşımını etkinleştir'i tıklayın.
Play Console artık barındırma kurulumunuzu doğrulayacak.

Kimlik bilgisi paylaşımının çalışması için web sitenizin barındırıcısının aşağıdaki koşulları karşılaması gerekir:
- URL'ye HTTPS üzerinden erişilebiliyor.
- Sunucu,
Content-Type: application/jsonile yanıt veriyor. - URL'ye yönlendirme olmadan erişilebiliyor.
Doğrulama işlemi tamamlandıktan sonra kimlik bilgisi paylaşımı etkinleştirilir. Yapılandırma değişikliklerinin yayılması 1-2 hafta sürebilir.
3. Digital Asset Links kullanarak manuel olarak ayarlama
Daha fazla kontrol ister misiniz? Veya Play Console'a erişiminiz yok mu? Web siteniz ile Android uygulamanız arasında kimlik bilgisi paylaşımını manuel olarak yapılandırabilirsiniz. Bu işlem iki ana görevden oluşur: JSON dosyasını sitenizde barındırma ve Android uygulama manifestinizi güncelleme.
1. Uygulamanızın dijital parmak izini alma
Otomatik kimlik bilgisi paylaşımını ayarlamadan önce her platform için aşağıdakilere sahip olduğunuzdan emin olun:
Her Android uygulaması için:
- Uygulamanın
build.gradledosyasında belirtilen Android uygulama kimliği. - İmzalama sertifikasının SHA256 parmak izleri.
- (Önerilir) Kullanıcı oturum açma işlemi Credential Manager API'si ile uygulanmalıdır.
2. İlişkilendirme dosyasını oluşturma
Web siteniz ile uygulamanız arasındaki ilişkileri bildiren bir assetlinks.json dosyası oluşturmanız gerekir. Şifre paylaşma izni vermek için delegate_permission/common.get_login_creds, derin bağlantıyı etkinleştirmek ve geçiş anahtarlarını paylaşmak için delegate_permission/common.handle_all_urls kullanın.
Aşağıdaki içeriğe sahip assetlinks.json adlı bir dosya oluşturun. Örnek değerleri kendi site URL'niz, paket adınız ve parmak izinizle değiştirin:
[{
"relation": [
"delegate_permission/common.handle_all_urls",
"delegate_permission/common.get_login_creds"
],
"target": {
"namespace": "android_app",
"package_name": "com.example.app",
"sha256_cert_fingerprints":
["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"]
}
}]
3. Dosyayı barındırma
assetlinks.json dosyanızı alanınızın kökündeki .well-known dizinine yükleyin.
Konum: https://{your-domain}/.well-known/assetlinks.json
Kimlik bilgisi paylaşımının çalışması için web sitenizin barındırıcısının aşağıdaki koşulları karşılaması gerekir:
- URL'ye HTTPS üzerinden erişilebiliyor.
- Sunucu,
Content-Type: application/jsonile yanıt veriyor. - URL'ye yönlendirme olmadan erişilebiliyor.

4. Android uygulamanızı yapılandırma
Şimdi Android uygulamanıza web sitesine güvenmesini söyleyin. Manifest dosyasına, assetlinks.json URL'nizi içeren bir kaynak dosyasına yönlendiren bir referans eklersiniz.
1. Dize kaynağı ekleme
res/values/strings.xml bölümünde yeni bir dize ekleyin asset_statements. Kaçış karakteriyle belirtilen tırnak işaretlerine dikkat edin.
<resources>
<string name="asset_statements" translatable="false">
[{
\"include\": \"https://www.example.com/.well-known/assetlinks.json\"
}]
</string>
</resources>
2. Manifest dosyasına meta veri ekleme
AndroidManifest.xml içinde, bu dize kaynağına referans veren <application> öğesine bir <meta-data> etiketi ekleyin:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.app">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme">
<meta-data
android:name="asset_statements"
android:resource="@string/asset_statements" />
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Bu adımları tamamlayıp Android uygulamanızın yeni bir sürümünü yayınladıktan sonra, Digital Asset Links'i destekleyen şifre yöneticileri (ör. Google Şifre Yöneticisi), kullanıcı com.example.app adresinde oturum açmaya çalıştığında www.example.com için kaydedilen kimlik bilgilerini önerebilir ve bunun tersi de geçerlidir.
4. Kurulumu doğrulama
Gönderim yapmadan önce Dijital Varlık Bağlantıları yapılandırmanızı doğrulamanız çok önemlidir. Hatalı JSON veya ulaşılamayan dosyalar sessizce başarısız olur.
Resmi Ekstre Oluşturucu ve Doğrulayıcı aracını kullanın.

- Site alanınızı ve uygulama paketinizin adını girin.
- Test ekstresi'ni tıklayın.
- Bu araç,
assetlinks.jsondosyasının doğru şekilde barındırılıp barındırılmadığını ve geçerli ilişkilendirmeyi içerip içermediğini kontrol eder.
5. Kimlik bilgilerini birden fazla web sitesi arasında paylaşma

Aynı giriş sistemini paylaşan birden fazla web siteniz varsa (örneğin, example.com ve example.co.uk) kimlik bilgilerinin aralarında paylaşılabilmesi için bunları bağlı kuruluş olarak beyan edebilirsiniz.
Şifreleri birden fazla web sitesi arasında paylaşma
Web siteleri arasında şifre paylaşmak için delegate_permission/common.get_login_creds kullanarak web-web ilişkisi tanımlayabilirsiniz.
Örneğin, example.com'nın example.co.uk ile şifre paylaşabilmesi için https://example.com/.well-known/assetlinks.json üzerinde barındırılan assetlinks.json dosyası, example.co.uk'ı hedefleyen bir ifade içermelidir:
[{
"relation": ["delegate_permission/common.get_login_creds"],
"target": {
"namespace": "web",
"site": "https://example.co.uk"
}
}]
Benzer şekilde, https://example.co.uk/.well-known/assetlinks.json, example.com'ı hedefleyen bir ifade içermelidir.
Geçiş anahtarlarını birden fazla web sitesi arasında paylaşma
Birden fazla web sitesinin aynı geçiş anahtarlarını paylaşabilmesi için aynı güvenen taraf kimliğini (RP kimliği) kullanmaları gerekir. WebAuthn ve geçiş anahtarlarında RP kimliği, alan adına göre kimliğin kapsamını belirtir. Oluşturduğunuz geçiş anahtarları belirli bir RP kimliğine bağlanır ve yalnızca bu kimliğin kapsamındaki alanlarda kullanılabilir. RP kimliğinizi doğru şekilde tanımlamak, alt alanlar, siteler arası kaynaklar ve birinci taraf mobil uygulamalarında sorunsuz bir geçiş anahtarı deneyimi sağlar. RP kimliğini ayarlama hakkında daha fazla bilgiyi Güvenen taraf kimliğini (RP kimliği) anlama başlıklı makalede bulabilirsiniz. İlgili Kaynak İstekleri ile bir web sitesi, RP kimliğini kullanmasına izin verilen diğer kaynakları belirleyebilir. Böylece kullanıcılar, işlettiğiniz birden fazla sitede aynı geçiş anahtarını yeniden kullanabilir. Bunun, Digital Asset Links'te delegate_permission/common.handle_all_urls kullanılan bir web sitesi ile Android uygulaması arasında geçiş anahtarı paylaşımından farklı olduğunu unutmayın.
Örneğin, example.com ve example.co.uk'nin geçiş anahtarlarını paylaşmasını istiyorsanız example.com'nın standart RP kimliği olacağına karar verebilirsiniz. Bu işlemin çalışması için example.co.uk, WebAuthn API çağrılarında rpId: 'example.com' kullanmalı ve example.com, example.co.uk'yı izin verilenler listesine eklemek için https://example.com/.well-known/webauthn adresinde bir dosya barındırmalıdır:
{
"origins": [
"https://example.co.uk"
]
}
Bu izin, example.co.uk uygulamasının example.com ile ilişkili geçiş anahtarları oluşturup kullanmasına olanak tanır.
6. Sonuç
Tebrikler! Otomatik kimlik bilgisi paylaşımını başarıyla ayarladınız.
Kullanıcılarınız artık web sitenizde şifre ve geçiş anahtarı kaydedebilir ve bunları tek bir dokunuşla Android uygulamanızda oturum açmak için kullanabilir (veya tam tersi). Bu basit değişiklik, oturum açma dönüşüm oranlarınızı ve kullanıcı memnuniyetini önemli ölçüde artırabilir.
Sırada ne var?
- Digital Asset Links Resmi Belgeleri'ne göz atın.
- Kimlik bilgisi paylaşımıyla ilgili temel bilgiler hakkında daha fazla bilgi edinin.
- Etkiyi görmek için eBay Başarı Öyküsü'nü okuyun.