Prasyarat

Prasyarat utama untuk menerapkan pengalaman login yang lancar dengan Credential Manager di seluruh aplikasi dan situs Anda adalah membuat pengaitan yang aman di antara keduanya. Hal ini dilakukan menggunakan file Digital Asset Links, yang memungkinkan penyedia kredensial membagikan kredensial secara aman antara aplikasi dan situs Anda. Misalnya, situs dapat menyatakan bahwa situs tersebut berbagi kredensial dengan aplikasi Android atau situs lain menggunakan file Digital Asset Links. Dengan menggunakan Digital Asset Links, pengguna Anda dapat menikmati pengalaman login yang lancar dan menggunakan kredensial tersimpan yang sama di seluruh aplikasi dan situs terkait.

Untuk mengizinkan penyedia kredensial menggunakan kunci sandi dan sandi secara umum di aplikasi dan situs Anda, buat file Digital Asset Links untuk aplikasi Anda dengan langkah-langkah berikut:

Buat file bernama assetlinks.json dengan struktur berikut:

[
    {
    "relation" : [
        "<array_of_permissions_granted_to_app>"
    ],
    "target" : {
        "namespace" : "android_app",
        "package_name" : "<android_application_package_name>",
        "sha256_cert_fingerprints" : [
            "<sha256_certificate_fingerprint_of_signing_key>"
]
    }
}
]
  • relation: Array dari satu atau beberapa string yang menjelaskan hubungan yang dideklarasikan. Untuk mendeklarasikan bahwa aplikasi dan situs berbagi kredensial login, tentukan hubungan berikut dalam array:

    • delegate_permission/common.handle_all_urls: Hubungan ini memungkinkan Link Aplikasi Android, yang memungkinkan aplikasi Android Anda menangani semua URL web untuk domain tertentu.

    • delegate_permission/common.get_login_creds: Hubungan ini memungkinkan berbagi kredensial antara situs dan aplikasi Android Anda.

  • target: Objek yang menentukan aset tempat deklarasi berlaku.

    • target.namespace: Tetapkan ini ke android_app.
    • target.package_name: Tetapkan ini ke nama paket yang dideklarasikan dalam manifes aplikasi, misalnya, com.example.android.
  • sha256_cert_fingerprints: Sidik jari SHA256 dari sertifikat penandatanganan aplikasi Anda. Untuk mengambil sidik jari SHA256 aplikasi Anda, lihat Mendeklarasikan pengaitan situs.

Contoh target untuk aplikasi adalah sebagai berikut:

[
  {
    "relation" : [
      "delegate_permission/common.handle_all_urls",
      "delegate_permission/common.get_login_creds"
    ],
    "target" : {
      "namespace" : "android_app",
      "package_name" : "com.example.android",
      "sha256_cert_fingerprints" : [
        SHA_HEX_VALUE
      ]
    }
  }
]

Menghosting file Digital Asset Links di lokasi berikut pada domain login untuk situs Anda:

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

Misalnya, jika domain login Anda adalah signin.example.com, hosting file di: https://signin.example.com/.well-known/assetlinks.json.

Jenis MIME untuk file Digital Asset Links harus JSON. Pastikan server mengirimkan header Content-Type: application/json dalam respons, dengan status HTTP ditetapkan ke 200.

3. Mengizinkan pengambilan file Digital Asset Links

Perbarui host Anda untuk mengizinkan Google mengambil file Digital Asset Links Anda. Sebagian besar situs mengizinkan agen otomatis untuk mengambil file di jalur /.well-known/ sehingga layanan lain dapat mengakses metadata dalam file tersebut.

Jika Anda memiliki file robots.txt, izinkan crawler web mengambil /.well-known/assetlinks.json dengan memperbarui robots.txt sebagai berikut:

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

4. Memperbarui manifes aplikasi

Di file manifes aplikasi Anda, tambahkan baris berikut di bagian <application>:

<meta-data android:name="asset_statements" android:resource="@string/asset_statements" />

5. Mengonfigurasi Digital Asset Links untuk sandi

Jika Anda menggunakan Pengelola Kredensial untuk sandi, Anda harus menyelesaikan langkah tambahan untuk mengonfigurasi penautan aset digital.

Tambahkan objek yang menentukan file assetlinks.json untuk dimuat di file manifes. Anda harus meng-escape apostrof dan tanda kutip yang Anda gunakan dalam string seperti yang ditunjukkan dalam contoh berikut:

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

Link https://signin.example.com/.well-known/assetlinks.json harus menampilkan respons HTTP 200 dan memiliki header Content-Type application/json. Verifikasi gagal jika respons memiliki pengalihan HTTP 301 atau 302 atau Content-Type non-JSON.

Contoh berikut menunjukkan contoh permintaan dan header respons yang diharapkan:

> 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

Langkah berikutnya

Setelah menambahkan dependensi yang diperlukan dan mengonfigurasi Digital Asset Links untuk kunci sandi, Anda dapat menggunakan Pengelola Kredensial untuk mengimplementasikan metode autentikasi yang didukung: Kunci sandi dan Login dengan Google. Untuk memulai, lihat panduan developer berikut: