Menerbitkan info masuk ID Terverifikasi Microsoft Entra dari aplikasi

Dalam tutorial ini, Anda menjalankan aplikasi sampel dari komputer lokal yang tersambung ke penyewa Microsoft Entra Anda. Dengan menggunakan aplikasi ini, Anda akan menerbitkan Kartu Ahli Kredensial Terverifikasi dan memverifikasinya.

Dalam artikel ini, Anda akan mempelajari cara:

  • Buat Kartu Ahli Kredensial Terverifikasi di Azure.
  • Kumpulkan kredensial dan detail lingkungan untuk mengatur aplikasi contoh.
  • Unduh contoh kode aplikasi ke mesin lokal Anda
  • Perbarui aplikasi contoh dengan Kartu Ahli Kredensial Terverifikasi dan detail lingkungan Anda.
  • Jalankan aplikasi contoh dan menerbitkan Kartu Ahli Kredensial Terverifikasi pertama Anda.
  • Verifikasi Kartu Ahli Kredensial Terverifikasi Anda.

Bagan berikut mengilustrasikan arsitektur ID Terverifikasi Microsoft Entra dan komponen yang Anda konfigurasikan.

Diagram that illustrates the Microsoft Entra Verified ID architecture.

Prasyarat

Buat Kartu Ahli Kredensial Terverifikasi di Azure.

Tip

Langkah-langkah dalam artikel ini mungkin sedikit berbeda berdasarkan portal tempat Anda memulai.

Pada langkah ini, Anda membuat kartu ahli informasi masuk terverifikasi dengan menggunakan ID Terverifikasi Microsoft Entra. Setelah Anda membuat kredensial, penyewa Microsoft Entra Anda dapat mengeluarkannya kepada pengguna yang memulai proses.

  1. Masuk ke pusat admin Microsoft Entra sebagai setidaknya Administrator Global.

  2. Pilih Kredensial yang dapat diverifikasi.

  3. Setelah Anda menyiapkan penyewa Anda, Buat informasi masuk akan muncul. Atau, Anda dapat memilih Informasi masuk di menu sebelah kiri dan memilih + Tambahkan informasi masuk.

  4. Di Buat info masuk, pilih Info masuk Kustom dan klik Berikutnya:

    1. Untuk Nama informasi masuk, masukkan VerifiedCredentialExpert. Nama ini digunakan di portal untuk mengidentifikasi kredensial yang dapat diverifikasi Anda. Ini disertakan sebagai bagian dari kontrak kredensial yang dapat diverifikasi.

    2. Salin JSON berikut dan tempelkan di kotak teks Definisi tampilan

      {
          "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.firstName",
              "label": "First name",
              "type": "String"
            },
            {
              "claim": "vc.credentialSubject.lastName",
              "label": "Last name",
              "type": "String"
            }
          ]
      }
      
    3. Salin JSON berikut dan tempelkan di kotak teks Definisi aturan

      {
        "attestations": {
          "idTokenHints": [
            {
              "mapping": [
                {
                  "outputClaim": "firstName",
                  "required": true,
                  "inputClaim": "$.given_name",
                  "indexed": false
                },
                {
                  "outputClaim": "lastName",
                  "required": true,
                  "inputClaim": "$.family_name",
                  "indexed": true
                }
              ],
              "required": false
            }
          ]
        },
        "validityInterval": 2592000,
        "vc": {
          "type": [
            "VerifiedCredentialExpert"
          ]
        }
      }
      
    4. Pilih Buat.

Cuplikan layar berikut menunjukkan cara membuat kredensial baru:

Screenshot that shows how to create a new credential.

Mengumpulkan kredensial dan detail lingkungan

Sekarang setelah Anda memiliki kredensial baru, Anda akan mengumpulkan beberapa informasi tentang lingkungan Anda dan kredensial yang Anda buat. Anda menggunakan potongan-potongan informasi ini ketika Anda menyiapkan aplikasi contoh Anda.

  1. Di Kredensial yang Dapat Diverifikasi, pilih Terbitkan info masuk.

    Screenshot that shows how to select the newly created verified credential.

  2. Salin otoritas, yang merupakan Pengidentifikasi Terdesentralisasi, dan rekam untuk nanti.

  3. Salin URL manifes. Ini adalah URL yang dievaluasi Authenticator sebelum ditampilkan kepada persyaratan penerbitan kredensial yang dapat diverifikasi pengguna. Rekam untuk digunakan nanti.

  4. Salin ID Penyewa Anda dan rekam untuk nanti. ID Penyewa adalah panduan dalam URL manifes yang disorot dengan warna merah di atas.

