配置 Microsoft Entra 验证 ID 验证程序

从应用程序颁发 Microsoft Entra 验证 ID 凭据中,你了解了如何使用相同的 Microsoft Entra 租户颁发和验证凭据。 在实际场景中,颁发者和验证者是不同的组织,验证者使用自己的 Microsoft Entra 租户来验证其他组织颁发的凭据。 本教程将详细介绍所需的步骤,以演示和验证你的首个可验证凭据:经过验证的凭据专家卡。

作为验证方,你可以解锁拥有经过验证的凭据专家卡的主体的特权。 在本教程中,你将从本地计算机运行一个示例应用程序,它会要求你提供经过验证的凭据专家卡并进行验证。

在本文中,学习如何:

  • 将示例应用程序代码下载到本地计算机
  • 在 Microsoft Entra 租户上设置 Microsoft Entra 验证 ID
  • 收集凭据和环境详细信息以设置示例应用程序,然后使用经过验证的凭据专家卡详细信息更新示例应用程序
  • 运行示例应用程序并启动可验证凭据颁发进程

先决条件

收集租户详细信息以设置示例应用程序

设置 Microsoft Entra 验证 ID 服务后,收集有关环境和设置的可验证凭据的一些信息。 设置示例应用程序时,会用到这些信息。

  1. 从“验证 ID”中选择“组织设置”。
  2. 复制“租户标识符”值,并记下它供将来使用。
  3. 复制“去中心化标识符”值,并记下它供将来使用。

以下屏幕截图演示了如何复制所需的值:

屏幕截图演示如何从 Microsoft Entra 验证 ID 复制所需值。

下载示例代码

示例应用程序在 .NET 中提供,代码保留在 GitHub 存储库中。 从 GitHub 存储库下载示例代码,或将存储库克隆到本地计算机:

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

配置可验证凭据应用

为你创建的已注册应用程序创建客户端密码。 该示例应用程序请求令牌时使用客户端密码来证明其身份。

  1. 在“Microsoft Entra ID”中,转到“应用注册”。

  2. 选择此前创建的“verifiable-credentials-app”应用程序。

  3. 选择该名称以进入“应用注册详细信息”。

  4. 复制“应用程序(客户端) ID”并保存它供以后使用。

    显示如何获取应用 ID 的屏幕截图。

  5. 在“应用注册详细信息”中,从主菜单的“管理”下选择“证书和机密”

  6. 选择“新建客户端机密”。

    1. 在“说明”框中输入客户端密码的说明(例如 vc-sample-secret)。

    2. 在“过期时间”下,选择密码的有效期(例如 6 个月)。 然后选择“添加” 。

    3. 记下机密的“值”。 在后面的步骤中需要使用此值。 该密码值不会再次显示,也无法通过任何其他方式检索,因此,应在该值显示时将其记录下来。

此时,你应具有设置示例应用程序所需的所有必需信息。

更新示例应用程序

现在,对示例应用的颁发者代码进行修改,以便用可验证凭据 URL 更新它。 此步骤使你可以使用自己的租户颁发可验证凭据。

  1. 在“active-directory-verifiable-credentials-dotnet-main”目录中,打开 Visual Studio Code。 选择“1. asp-net-core-api-idtokenhint”目录中的项目。

  2. 在项目根文件夹下,打开 appsettings.json 文件。 此文件包含有关 Microsoft Entra 验证 ID 环境中的凭据的信息。 使用在之前的步骤中收集的信息更新以下属性。

    1. 租户 ID:你的租户 ID
    2. 客户端 ID:你的客户端 ID
    3. 客户端密码:你的客户端密码
    4. DidAuthority:你的分散式标识符
    5. CredentialType:凭据类型

    CredentialManifest 仅在颁发时需要,因此如果只想演示,严格来说并不需要它。

  3. 保存 appsettings.json 文件。

下面的 JSON 演示了一个完整的 appsettings.json 文件:

{
  "VerifiedID": {
    "Endpoint": "https://verifiedid.did.msidentity.com/v1.0/verifiableCredentials/",
    "VCServiceScope": "3db474b9-6a0c-4840-96ac-1fceb342124f/.default",
    "Instance": "https://login.microsoftonline.com/",
    "TenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee",
    "ClientId": "00001111-aaaa-2222-bbbb-3333cccc4444",
    "ClientSecret": "A1bC2dE3fH4iJ5kL6mN7oP8qR9sT0u",
    "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/aaaabbbb-0000-cccc-1111-dddd2222eeee/verifiableCredentials/contracts/VerifiedCredentialExpert"
  }
}

运行并测试示例应用

现在你可以通过运行示例应用程序来演示和验证你的首个经过验证的凭据专家卡。

  1. 在 Visual Studio Code 中,运行 Verifiable_credentials_DotNet 项目。 或在命令 shell 中运行以下命令:

    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. 在另一终端中,运行以下命令。 此命令会运行 ngrok 在 5000 上设置一个 URL,并使其在 Internet 上公开可用。

    ngrok http 5000 
    

    注意

    在某些计算机上,可能需要以 ./ngrok http 5000 格式运行命令。

  3. 打开 ngrok 生成的 HTTPS URL。

    显示如何获取 ngrok 公共 URL 的屏幕截图。

  4. 在 Web 浏览器中,选择“验证凭据”。

    显示如何从示例应用中验证凭据的屏幕截图。

  5. 使用移动设备,通过 Authenticator 应用扫描 QR 码。 若要详细了解如何扫描 QR 码,请参阅常见问题解答部分

  6. 看到警告消息显示此应用或网站可能有风险时,请选择“高级”。 显示此警告是因为你的域未经验证。 对于本教程,可跳过域注册。

    显示如何在“Authenticator 应用有风险”警告上选择“高级”的屏幕截图。

  7. 在出现“网站有风险”的警告时,选择“仍然继续(不安全)”。

    显示如何在显示“有风险”警告的情况下继续操作的屏幕截图。

  8. 选择“允许”以批准请求。

    显示如何批准出示请求的屏幕截图。

  9. 批准请求后,可以看到请求已获得批准。 还可查看日志。 若要查看日志,请选择可验证凭据。

    显示经过验证的凭据专家卡的屏幕截图。

  10. 然后选择“最近活动”。

    显示“最近活动”按钮的屏幕截图,该按钮将转到凭据历史记录。

  11. “最近活动”会显示可验证凭据的最近活动。

    显示可验证凭据历史记录的屏幕截图。

  12. 返回到示例应用。 它显示了收到的可验证凭据表述。

    屏幕截图显示已收到可验证凭据的表述。

后续步骤

了解如何自定义可验证凭据