我試圖編寫一個簡單的應用程序來使用我自己的域加入的憑據來訪問Azure KeyVault。我不知道它是憑證部分還是我如何訪問KeyVault,但我一直收到「無效URI:無法確定URI的格式」異常。 我能夠使用Azure PowerShell cmdlet訪問KeyVault,但不能使用C#。如何使用用戶憑據訪問Azure密鑰保管庫?
下面的代碼,我有:
class Program
{
const string ClientId = "MY AAD CLIENT ID";
static void Main(string[] args)
{
Console.WriteLine("Hello, KeyVault!");
var client = new KeyVaultClient(new KeyVaultClient.AuthenticationCallback(GetAccessToken));
var secret = client.GetSecretAsync("vaultName", "secretName").Result; // Throws Invalid URI: The format of the URI could not be determined
Console.WriteLine(secret.Value);
Console.ReadLine();
}
private static async Task<string> GetAccessToken(string authority, string resource, string scope)
{
var context = new AuthenticationContext(authority, TokenCache.DefaultShared);
var authResult = await context.AcquireTokenAsync(resource, ClientId, new UserCredential());
return authResult.AccessToken;
}
}
可能是什麼造成的?我搜索了互聯網,並沒有找到任何示例代碼來顯示如何以這種方式訪問KeyVault。
我不認爲你有可能使用你的應用程序ID訪問密鑰庫。我已經使用Azure PowerShell客戶端ID進行了工作:'1950a258-227b-4e31-a9cf-717495945fc2'。你可以嘗試用這個替換你的AAD客戶端ID嗎? –
您可能想看看這篇文章,其中詳細介紹了您正在嘗試執行的操作:https://blogs.msdn.microsoft.com/kaevans/2016/10/31/using-azure-keyvault-to-商店祕密/ – nashwan