Uygulamalarda ve web sitelerinde otomatik oturum açmayı etkinleştir

Şifreler için Smart Lock'u kullanan uygulamanız, web sitenizle bir kullanıcı veritabanını paylaşıyorsa veya uygulamanız ile web siteniz, Google ile Oturum Açma gibi birleşik oturum açma sağlayıcıları kullanıyorsa, kullanıcıların kimlik bilgilerini bir kez kaydedip hem uygulamada hem de web sitesinde otomatik olarak oturum açabilmeleri için uygulamayı web sitesiyle ilişkilendirebilirsiniz.

Bir uygulamayı bir web sitesiyle ilişkilendirmek için web sitenizde bir Dijital Öğe Bağlantıları JSON dosyası barındırıp uygulamanızın manifest dosyasına Digital Asset Link dosyasının bir bağlantısını ekleyerek ilişkilendirmeleri bildirin.

Web sitenizde bir Dijital Öğe Bağlantıları beyanı barındırarak, web sitenizin Android 8.0 ve sonraki sürümleri üzerinde çalışırken otomatik doldurma verilerini uygulamanızla paylaşabilmesini de sağlarsınız.

Ön koşullar

Web sitenizin oturum açma alanı HTTPS üzerinden erişilebilir olmalıdır.

Uygulamanızı web sitenizle ilişkilendirme

  1. Dijital Öğe Bağlantıları JSON dosyası oluşturun.

    Örneğin, https://signin.example.com web sitesinin ve paket adı com.example olan bir Android uygulamasının oturum açma kimlik bilgilerini paylaşabileceğini bildirmek için aşağıdaki içeriğe sahip assetlinks.json adlı bir dosya oluşturun:

    [{
      "relation": ["delegate_permission/common.get_login_creds"],
      "target": {
        "namespace": "web",
        "site": "https://signin.example.com"
      }
     },
     {
      "relation": ["delegate_permission/common.get_login_creds"],
      "target": {
        "namespace": "android_app",
        "package_name": "com.example",
        "sha256_cert_fingerprints": [
          "F2:52:4D:82:E7:1E:68:AF:8C:BC:EA:B0:A2:83:C8:FE:82:51:CF:63:09:6A:4C:64:AE:F4:43:27:20:40:D2:4B"
        ]
      }
     }]
    

    relation alanı, bildirilen ilişkiyi açıklayan bir veya daha fazla dizeden oluşan dizidir. Uygulamaların ve sitelerin oturum açma kimlik bilgilerini paylaştığını bildirmek için delegate_permission/common.get_login_creds dizesini belirtin.

    target alanı, bildirimin geçerli olduğu öğeyi belirten bir nesnedir. Aşağıdaki alanlar bir web sitesini tanımlar:

    namespace web
    site

    Web sitesinin URL'si https://domain[:optional_port] biçiminde (örneğin, https://www.example.com).

    domain tam nitelikli olmalıdır. HTTPS için bağlantı noktası 443 kullanılırken optional_port atlanmalıdır.

    site hedefi yalnızca kök alan olabilir: Bir uygulama ilişkilendirmesini belirli bir alt dizinle sınırlandıramazsınız. URL'nin sonuna sağa eğik çizgi gibi bir yol eklemeyin.

    Alt alan adlarının eşleştiği kabul edilmez. Diğer bir deyişle, domain özelliğini www.example.com olarak belirtirseniz www.counter.example.com alanı uygulamanızla ilişkilendirilmez.

    Aşağıdaki alanlar Android uygulamalarını tanımlar:

    namespace android_app
    package_name Uygulamanın manifest dosyasında belirtilen paket adı. Örneğin, com.example.android
    sha256_cert_fingerprints Uygulamanızın imzalama sertifikasının SHA256 parmak izleri. Parmak izini oluşturmak için aşağıdaki komutu kullanabilirsiniz:
    $ keytool -list -v -keystore my-release-key.keystore

    Ayrıntılar için Dijital Öğe Bağlantıları referansına bakın.

  2. Digital Asset Link JSON dosyasını, oturum açma alanında şu konumda barındırın:

    https://domain[:optional_port]/.well-known/assetlinks.json

    Örneğin, oturum açma alan adınız signin.example.com ise JSON dosyasını https://signin.example.com/.well-known/assetlinks.json adresinde barındırabilirsiniz.

    Digital Asset Link dosyasının MIME türü JSON olmalıdır. Sunucunun yanıtta bir Content-Type: application/json başlığı gönderdiğinden emin olun.

  3. Barındırıcınızın, Google'ın Dijital Öğe Bağlantısı dosyanızı almasına izin verdiğinden emin olun. robots.txt dosyanız varsa Googlebot aracısının /.well-known/assetlinks.json öğesini almasına izin vermesi gerekir. Çoğu site, diğer hizmetlerin bu dosyalardaki meta verilere erişebilmesi için /.well-known/ yolundaki tüm otomatik aracıların dosyaları almasına izin verebilir:

    User-agent: *
    Allow: /.well-known/
    

  4. Android uygulamasında ilişkilendirmeyi bildirin.

    1. <application> altındaki manifest dosyasına aşağıdaki satırı ekleyin:

        <meta-data android:name="asset_statements" android:resource="@string/asset_statements" />
      
    2. strings.xml dosyasına bir asset_statements dize kaynağı ekleyin. asset_statements dizesi, yüklenecek assetlinks.json dosyalarını belirten bir JSON nesnesidir. Dizede kullandığınız tüm kesme işaretlerini ve tırnak işaretlerini atlatmanız gerekir. Örneğin:

        <string name="asset_statements" translatable="false">
        [{
          \"include\": \"https://signin.example.com/.well-known/assetlinks.json\"
        }]
        </string>
      
        > GET /.well-known/assetlinks.json HTTP/1.1
        > User-Agent: curl/7.35.0
        > Host: signin.example.com
      
        < HTTP/1.1 200 OK
        < Content-Type: application/json
      
  5. Uygulamayı Google Play Store'da yayınlayın. İlişkilendirmelerin alınabilmesi için herkese açık kanalda yayınlanması gerekir.

  6. (İsteğe bağlı) Süreçleri tamamladığınızı belirtmek üzere Şifreler için Smart Lock ilişkilendirme formunu doldurup gönderin. Google, form aracılığıyla gönderilen ilişkilendirmelerin gerçekten işe yarayıp yaramadığını düzenli olarak kontrol eder ve sorun olması halinde sizinle iletişime geçebilir.

