Memperkenalkan uji coba origin Digital Credentials API

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

Latar belakang

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

Surat izin mengemudi seluler di Google Wallet
Surat izin mengemudi seluler di Google Wallet.

Fitur kredensial digital bergantung pada formatnya, meskipun biasanya meliputi:

  • Keamanan dan privasi yang ditingkatkan: Penggunaan metode enkripsi lanjutan dan 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, informasi tentang 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, sehingga memfasilitasi penerimaan lintas batas negara.
  • Verifikasi: Data kredensial yang dibagikan ditandatangani secara digital oleh penerbit; RP dapat memverifikasi tanda tangan ini untuk memverifikasi keaslian data.

Berkat kredensial digital bersifat dapat diverifikasi, parameter tersebut dapat mendukung kasus penggunaan seperti:

  • Verifikasi usia: Minta 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 istimewa 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 Chrome 128.

API ini agnostik protokol, memungkinkan RP menentukan protokol berdasarkan persyaratan mereka. 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. Pada masa mendatang, kami berencana mendukung desktop Chrome untuk meminta kredensial lintas perangkat dari perangkat seluler lain.

Saat peluncuran, Google Wallet akan terintegrasi dengan Digital Credentials API, yang memungkinkan bisnis dan organisasi tertentu mengajukan permintaan bagi pengguna untuk menunjukkan ID mereka secara online, melalui Chrome di Android, dan memverifikasi keaslian data yang dikirim dengan memeriksa tanda tangan kriptografi. Untuk berpartisipasi, isi formulir ini guna menyatakan minat untuk menerima tanda pengenal digital dari Google Wallet.

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

Cobalah

Untuk mencoba Digital Credentials API, ikuti petunjuknya:

  1. Instal aplikasi dompet demo dengan mengikuti petunjuk yang dijelaskan di halaman ini.
    • Download aplikasi dompet demo ke perangkat Android Anda.
    • Jalankan perintah adb install -t <path-to-apk> untuk menginstal aplikasi.
  2. Luncurkan aplikasi IC Wallet dan sediakan surat izin mengemudi seluler (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 Request Credentials (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:

Akun Layanan 1. Pengguna tiba di situs pihak tepercaya dan diminta untuk memberikan nama keluarga yang terverifikasi, nama depan, dan jaminan usia lebih dari 21 tahun.
2. Browser akan mengonfirmasi apakah pengguna bermaksud membagikan kredensial digital apa pun ke situs ini.
3. Sistem operasi menampilkan informasi yang diminta dan kredensial yang memenuhi syarat yang dapat mencocokkan permintaan bagi pengguna untuk memilih dan menyelesaikan permintaan.
4. Dompet secara lokal mengautentikasi pengguna dengan fitur buka kunci layar.

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

Cara kerja API

Digital Credentials API dibangun berdasarkan 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. kami.

// 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(), tetapi 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 OpenID for Verifiable Presentation (OID4VP) untuk spesifikasi W3C Digital Credentials API guna 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 origin

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 mengetahui informasi selengkapnya, lihat Memulai uji coba origin. Untuk mendaftar ke uji coba origin ini atau yang 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 bagian atas setiap halaman. Misalnya, hasil mungkin terlihat seperti: <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:Origin-Trial: TOKEN_GOES_HERE.

Berikan masukan

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