Memperkenalkan uji coba origin Digital Credentials API

Dipublikasikan: 4 September 2024, Terakhir diperbarui: 16 Oktober 2024

Uji coba origin untuk Digital Credentials API dimulai dari Chrome 128. Digital Credentials API adalah API platform web baru yang memungkinkan situs meminta informasi yang dapat diverifikasi tentang pengguna secara selektif melalui kredensial digital seperti surat izin mengemudi atau kartu tanda pengenal nasional yang disimpan di dompet digital.

Latar belakang

Identitas digital dunia nyata menjadi kenyataan dengan banyak entitas publik dan swasta mulai menerbitkan kredensial digital yang terikat perangkat. Misalnya, surat izin mengemudi dan tanda pengenal seluler di negara bagian AS tertentu (seperti Arizona, California, Colorado, Georgia, dan Maryland) kini dapat disediakan ke aplikasi dompet digital seperti Google Wallet di perangkat seluler. Peraturan terkait penerimaan kredensial digital untuk verifikasi online tertentu juga muncul dan eIDAS 2.0 adalah salah satu contohnya.

Surat izin mengemudi digital di Google Wallet
Surat izin mengemudi digital di Google Wallet.

Fitur kredensial digital bergantung pada formatnya, meskipun biasanya meliputi:

  • Keamanan dan privasi yang ditingkatkan: Penggunaan enkripsi lanjutan dan metode autentikasi yang kuat membantu melindungi data sensitif dan memastikan akses yang aman. Misalnya, memberikan kredensial biasanya dilindungi dengan autentikasi pengguna melalui aplikasi wallet.
  • Pengungkapan selektif: Pihak yang dipercaya (RP) dapat meminta informasi tertentu dari kredensial, sehingga pengguna dapat membatasi data yang dibagikan hanya untuk hal yang diperlukan dalam kasus penggunaan. Misalnya, apakah pengguna berusia di atas 18 tahun dapat dibagikan tanpa mengungkapkan tanggal lahir pengguna.
  • Interoperabilitas: Kredensial harus mematuhi standar internasional, sehingga memungkinkan kompatibilitas di berbagai sistem dan negara, serta memfasilitasi penerimaan lintas batas.
  • Verifiabilitas: Data kredensial yang dibagikan ditandatangani secara digital oleh penerbit; RP dapat memverifikasi tanda tangan ini untuk memverifikasi keaslian data.

Karena kredensial digital bersifat dapat diverifikasi, hal tersebut dapat memungkinkan kasus penggunaan seperti:

  • Verifikasi usia: Meminta usia untuk memverifikasi usia seseorang sebelum menayangkan konten yang dikenai pembatasan usia atau membeli item yang dikenai pembatasan usia.
  • Verifikasi identitas: Minta nama dan alamat untuk memverifikasi identitas seseorang demi kepatuhan hukum atau pencegahan penipuan.
  • Pemeriksaan hak mengemudi: Memverifikasi kelayakan seseorang untuk mengemudi (misalnya, saat menyewa mobil).

Seiring situs mulai berkomunikasi langsung dengan aplikasi dompet seluler (seperti menggunakan skema URL kustom) guna meminta kredensial digital untuk berbagai kasus penggunaan, browser melihat peluang untuk membuat interaksi ini lebih aman, tahan terhadap penyalahgunaan, dan lebih mudah digunakan melalui API yang dibuat khusus.

Memperkenalkan Digital Credentials API

Digital Credentials API adalah API platform web baru yang memungkinkan situs RP meminta presentasi kredensial digital dari aplikasi dompet. API ini tersedia di Chrome sebagai uji coba origin mulai dari Chrome 128.

API ini tidak bergantung pada protokol, sehingga RP dapat menentukan protokol berdasarkan persyaratannya. Ketika RP membuat permintaan, browser mengirimkan permintaan ke sistem operasi seluler yang mencari kredensial yang cocok dalam aplikasi wallet yang terinstal. Jika ada yang ditemukan, sistem operasi seluler akan meminta pengguna untuk memilih salah satunya dan mengirimkan permintaan ke dompet yang dipilih pengguna. Setelah autentikasi lokal, wallet menampilkan respons yang berisi data kredensial yang diminta.

