從應用程式發出 Microsoft Entra 驗證識別碼 認證的問題
注意
Microsoft Entra 驗證識別碼 現在已 Microsoft Entra 驗證識別碼 及 Microsoft Entra 系列的一部分。 深入瞭解 Microsoft Entra 系列 身分識別解決方案,並開始使用整合的 Microsoft Entra 系統管理中心。
在本教學課程中,您會從連線到 Microsoft Entra 租使用者的本機電腦執行範例應用程式。 使用應用程式時,您將會發出並驗證已驗證的認證專家卡。
在本文中,您將學會如何:
- 在 Azure 中建立已驗證的認證專家卡。
- 收集認證和環境詳細數據,以設定範例應用程式。
- 將範例應用程式程式代碼下載到本機計算機。
- 使用已驗證認證專家卡和環境詳細數據更新範例應用程式。
- 執行範例應用程式,併發出您的第一張已驗證認證專家卡。
- 確認已驗證的認證專家卡片。
下圖說明 Microsoft Entra 驗證識別碼 架構和您所設定的元件。
必要條件
- 設定 Microsoft Entra 驗證識別碼 的租使用者。
- 若要複製裝載範例應用程式的存放庫,請安裝 GIT。
- Visual Studio Code、 Visual Studio 或類似的程式代碼編輯器。
- .NET 7.0。
- 下載 ngrok 並註冊免費帳戶。 如果您無法在組織中使用
ngrok
,請閱讀此 常見問題。 - 具有 Microsoft Authenticator 的行動裝置:
- 已安裝 Android 6.2310.7174 版或更新版本。
- 已安裝 iOS 6.7.17 版或更新版本。
在 Azure 中建立已驗證的認證專家卡片
提示
本文中的步驟可能會根據您從開始的入口網站稍有不同。
在此步驟中,您會使用 Microsoft Entra 驗證識別碼 建立已驗證的認證專家卡。 建立認證之後,您的 Microsoft Entra 租使用者可以將認證發行給起始程式的使用者。
以至少全域 管理員 istrator 身分登入 Microsoft Entra 系統管理中心。
選取 [可驗證的認證]。
設定租用戶之後,應該會出現 [建立認證]。 或者,您可以在左側功能表中選取 [認證 ],然後選取 [ + 新增認證]。
在 [建立認證] 中,選取 [自定義認證 ],然後按 [ 下一步]:
針對 [ 認證名稱],輸入 VerifiedCredentialExpert。 此名稱會在入口網站中用來識別可驗證的認證。 它包含在可驗證的認證合約中。
複製下列 JSON,並將其貼到 [ 顯示定義 ] 文字框中
{ "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" } ] }
複製下列 JSON,並將其貼到 [規則定義 ] 文字框中
{ "attestations": { "idTokenHints": [ { "mapping": [ { "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" ] } }
選取建立。
下列螢幕快照示範如何建立新的認證:
收集認證和環境詳細數據
現在您有了新的認證,接下來您將收集一些有關您環境的資訊和您所建立的認證。 設定範例應用程式時,您會使用這些資訊片段。
在 [可驗證的認證] 中,選取 [ 發出認證]。
複製授權單位,這是分散式標識碼,並記錄它以供稍後使用。
複製指令清單 URL。 這是 Authenticator 在向用戶可驗證認證發行需求顯示之前評估的 URL。 記錄它以供稍後使用。
複製您的 租用戶標識碼,並記錄以供稍後使用。 租用戶標識碼是上方以紅色反白顯示之指令清單 URL 中的 GUID。
下載範例程式碼
範例應用程式可在 .NET 中使用,而且程序代碼會保留在 GitHub 存放庫中。 從 GitHub 下載範例程式代碼,或將存放庫複製到本機電腦:
git clone https://github.com/Azure-Samples/active-directory-verifiable-credentials-dotnet.git
設定可驗證的認證應用程式
為您所建立的已註冊應用程式建立客戶端密碼。 範例應用程式會在要求令牌時,使用用戶端密碼來證明其身分識別。
以至少全域 管理員 istrator 身分登入 Microsoft Entra 系統管理中心。
選取 [Microsoft Entra ID]。
移至 [應用程式> 應用程式註冊] 頁面。
選取您稍早建立的 verifiable-credentials-app 應用程式。
選取要進入註冊詳細數據的名稱。
複製應用程式 (用戶端) 識別碼,並儲存以供稍後使用。
從主功能表中的 [管理] 底下,選取 [憑證&秘密]。
選取[ 新增客戶端密碼],然後執行下列動作:
在 [描述] 中,輸入客戶端密碼的描述(例如 vc-sample-secret)。
在 [到期日] 底下,選取秘密有效的持續時間(例如,六個月)。 然後選取 [新增]。
記錄祕密的 [值]。 您將在稍後的步驟中使用此值進行設定。 密碼的值不會再次顯示,而且無法透過任何其他方式擷取。 一旦可見,就會將其記錄下來。
此時,您應該具備設定範例應用程式所需的所有必要資訊。
更新範例應用程式
現在,您將修改範例應用程式的簽發者程序代碼,以使用可驗證的認證URL來更新它。 此步驟可讓您使用自己的租用戶發出可驗證的認證。
在 active-directory-verifiable-credentials-dotnet-main 資料夾下,開啟 Visual Studio Code,然後選取 1-asp-net-core-api-idtokenhint 資料夾內的專案。
在專案根資料夾下,開啟 appsettings.json 檔案。 此檔案包含 Microsoft Entra 驗證識別碼 環境的相關信息。 使用您在先前步驟中記錄的資訊來更新下列屬性:
- 租用戶標識碼: 您的租用戶標識碼
- 用戶端識別碼: 您的用戶端識別碼
- 用戶端密碼:您的客戶端密碼
- IssuerAuthority:您的分散式標識符
- VerifierAuthority:您的分散式標識符
- 認證指令清單:您的指令清單 URL
儲存 appsettings.json 檔案。
下列 JSON 示範完整的 appsettings.json 檔案:
{
"AppSettings": {
"Endpoint": "https://verifiedid.did.msidentity.com/v1.0",
"VCServiceScope": "3db474b9-6a0c-4840-96ac-1fceb342124f/.default",
"Instance": "https://login.microsoftonline.com/{0}",
"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]",
"IssuerAuthority": "did:web:...your-decentralized-identifier...",
"VerifierAuthority": "did:web:...your-decentralized-identifier...",
"CredentialManifest": "https://verifiedid.did.msidentity.com/v1.0/12345678-0000-0000-0000-000000000000/verifiableCredentials/contracts/VerifiedCredentialExpert"
}
}
發出您的第一張已驗證認證專家卡
現在您已準備好執行範例應用程式,以發出第一張已驗證的認證專家卡。
從 Visual Studio Code 執行 Verifiable_credentials_DotNet 專案。 或者,從作業系統的命令行執行:
cd active-directory-verifiable-credentials-dotnet/1-asp-net-core-api-idtokenhint dotnet build "AspNetCoreVerifiableCredentials.csproj" -c Debug -o .\\bin\\Debug\\netcoreapp3. dotnet run
在另一個命令提示字元視窗中,執行下列命令。 此命令會執行 ngrok 以在 5000 上設定 URL,並在因特網上公開提供它。
ngrok http 5000
注意
在某些電腦上,您可能需要以下列格式執行命令:
./ngrok http 3000
。開啟 ngrok 所產生的 HTTPS URL。
從網頁瀏覽器,選取 [ 取得認證]。
使用您的行動裝置,使用 Authenticator 應用程式掃描 QR 代碼。 您也可以直接從相機掃描 QR 代碼,這會為您開啟 Authenticator 應用程式。
此時,您會看到一則訊息警告,指出此應用程式或網站可能會有風險。 選取進階。
在有風險的網站警告中,選取 [無論如何繼續][不安全]。 您會看到此警告,因為您的網域未連結至您的分散式標識碼 (DID)。 若要驗證您的網域,請遵循 將您的網域連結至分散式標識碼 (DID)。 在本教學課程中,您可以略過網域註冊,然後選取 [ 仍要繼續] (unsafe)。
系統會提示您輸入在掃描 QR 代碼的畫面中顯示的 PIN 碼。 PIN 會將額外的保護層新增至發行。 每次顯示發行 QR 代碼時,都會隨機產生 PIN 碼。
輸入 PIN 號碼之後, [新增認證 ] 畫面隨即出現。 在畫面頂端,您會看到 未驗證 的訊息(紅色)。 此警告與先前所述的網域驗證警告有關。
選取 [ 新增 ] 以接受新的可驗證認證。
恭喜! 您現在已有已驗證的認證專家可驗證認證。
返回範例應用程式。 它會顯示已成功發出認證。
可驗證的認證名稱
您的可驗證認證包含 認證中名字和姓氏值的 Megan Bowen 。 這些值是在範例應用程式中硬式編碼,並在裝載中發行時新增至可驗證的認證。
在實際案例中,您的應用程式會從識別提供者提取使用者詳細數據。 下列代碼段顯示範例應用程式中設定名稱的位置。
//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";
...
}
下一步
在下一個步驟中,瞭解第三方應用程式,也稱為信賴憑證者應用程式,如何使用自己的 Microsoft Entra 租用戶可驗證認證 API 服務來驗證您的認證。