Azure keyvault from on prem .net app without exposing client



我已经在 azure AD 中注册了我的应用并创建了一个客户端密码,然后创建了一个保管库,并为下面的 dbconnectionstring 添加了机密。它工作正常,但我需要"客户端 ID"和"客户端机密",因为标识作为服务主体进行管理。有没有办法通过 API 获取这些值,这样我的应用程序就不必将这些值保存在配置中?这有点违背了目的,因为整个练习是为了避免在 web.config/appsettings.json 中保存连接字符串;因为现在我可以将它们保存在保管库中,但我需要在配置中保存客户端 ID/密钥。

var kvClient = new KeyVaultClient(async (authority, resource, scope) =>
{
var context = new AuthenticationContext(authority);
var credential = new ClientCredential("client-id", "client-secret");
AuthenticationResult result = await context.AcquireTokenAsync(resource, credential);
return result.AccessToken;
});
try
{
var connStrENTT = kvClient.GetSecretAsync("https://myvault.vault.azure.net/", "DBConfigConnection").Result.Value;
}

如果使用托管标识,为什么需要通过代码获取令牌?托管标识应该为你隐藏这一点。

请使用此类示例中提供的指导来执行正确的步骤。

最新更新