Diagram komunikasi antara browser, dompet, dan pihak tepercaya.

Chrome terlebih dahulu akan mendukung API di Chrome di Android untuk meminta kredensial dari aplikasi dompet di perangkat yang sama. Ke depannya, kami berencana mendukung desktop Chrome untuk meminta kredensial lintas perangkat dari perangkat seluler lain.

Saat peluncuran, Google Wallet akan terintegrasi dengan Digital Credentials API, sehingga bisnis dan organisasi tertentu dapat memulai permintaan agar pengguna menunjukkan tanda pengenal mereka secara online, melalui Chrome di Android, dan memverifikasi keaslian data yang dikirim dengan memeriksa tanda tangan kriptografis. Untuk berpartisipasi, isi formulir ini untuk menyatakan minat Anda dalam menerima tanda pengenal digital dari Google Wallet.

API ini juga akan segera digunakan oleh Akun Google untuk memverifikasi tanggal lahir pengguna tertentu. Pengguna yang tinggal di negara bagian AS yang didukung akan dapat menggunakan tanda pengenal negara bagian atau surat izin mengemudi yang disediakan di aplikasi dompet yang tersedia (termasuk Google Wallet) untuk membagikan tanggal lahir mereka dengan lancar kepada Google tanpa membagikan detail identitas mereka yang lain. Hal ini memungkinkan pengguna menunjukkan kepada Google, dengan cara yang menjaga privasi, bahwa mereka memenuhi persyaratan usia terkait akun.

Cobalah

Persyaratan:

  • Layanan Google Play 23.40 atau yang lebih baru
  • Chrome 128 atau yang lebih baru
  • Aktifkan tanda di chrome://flags#web-identity-digital-credentials

Untuk mencoba Digital Credentials API, ikuti petunjuk berikut:

  1. Instal aplikasi dompet demo dengan mengikuti petunjuknya.
  2. Luncurkan aplikasi IC Wallet dan sediakan surat izin mengemudi digital (mDL) demo.
    • Ketuk tombol menu, lalu pilih Tambahkan Dokumen yang Ditandatangani Sendiri.
  3. Buka https://digital-credentials.dev dengan Chrome 128 atau yang lebih baru.
  4. Tekan Minta Kredensial (OpenID4VP).

Lihat demo yang menggunakan https://digital-credentials.dev, situs pengujian bagi developer untuk membuat permintaan kredensial untuk berbagai atribut:

Berikut cara kerja demo langkah demi langkah:

1. Pengguna diarahkan ke situs pihak tepercaya dan diminta untuk memberikan nama belakang, nama depan, dan jaminan usia yang terverifikasi lebih dari 21 tahun.
2. Browser mengonfirmasi apakah pengguna ingin membagikan kredensial digital apa pun dengan situs ini.
3. Sistem operasi menampilkan informasi yang diminta dan kredensial yang memenuhi syarat yang dapat cocok dengan permintaan agar pengguna dapat memilih dan menyelesaikan permintaan.
4. Dompet mengautentikasi pengguna secara lokal dengan membuka kunci layar.

5. Kredensial digital yang diminta kini diteruskan ke situs pihak tepercaya.

Cara kerja API

Digital Credentials API dibuat berdasarkan fondasi Credential Management API, tetapi dari platform API independen: navigator.identity. Dengan memanggil navigator.identity.get(), situs dapat meminta kredensial digital yang disimpan di aplikasi dompet seluler.

// Gets a CBOR with specific fields out of mobile driver's license as an mdoc
const controller = new AbortController();
const {protocol, data} = await navigator.identity.get({
  signal: controller.signal,
  digital: {
    providers: [{
      protocol: "openid4vp",
      request: {
        response_type: "vp_token",
        nonce: "n-0S6_WzA2Mj",
        client_metadata: {...},
        presentation_definition: {...}
      }
    }],
  }
});

