是否为 Windows 桌面应用启用了 Azure 托管标识?

时间:2021-03-22 19:26:30

标签: azure azure-keyvault azure-managed-identity

我按照本教程中的说明进行操作(选项 #1 自动配置):https://docs.microsoft.com/en-us/azure/active-directory/develop/quickstart-v2-windows-desktop

生成的 WPF 桌面应用程序运行良好,我能够让它对我的 Azure AD 帐户进行身份验证。

这是否意味着桌面应用正在使用 Azure 托管标识?

如果没有,我还需要做什么来完成此任务?

我的最终目标是能够修改桌面应用程序并访问 Azure Key Vault 中的机密,而无需对凭据进行硬编码或使用环境变量。

1 个答案:

答案 0 :(得分:1)

<块引用>

这是否意味着桌面应用正在使用 Azure 托管标识?

不,这并不意味着,此 doc 的桌面应用程序只是使用 AAD 应用程序供您登录,与托管身份 (MSI) 无关。

<块引用>

如果没有,我还需要做什么来完成此任务?

如果您想使用 MSI 访问 azure keyvault 中的机密,您需要在 azure services that supported MSI 中运行您的代码,例如azure 应用服务、azure VM 等,MSI 在其他任何地方都不可用。

对于代码,只需使用Azure Key Vault secret client library for .NET,它使用DefaultAzureCredential进行身份验证,它会自动尝试多种身份验证方式,其中一种是ManagedIdentityCredential,即MSI。

var client = new SecretClient(vaultUri: new Uri(keyVaultUrl), credential: new DefaultAzureCredential());

您还应该注意,当您使用 MSI 访问 azure keyvault secret 时,它是一种非交互式方式,不会要求用户登录(即没有用户参与),因为 MSI 本质上是 AAD 中的服务主体,使用它进行身份验证时,它只是对 azure 实例元数据端点进行 API 调用以获取令牌,然后使用令牌进行身份验证。