Menyiapkan berbagi kredensial yang lancar di seluruh aplikasi dan situs Android

Memaksimalkan kenyamanan pengguna dengan mengaktifkan berbagi kredensial yang lancar lintas platform di seluruh aplikasi dan situs Anda. Saat beberapa situs web dan aplikasi Android berbagi backend pengelolaan akun, fitur ini memungkinkan pengguna menyimpan kredensial sekali dan menyarankannya secara otomatis di situs atau aplikasi Android yang ditautkan.

Praktik terbaik

Untuk mengoptimalkan pengalaman pengguna dan keamanan, terapkan berbagi kredensial yang lancar di seluruh poin kontak ini:

  • Formulir login: Mengaktifkan pengisian kredensial otomatis.
  • Formulir pendaftaran: Simpan kredensial baru dengan aman untuk digunakan di berbagai platform.
  • Formulir perubahan sandi: Menyinkronkan pembaruan sandi di semua platform.
  • Formulir reset sandi: Izinkan satu reset sandi untuk memperbarui semua platform.
  • Domain WebView: Memperluas berbagi kredensial ke domain webview dalam aplikasi Anda yang menangani pengelolaan akun (login host, pendaftaran, sandi formulir ubah, atau reset sandi).
  • Aplikasi Android

Pendekatan ini menciptakan sistem pengelolaan kredensial terpadu, yang meningkatkan kenyamanan dan keamanan pengguna.

Ketika merancang situs web pengelolaan akun, sebaiknya Anda mengikuti praktik terbaik untuk situs pengelolaan akun:

Saat mendesain aplikasi Android, sebaiknya Anda mengintegrasikan aplikasi dengan Pengelola Kredensial Android.

Prasyarat

Sebelum menyiapkan berbagi kredensial tanpa hambatan, pastikan Anda memiliki hal berikut untuk setiap platform:

Untuk setiap aplikasi Android:

Untuk setiap situs:

  • Kemampuan untuk memublikasikan file /.well-known/assetlinks.json di setiap file domain, dengan mengikuti sintaksis Digital Asset Links (DALs).
  • Semua domain pengelolaan akun (login, pendaftaran, perubahan sandi, atau sandi formulir reset) harus dapat diakses melalui HTTPS.

Mengaktifkan berbagi kredensial yang lancar di seluruh aplikasi dan situs Android

Untuk mengonfigurasi berbagi kredensial yang lancar di seluruh aplikasi dan situs, Anda harus membuat dan memublikasikan daftar pernyataan Digital Asset Links yang menyatakan entitas (situs atau aplikasi Android) diizinkan untuk berbagi kredensial.

Untuk mendeklarasikan hubungan berbagi kredensial:

  1. Buat file assetlinks.json dengan pernyataan yang tertaut ke situs dan ke aplikasi Android, dengan mengikuti sintaksis daftar pernyataan DALs:

    [
      {
        "relation":[
          "delegate_permission/common.get_login_creds"
        ],
        "target":{
          "namespace":"web",
          "site":URL
        }
      },
      {
        "relation":[
          "delegate_permission/common.get_login_creds"
        ],
        "target":{
          "namespace":"android_app",
          "package_name":"APP_ID",
          "sha256_cert_fingerprints":[
            "SHA_HEX_VALUE"
          ]
        }
      }
    ]
    

    Dengan URL adalah URL situs Anda, APP_ID adalah ID aplikasi Android Anda, dan SHA_HEX_VALUE adalah sidik jari SHA256 dari sertifikat penandatanganan aplikasi Android Anda.

    Kolom relation menjelaskan hubungan yang dideklarasikan. Untuk mendeklarasikan bahwa aplikasi dan situs berbagi kredensial login, menentukan hubungan sebagai delegate_permission/common.get_login_creds. Pelajari selengkapnya tentang String Relasi dalam DAL.

    Kolom target adalah objek yang menentukan aset tempat deklarasi berlaku.

    Kolom berikut mengidentifikasi situs:

    namespace

    web

    site

    URL situs, dalam format https://domain[:optional_port]; misalnya, https://www.example.com.

    domain harus sepenuhnya memenuhi syarat, dan optional_port harus dihilangkan saat menggunakan port 443 untuk HTTPS.

    Target site hanya dapat berupa domain root: Anda tidak dapat membatasi pengaitan aplikasi ke subdirektori tertentu. Jangan sertakan jalur dalam URL, seperti garis miring.

    Subdomain tidak dianggap cocok: yaitu, jika Anda menentukan domain sebagai www.example.com, domain www.counter.example.com tidak akan dikaitkan dengan aplikasi Anda.

    Kolom berikut mengidentifikasi aplikasi Android:

    namespace

    android_app

    package_name

    Nama paket yang dideklarasikan dalam manifes aplikasi. Misalnya, com.example.android

    sha256_cert_fingerprints

    Sidik jari SHA256 dari sertifikat penandatanganan aplikasi Anda.

  2. Menghosting file JSON Digital Asset Links di lokasi berikut pada domain login: https://DOMAIN[:OPTIONAL_PORT]/.well-known/assetlinks.json , jika DOMAIN sepenuhnya memenuhi syarat, dan OPTIONAL_PORT harus dihilangkan saat menggunakan port 443 untuk dengan HTTPS.

  3. Mendeklarasikan pengaitan di aplikasi Android dengan menyematkan pernyataan di File res/values/strings.xml aplikasi Android yang menautkan ke daftar pernyataan yang Anda yang dibuat pada Langkah 1. Tambahkan objek yang menentukan file assetlinks.json ke memuat halaman. Contoh:

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

    Ganti DOMAIN dan OPTIONAL_PORT (harus dihilangkan saat menggunakan port 443 untuk HTTPS)—misalnya, https://www.example.com. Escape tanda apostrof dan tanda kutip yang Anda gunakan dalam {i>string<i}.

    Anda juga dapat menambahkan cuplikan JSON di file strings.xml seperti yang ditunjukkan di dokumentasi DALs, tetapi menggunakan pernyataan include akan memungkinkan Anda pernyataan perubahan tanpa memublikasikan versi baru aplikasi Anda.

  4. Referensikan pernyataan dalam manifes dengan menambahkan baris berikut ke file AndroidManifest.xml aplikasi di bawah <application>:

    <meta-data android:name="asset_statements" android:resource="@string/asset_statements"/>
    
  5. Memublikasikan versi baru aplikasi Android Anda ke Developer Google Play Konsol

Setelah mengikuti langkah-langkah ini, Anda berhasil menyiapkan kredensial yang lancar berbagi antara situs dan aplikasi Android Anda.

Perhatikan bahwa ini bukan satu-satunya cara yang valid untuk menyiapkan DAL untuk berbagi kredensial, tetapi pendekatan ini menyederhanakan proses di masa mendatang dalam menambahkan entitas baru ke jaringan berbagi kredensial yang lancar, mendukung penggunaan kembali kode, dan mengurangi potensi kesalahan selama proses pembaruan.