Platform API dasar mirip dengan navigator.credentials.get(), kecuali bahwa platform ini hanya menerima jenis kredensial "digital". Dalam jenis kredensial digital, tambahkan array providers yang berisi IdentityRequestProvider dengan parameter dasar berikut:

Contoh payload ke jenis kredensial digital menggunakan OID4VP:

{
  protocol: 'openid4vp',
  request: {
    response_type: 'vp_token',
    nonce: 'gf69kepV+m5tGxUIsFtLi6pwg=',
    client_metadata: {},
    presentation_definition: {
      id: 'mDL-request-demo',
      input_descriptors: [{
        id: "org.iso.18013.5.1.mDL",
        format: {
          mso_mdoc: {
            alg: ["ES256"]
          }
        },
        constraints: {
          limit_disclosure: "required",
          fields: [
            {
              path: ["$['org.iso.18013.5.1']['family_name']"],
              intent_to_retain: false
            }, {
              path: ["$['org.iso.18013.5.1']['given_name']"],
              intent_to_retain: false
            }, {
              path: ["$['org.iso.18013.5.1']['age_over_21']"],
              intent_to_retain: false
            }
          ]
        }
      }],
    }
  }
}

Dengan permintaan ini, dompet yang memiliki mDL di perangkat akan memberikan kumpulan kredensial yang dapat diverifikasi yang berisi:

  • Nama belakang pengguna.
  • Nama depan pengguna.
  • Nilai boolean yang menunjukkan apakah pengguna berusia di atas 21 tahun atau tidak.

Berikut adalah contoh payload respons:

{
  data: '{\n  "vp_token": "o2d2ZXJzaW9uYz..."\n}'
  id: '',
  protocol: 'openid4vp',
  type: 'digital'
}

Dalam contoh ini, kredensial diminta dengan protokol "openid4vp" dan respons berisi "vp_token" di properti data. Lihat spesifikasi OpenID for Verifiable Presentation (OID4VP) for the W3C Digital Credentials API untuk mempelajari cara mengurai respons dan memverifikasi kredensial.

Digital Credentials API didukung di Chrome di Android sebagai uji coba origin. Chrome di desktop dan iOS saat ini tidak mendukungnya. Untuk mesin browser lainnya, percakapan aktif difasilitasi melalui Grup Komunitas Inkubator Web W3C.

Berpartisipasi dalam uji coba asal

Untuk pengembangan, Anda dapat mengaktifkan Digital Credentials API secara lokal dengan mengaktifkan tanda Chrome chrome://flags#web-identity-digital-credentials di Chrome 128 atau yang lebih baru.

Fitur ini juga tersedia sebagai uji coba origin. Uji coba origin memungkinkan Anda mencoba berbagai fitur baru dan memberikan masukan terkait kegunaan, kepraktisan, serta efektivitasnya kepada komunitas standar web. Untuk informasi selengkapnya, lihat Memulai uji coba origin. Untuk mendaftar ke uji coba asal ini atau uji coba asal lainnya, buka halaman pendaftaran.

  1. Minta token untuk origin Anda.
  2. Tambahkan token ke halaman Anda. Ada dua cara untuk melakukannya:
    • Tambahkan tag origin-trial <meta> ke header setiap halaman. Misalnya, tampilannya mungkin terlihat seperti ini: <meta http-equiv="origin-trial" content="TOKEN_GOES_HERE">.
    • Jika dapat mengonfigurasi server, Anda juga dapat menambahkan token menggunakan header HTTP Origin-Trial. Header respons yang dihasilkan akan terlihat seperti ini:Origin-Trial: TOKEN_GOES_HERE.

Berikan masukan

Jika Anda memiliki masukan tentang Digital Credentials API, kirimkan ke issue tracker Chromium khusus.