【发布时间】:2020-10-05 09:43:09
【问题描述】:
我可以使用企业应用程序轻松地对 Azure KeyVault 进行身份验证,但是这在部署的环境中似乎不安全,因为我需要在应用程序本身中存储 ClientID 和 ClientSecret,我希望用户在使用 AAD 登录名的应用程序,然后使用该登录名对 KeyVault 进行身份验证,以确保任何连接的用户都获得授权。
这可能吗?
谢谢。
【问题讨论】:
标签: c# winforms azure-keyvault
我可以使用企业应用程序轻松地对 Azure KeyVault 进行身份验证,但是这在部署的环境中似乎不安全,因为我需要在应用程序本身中存储 ClientID 和 ClientSecret,我希望用户在使用 AAD 登录名的应用程序,然后使用该登录名对 KeyVault 进行身份验证,以确保任何连接的用户都获得授权。
这可能吗?
谢谢。
【问题讨论】:
标签: c# winforms azure-keyvault
是的,这在技术上可以使用 InteractiveBrowserCredential 或 Azure.Identity SDK。但是,通过这样做,您需要授予用户/组所需的权限(例如秘密获取等)。因此,如果您对此感到满意,请继续阅读。此外,您只需在桌面应用程序中维护 AAD 应用程序的 TenantID 和 ClientID。
Azure.Security.KeyVault.Secrets 和 Azure.Identity
// Create a new secret client using the Interactive credential from Azure.Identity
// This will prompt the user to login .
var client = new SecretClient(vaultUri: new Uri("https://<keyvault-name>.vault.azure.net/"),
credential: new InteractiveBrowserCredential("<tenant-id>", "<client-id>"));
// Retrieve a secret using the secret client.
var secret = await client.GetSecretAsync("<secret-name>");
瞧,就是这样。它将打开一个浏览器窗口以提示用户登录并继续使用来自用户原则的身份验证令牌。
【讨论】: