Membuat kredensial yang dapat diverifikasi untuk token ID

Definisi aturan yang menggunakan pengesahan idTokens, menghasilkan alur penerbitan yang mengharuskan Anda melakukan login interaktif ke penyedia identitas OpenID Connect (OIDC) di Microsoft Authenticator. Klaim dalam token ID yang dikembalikan oleh penyedia identitas dapat digunakan untuk mengisi kredensial yang dapat diverifikasi yang diterbitkan. Bagian pemetaan klaim dalam definisi aturan menentukan klaim mana yang digunakan.

Membuat kredensial kustom dengan jenis pengesahan idTokens

Di portal Microsoft Azure, saat memilih Tambahkan kredensial, Anda mendapatkan opsi untuk meluncurkan dua mulai cepat. Pilih kredensial kustom, lalu pilih Berikutnya.

Cuplikan layar mulai cepat kredensial masalah untuk membuat kredensial kustom.

Pada halaman Buat kredensial baru, masukkan kode JSON untuk tampilan dan definisi aturan. Dalam kotak Nama kredensial, beri nama jenis pada kredensial. Untuk membuat kredensial, pilih Buat.

Cuplikan layar halaman Buat kredensial baru, menampilkan sampel JSON untuk file tampilan dan aturan.

Contoh definisi tampilan JSON

Definisi tampilan JSON hampir sama, apa pun jenis pengesahannya. Anda hanya perlu menyesuaikan label sesuai dengan klaim yang dimiliki oleh kredensial yang dapat diverifikasi. JSON yang diharapkan untuk definisi Tampilan adalah konten dalam dari kumpulan tampilan. JSON adalah kumpulan, jadi jika Anda ingin mendukung banyak lokal, tambahkan beberapa entri dengan koma sebagai pemisah.

{
    "locale": "en-US",
    "card": {
      "title": "Verified Credential Expert",
      "issuedBy": "Microsoft",
      "backgroundColor": "#000000",
      "textColor": "#ffffff",
      "logo": {
        "uri": "https://didcustomerplayground.blob.core.windows.net/public/VerifiedCredentialExpert_icon.png",
        "description": "Verified Credential Expert Logo"
      },
      "description": "Use your verified credential to prove to anyone that you know all about verifiable credentials."
    },
    "consent": {
      "title": "Do you want to get your Verified Credential?",
      "instructions": "Sign in with your account to get your card."
    },
    "claims": [
      {
        "claim": "vc.credentialSubject.userName",
        "label": "User name",
        "type": "String"
      },
      {
        "claim": "vc.credentialSubject.displayName",
        "label": "Display name",
        "type": "String"
      },
      {
        "claim": "vc.credentialSubject.firstName",
        "label": "First name",
        "type": "String"
      },
      {
        "claim": "vc.credentialSubject.lastName",
        "label": "Last name",
        "type": "String"
      }
    ]
}

Contoh definisi aturan JSON

Definisi pengesahan JSON harus berisi nama idTokens, Detail konfigurasi OIDC (clientId, konfigurasi, redirectUri, dan cakupan) serta bagian pemetaan klaim. JSON yang diharapkan untuk definisi Aturan adalah konten dalam dari atribut aturan, yang dimulai dengan atribut pengesahan.

Pemetaan klaim dalam contoh berikut mengharuskan Anda mengonfigurasi token seperti yang dijelaskan dalam bagian Klaim di token ID dari penyedia identitas.

{
  "attestations": {
    "idTokens": [
      {
        "clientId": "8d5b446e-22b2-4e01-bb2e-9070f6b20c90",
        "configuration": "https://didplayground.b2clogin.com/didplayground.onmicrosoft.com/B2C_1_sisu/v2.0/.well-known/openid-configuration",
        "redirectUri": "vcclient://openid/",
        "scope": "openid profile email",
        "mapping": [
          {
            "outputClaim": "userName",
            "required": true,
            "inputClaim": "$.upn",
            "indexed": true
          },
          {
            "outputClaim": "displayName",
            "required": true,
            "inputClaim": "$.name",
            "indexed": false
          },
          {
            "outputClaim": "firstName",
            "required": true,
            "inputClaim": "$.given_name",
            "indexed": false
          },
          {
            "outputClaim": "lastName",
            "required": true,
            "inputClaim": "$.family_name",
            "indexed": false
          }
        ],
        "required": false
      }
    ]
  },
  "validityInterval": 2592000,
  "vc": {
    "type": [
      "VerifiedCredentialExpert"
    ]
  }
}

Pendaftaran aplikasi

Atribut clientId adalah ID aplikasi dari aplikasi terdaftar di penyedia identitas OIDC. Untuk ID Microsoft Entra, Anda membuat aplikasi dengan melakukan hal berikut:

  1. Di portal Azure, buka ID Microsoft Entra.

  2. Pilih Pendaftaran aplikasi dan pilih Pendaftaran baru, lalu beri nama aplikasi.

    Jika Anda hanya ingin akun di penyewa Anda dapat masuk, centang kotak Akun di direktori ini saja.

  3. Di URI Pengalihan (opsional), pilih Klien publik/asli (seluler &desktop), lalu masukkan vcclient://openid/.