Mengunduh kode sampel

Aplikasi contoh tersedia di .NET dan kode dipertahankan dalam repositori GitHub. Unduh kode sampel kami dari GitHub di sini, atau klon repositori ke komputer lokal Anda:

git clone https://github.com/Azure-Samples/active-directory-verifiable-credentials-dotnet.git

Kofigurasi aplikasi kredensial yang dapat diverifikasi

Buat rahasia klien untuk aplikasi terdaftar yang Anda buat. Aplikasi contoh menggunakan rahasia klien untuk membuktikan identitasnya saat meminta token.

  1. Masuk ke pusat admin Microsoft Entra sebagai setidaknya Administrator Global.

  2. Pilih Microsoft Entra ID.

  3. Buka halaman Aplikasi> Pendaftaran aplikasi.

  4. Pilih aplikasi verifiable-credentials-app yang Anda buat sebelumnya.

  5. Pilih nama untuk masuk ke detail Pendaftaran aplikasi

  6. Salin ID (klien) Aplikasi dan simpan untuk nanti.

    Screenshot that shows how to copy the app registration ID.

  7. Di menu sebelah kiri, di bagianKelola, pilih Sertifikat& rahasia.

  8. Pilih + Langkah baru, dan lakukan langkah-langkah berikut:

    1. Di kotak Deskripsi, masukkan deskripsi rahasia klien (misalnya, vc-sample-secret).

    2. Di bawah Kedaluwarsa, pilih durasi yang rahasianya valid (misalnya, enam bulan). Kemudian pilih Tambahkan.

    3. Catat Nilai rahasia. Anda akan menggunakan nilai ini untuk konfigurasi pada langkah selanjutnya. Nilai rahasia tidak akan ditampilkan lagi, dan tidak dapat diambil dengan cara lain. Catat segera setelah terlihat.

Pada titik ini, Anda harus memiliki semua informasi yang diperlukan yang Anda butuhkan untuk menyiapkan aplikasi contoh Anda.

Memperbarui Aplikasi Contoh

Sekarang Anda akan melakukan modifikasi pada kode pengeluar sertifikat aplikasi sampel untuk memperbaruinya dengan URL kredensial yang dapat diverifikasi milik Anda. Langkah ini memungkinkan Anda untuk mengeluarkan kredensial yang dapat diverifikasi dengan menggunakan penyewa Anda sendiri.

  1. Di bawah folder active-directory-verifiable-credentials-dotnet-main, buka Visual Studio Code, dan pilih proyek di dalam folder 1-asp-net-core-api-idtokenhint.

  2. Di bawah folder akar proyek, buka file appsettings.json. File ini berisi informasi tentang lingkungan ID Terverifikasi Microsoft Entra Anda. Perbarui properti berikut dengan informasi yang Anda rekam dalam langkah-langkah sebelumnya:

    1. Tenant ID: ID penyewa Anda
    2. ID Klien: ID Klien Anda
    3. Client ID: rahasia klien Anda
    4. DidAuthority: Pengidentifikasi Terdesentralisasi Anda
    5. Manifes Informasi Masuk: URL manifes Anda

    CredentialType hanya diperlukan untuk presentasi, jadi jika yang ingin Anda lakukan adalah penerbitan, itu benar-benar tidak diperlukan.

  3. Simpan file appsettings.json.

JSON berikut menunjukkan file appsettings.json lengkap:

{
  "VerifiedID": {
    "Endpoint": "https://verifiedid.did.msidentity.com/v1.0/verifiableCredentials/",
    "VCServiceScope": "3db474b9-6a0c-4840-96ac-1fceb342124f/.default",
    "Instance": "https://login.microsoftonline.com/",
    "TenantId": "12345678-0000-0000-0000-000000000000",
    "ClientId": "33333333-0000-0000-0000-000000000000",
    "ClientSecret": "123456789012345678901234567890",
    "CertificateName": "[Or instead of client secret: Enter here the name of a certificate (from the user cert store) as registered with your application]",
    "DidAuthority": "did:web:...your-decentralized-identifier...",
    "CredentialType": "VerifiedCredentialExpert",
    "CredentialManifest":  "https://verifiedid.did.msidentity.com/v1.0/12345678-0000-0000-0000-000000000000/verifiableCredentials/contracts/VerifiedCredentialExpert"
  }
}

Mengeluarkan kartu pakar kredensial terverifikasi pertama Anda

