我正在尝试编写一个简单的应用程序来使用我自己的加入域的凭据访问 Azure KeyVault。我不知道这是否是凭据部分或我如何访问 KeyVault,但我不断收到“无效的 URI:无法确定 URI 的格式”异常。我可以使用 Azure PowerShell cmdlet 访问 KeyVault,但不能使用 C#。
这是我的代码:
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。