Menyiapkan berbagi kredensial yang lancar di seluruh aplikasi dan situs Android

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

Praktik terbaik

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

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

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

Saat mendesain situs pengelolaan akun, sebaiknya ikuti praktik terbaik berikut untuk situs pengelolaan akun:

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

Prasyarat

Sebelum menyiapkan berbagi kredensial yang lancar, 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 domain, dengan mengikuti sintaksis Digital Asset Links (DAL).
  • Semua domain pengelolaan akun (login, pendaftaran, perubahan sandi, atau formulir reset sandi) 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 membuat dan memublikasikan daftar pernyataan Digital Asset Links yang mendeklarasikan entitas mana (situs atau aplikasi Android) yang diizinkan untuk berbagi kredensial.

Untuk mendeklarasikan hubungan berbagi kredensial:

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

    [
      {
        "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, 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, tentukan hubungan sebagai delegate_permission/common.get_login_creds. Pelajari lebih lanjut String Relasi di 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 , dengan DOMAIN sepenuhnya memenuhi syarat, dan OPTIONAL_PORT harus dihilangkan saat menggunakan port 443 untuk HTTPS.

  3. Deklarasikan pengaitan di aplikasi Android dengan menyematkan pernyataan dalam file res/values/strings.xml aplikasi Android yang ditautkan ke daftar pernyataan yang Anda buat di Langkah 1. Tambahkan objek yang menentukan file assetlinks.json untuk dimuat. 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 apostrof dan tanda kutip yang Anda gunakan dalam string.

    Anda juga dapat menambahkan cuplikan JSON dalam file strings.xml seperti yang ditunjukkan dalam dokumentasi DAL, tetapi dengan menggunakan pernyataan include, Anda dapat mengubah pernyataan tanpa memublikasikan versi baru aplikasi.

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

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

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

Perhatikan bahwa ini bukan satu-satunya cara yang valid untuk menyiapkan DAL guna berbagi kredensial, tetapi pendekatan ini menyederhanakan proses penambahan entitas baru ke jaringan berbagi kredensial yang lancar di masa mendatang, mendorong penggunaan kembali kode, dan mengurangi potensi error selama update.