Sekarang Anda siap untuk menerbitkan Kartu Ahli Terverifikasi pertama Anda dengan menjalankan aplikasi contoh.

  1. Dari Visual Studio Code, jalankan proyek Verifiable_credentials_DotNet. Atau, dari baris perintah sistem operasi Anda, jalankan:

    cd active-directory-verifiable-credentials-dotnet\1-asp-net-core-api-idtokenhint
    dotnet build "AspNetCoreVerifiableCredentials.csproj" -c Debug -o .\bin\Debug\net6.
    dotnet run
    
  2. Di jendela wantian perintah yang lain, jalankan perintah berikut. Perintah ini menjalankan ngrok untuk menyiapkan URL pada 5000 dan membuatnya dapat diakses publik di internet.

    ngrok http 5000
    

    Catatan

    Pada beberapa komputer Anda mungkin perlu menjalankan perintah dalam format ini ./ngrok http 5000

  3. Buka URL HTTPS yang dihasilkan oleh ngrok.

    Screenshot that shows how to get the ngrok public URL.

  4. Dari browser web, pilih Dapatkan Kredensial.

    Screenshot that shows how to choose to get the credential from the sample app.

  5. Menggunakan perangkat seluler Anda, pindai kode QR dengan aplikasi Authenticator. Anda juga dapat memindai kode QR langsung dari kamera Anda, yang akan membuka aplikasi Authenticator untuk Anda.

    Screenshot that shows how to scan the QR code.

  6. Saat ini, Anda akan melihat pesan peringatan bahwa aplikasi atau situs web ini mungkin berisiko. Pilih Tingkat Lanjut.

    Screenshot that shows how to respond to the warning message.

  7. Di peringatan situs web berisiko, pilih Tetap lanjutkan (tidak aman). Anda melihat peringatan ini karena domain Anda tidak terkait dengan pengenal terdesentralisasi Anda (DID). Untuk memverifikasi domain Anda, ikuti Menautkan domain ke pengidentifikasi terdesentralisasi (DID). Untuk tutorial ini, Anda dapat melompati pendaftaran domain, dan memilih Tetap lanjutkan (tidak aman).

    Screenshot that shows how to proceed with the risky warning.

  8. Anda akan diminta memasukkan kode PIN yang ditampilkan di layar tempat Anda memindai kode QR. PIN menambahkan lapisan perlindungan tambahan untuk penerbitan. Kode PIN dihasilkan secara acak setiap kali kode QR penerbitan ditampilkan.

    Screenshot that shows how to type the pin code.

  9. Setelah Anda memasukkan nomor PIN, layar Tambahkan informasi masuk akan ditampilkan. Di bagian atas layar, Anda dapat melihat pesan Tidak diverifikasi berwarna merah. Peringatan ini terkait dengan validasi domain yang disebutkan di atas.

  10. Pilih Tambahkan untuk menerima kredensial baru Anda yang dapat diverifikasi.

    Screenshot that shows how to add your new credential.

Selamat! Anda sekarang memiliki kartu kredensial ahli kredensial terverifikasi yang dapat diverifikasi.

Screenshot that shows a newly added verifiable credential.

Kembali ke aplikasi sampel. Ini menunjukkan kepada Anda bahwa kredensial berhasil diterbitkan.

Screenshot that shows a successfully issued verifiable credential.

Nama Kredensial yang Dapat Diverifikasi

Kredensial Anda yang dapat diverifikasi berisi Megan Bowen sebagai nama depan dan nilai nama belakang dalam kredensial. Nilai-nilai ini telah di-hardcode dalam aplikasi sampel dan ditambahkan ke kredensial yang dapat diverifikasi pada saat penerbitan di payload.

Dalam skenario nyata, aplikasi Anda menarik detail pengguna dari penyedia identitas. Cuplikan kode berikut menunjukkan di mana nama diatur dalam aplikasi contoh.

//file: IssuerController.cs
[HttpGet("/api/issuer/issuance-request")]
public async Task<ActionResult> issuanceRequest()
  {
    ...
    // Here you could change the payload manifest and change the first name and last name.
    payload["claims"]["given_name"] = "Megan";
    payload["claims"]["family_name"] = "Bowen";
    ...
}

Langkah berikutnya

Pada langkah berikutnya, pelajari bagaimana aplikasi pihak ketiga, juga dikenal sebagai aplikasi pihak yang mengandalkan, dapat memverifikasi kredensial Anda dengan layanan API kredensial penyewa Microsoft Entra sendiri yang dapat diverifikasi.