Можно ли предоставить доступ к хранилищу ключей назначенному пользователю идентификатору?
В разделе «Управляемые удостоверения» на портале Azure я создал новое удостоверение «KeyVaultIdentity», которое назначил его веб-приложению (в разделе «Удостоверение», вкладка «Назначенные пользователем удостоверения»). В политиках доступа из хранилища ключей я добавил новую созданную идентификацию «KeyVaultIdentity» и предложил разрешения для доступа к секретам.
Я использую следующий код для доступа к хранилищу ключей:
try
{
/* The below 4 lines of code shows you how to use AppAuthentication library to fetch secrets from your Key Vault*/
AzureServiceTokenProvider azureServiceTokenProvider = new AzureServiceTokenProvider();
KeyVaultClient keyVaultClient = new KeyVaultClient(new KeyVaultClient.AuthenticationCallback(azureServiceTokenProvider.KeyVaultTokenCallback));
var secret = await keyVaultClient.GetSecretAsync("https://play9VaultDemo.vault.azure.net/secrets/AppSecret")
.ConfigureAwait(false);
Message = secret.Value;
/* The below do while logic is to handle throttling errors thrown by Azure Key Vault. It shows how to do exponential backoff which is the recommended client side throttling*/
do
{
long waitTime = Math.Min(getWaitTime(retries), 2000000);
secret = await keyVaultClient.GetSecretAsync("https://play9VaultDemo.vault.azure.net/secrets/AppSecret")
.ConfigureAwait(false);
retry = false;
}
while (retry && (retries++ < 10));
}
/// <exception cref="KeyVaultErrorException">
/// Thrown when the operation returned an invalid status code
/// </exception>
catch (KeyVaultErrorException keyVaultException)
{
Message = keyVaultException.Message;
if ((int)keyVaultException.Response.StatusCode == 429)
retry = true;
}
Но там говорится, что доступ запрещен, когда я пытаюсь получить доступ к секрету. Однако, если в Key Vault я предоставляю доступ к системному назначению веб-приложения, я могу получить доступ к секрету,
Есть ли у вас какие-либо идеи, как я могу заставить эту работу работать с назначенным пользователем удостоверением личности?