Jika Anda ingin dapat menguji klaim apa yang ada dalam token Microsoft Entra, lakukan hal berikut:

  1. Di panel kiri, pilih Autentikasi>Tambahkan platform>Web.

  2. Untuk URI Pengalihan, masukkan https://jwt.ms, lalu pilih Token ID (digunakan untuk aliran implisit dan hibrid).

  3. Pilih Konfigurasikan.

Setelah selesai menguji token ID Anda, pertimbangkan untuk menghapus https://jwt.ms dan dukungan untuk aliran implisit dan hibrid.

Untuk ID Microsoft Entra: Anda dapat menguji pendaftaran aplikasi dan, jika Anda telah mengaktifkan dukungan untuk mengalihkan ke https://jwt.ms, Anda bisa mendapatkan token ID dengan menjalankan yang berikut ini di browser Anda:

https://login.microsoftonline.com/<your-tenantId>/oauth2/v2.0/authorize?client_id=<your-appId>&nonce=defaultNonce&redirect_uri=https%3A%2F%2Fjwt.ms&scope=openid%20profile&response_type=id_token&prompt=login

Dalam kode, ganti <your-tenantId> dengan ID penyewa Anda. Untuk mendapatkan klaim tambahan, Anda harus memiliki profil sebagai bagian dari cakupan.

Untuk Azure Active Directory B2C: Proses pendaftaran aplikasi sama, tetapi B2C memiliki dukungan bawaan di portal Azure untuk menguji kebijakan B2C Anda melalui fungsi Jalankan alur pengguna.

Klaim dalam token ID dari penyedia identitas

Klaim harus ada di penyedia identitas yang dikembalikan sehingga mereka dapat mengisi kredensial Anda yang dapat diverifikasi dengan sukses.

Jika klaim tidak ada, tidak akan ada nilai dalam kredensial yang dapat diverifikasi yang dikeluarkan. Sebagian besar penyedia identitas OIDC tidak mengeluarkan klaim dalam token ID jika klaim tersebut memiliki nilai nol di profil Anda. Pastikan untuk menyertakan klaim dalam definisi token ID, dan pastikan Anda telah memasukkan nilai untuk klaim di profil pengguna Anda.

Untuk ID Microsoft Entra: Untuk mengonfigurasi klaim yang akan disertakan dalam token Anda, lihat Memberikan klaim opsional ke aplikasi Anda. Konfigurasinya adalah per aplikasi, sehingga konfigurasi ini harus ditujukan untuk aplikasi yang memiliki ID aplikasi yang ditentukan dalam ID klien dalam definisi aturan.

Untuk mencocokkan tampilan dan definisi aturan, Anda harus membuat JSON optionalClaims aplikasi Anda terlihat seperti berikut:

"optionalClaims": {
    "idToken": [
        {
            "name": "upn",
            "source": null,
            "essential": false,
            "additionalProperties": []
        },
        {
            "name": "family_name",
            "source": null,
            "essential": false,
            "additionalProperties": []
        },
        {
            "name": "given_name",
            "source": null,
            "essential": false,
            "additionalProperties": []
        },
        {
            "name": "preferred_username",
            "source": null,
            "essential": false,
            "additionalProperties": []
        }
    ],
    "accessToken": [],
    "saml2Token": []
},

Untuk Azure Active Directory B2C: Mengonfigurasi klaim lain di token ID Anda bergantung pada apakah kebijakan B2C Anda adalah alur pengguna atau kebijakan kustom. Untuk informasi tentang alur pengguna, lihat Menyiapkan alur pendaftaran dan masuk di Azure Active Directory B2C. Untuk informasi tentang kebijakan khusus, lihat Memberikan klaim opsional untuk aplikasi Anda.

Untuk IdP lainnya, lihat dokumentasi yang relevan.

Mengonfigurasi sampel untuk menerbitkan dan memverifikasi kredensial kustom Anda

Untuk mengonfigurasi kode sampel Anda untuk menerbitkan dan memverifikasi kredensial kustom, Anda memerlukan:

  • Pengidentifikasi terdesentralisasi (DID) penerbit penyewa Anda
  • Jenis informasi masuk
  • URL manifes ke kredensial Anda

Cara termudah untuk menemukan informasi ini untuk kredensial kustom adalah dengan membuka kredensial Anda di portal Microsoft Azure. Pilih Terbitkan kredensial. Anda memiliki akses ke kotak teks dengan payload JSON untuk Request Service API. Ganti nilai tempat penampung dengan informasi lingkungan Anda. DID penerbit adalah nilai otoritas.

Cuplikan layar dari masalah info masuk kustom mulai cepat.

Langkah berikutnya

Lihat Referensi definisi aturan dan tampilan.