Doğrulama tamamlandıktan sonra uygulamanızın kullanıcıları, kimlik bilgilerini uygulamanıza veya web sitenize kaydedebilir ve her iki hesapta da otomatik olarak oturum açabilir.

Örnek: Birden fazla uygulamayı bir web sitesiyle ilişkilendirme

Bir öğeyi birden fazla web sitesiyle ilişkilendirebilmek için her uygulamayı Dijital Öğeler Bağlantısı dosyasında belirtin. Örneğin, com.example ve com.example.pro uygulamalarını https://signin.example.com/ sitesindeki siteyle ilişkilendirmek için her iki uygulamayı da https://signin.example.com/.well-known/assetlinks.json adresinde barındırılan JSON dosyasında belirtin:

[{
  "relation": ["delegate_permission/common.get_login_creds"],
  "target": {
    "namespace": "web",
    "site": "https://signin.example.com"
  }
},{
  "relation": ["delegate_permission/common.get_login_creds"],
  "target": {
    "namespace": "android_app",
    "package_name": "com.example",
    "sha256_cert_fingerprints": [
"F2:52:4D:82:E7:1E:68:AF:8C:BC:EA:B0:A2:83:C8:FE:82:51:CF:63:09:6A:4C:64:AE:F4:43:27:20:40:D2:4B"
    ]
  }
},{
  "relation": ["delegate_permission/common.get_login_creds"],
  "target": {
    "namespace": "android_app",
    "package_name": "com.example.pro",
    "sha256_cert_fingerprints": [
"F2:52:4D:82:E7:1E:68:AF:8C:BC:EA:B0:A2:83:C8:FE:82:51:CF:63:09:6A:4C:64:AE:F4:43:27:20:40:D2:4B"
    ]
  }
}]

Ardından, her iki uygulamada ilişkilendirmeyi beyan edin:

  1. <application> altındaki manifest dosyasına aşağıdaki satırı ekleyin:

    <meta-data android:name="asset_statements" android:resource="@string/asset_statements" />
    
  2. strings.xml dosyasına aşağıdaki dize kaynağını ekleyin:

    <string name="asset_statements" translatable="false">
    [{
      \"include\": \"https://signin.example.com/.well-known/assetlinks.json\"
    }]
    </string>
    

Örnek: Uygulamaları birden fazla web sitesiyle ilişkilendirme

Digital Asset Link dosyasında her bir web sitesini belirterek ve her web sitesinde dosyayı barındırarak uygulamaları birden fazla web sitesiyle ilişkilendirebilirsiniz. Örneğin, com.example ve com.example.pro uygulamalarını https://signin.example.com/ ve https://m.example.com/ sitelerindeki siteyle ilişkilendirmek için hem uygulamaları hem de https://signin.example.com/.well-known/assetlinks.json alanını barındıran JSON dosyasında her iki siteyi de belirtin:

[{
  "relation": ["delegate_permission/common.get_login_creds"],
  "target": {
    "namespace": "web",
    "site": "https://signin.example.com"
  }
},{
  "relation": ["delegate_permission/common.get_login_creds"],
  "target": {
    "namespace": "web",
    "site": "https://m.example.com"
  },
},{
  "relation": ["delegate_permission/common.get_login_creds"],
  "target": {
    "namespace": "android_app",
    "package_name": "com.example",
    "sha256_cert_fingerprints": [
"F2:52:4D:82:E7:1E:68:AF:8C:BC:EA:B0:A2:83:C8:FE:82:51:CF:63:09:6A:4C:64:AE:F4:43:27:20:40:D2:4B"
    ]
  }
},{
  "relation": ["delegate_permission/common.get_login_creds"],
  "target": {
    "namespace": "android_app",
    "package_name": "com.example.pro",
    "sha256_cert_fingerprints": [
"F2:52:4D:82:E7:1E:68:AF:8C:BC:EA:B0:A2:83:C8:FE:82:51:CF:63:09:6A:4C:64:AE:F4:43:27:20:40:D2:4B"
    ]
  }
}]

Ardından, https://m.example.com/.well-known/assetlinks.json tarafından barındırılan JSON dosyasına birincil Dijital Öğe Bağlantıları dosyasını ekleyin:

[{
  "include": "https://signin.example.com/.well-known/assetlinks.json"
}]

Son olarak, her iki uygulamada ilişkilendirmeyi beyan edin:

  1. <application> altındaki manifest dosyasına aşağıdaki satırı ekleyin:

    <meta-data android:name="asset_statements" android:resource="@string/asset_statements" />
    
  2. strings.xml dosyasına aşağıdaki dize kaynağını ekleyin:

    <string name="asset_statements" translatable="false">
    [{
      \"include\": \"https://signin.example.com/.well-known/assetlinks.json\"
    }]
    </string>