gpt4 book ai didi

c# - VM 上的 Azure Key Vault 访问引发 OAuth 异常 : The ClientId option must be provided

转载 作者:行者123 更新时间:2023-12-03 04:02:14 26 4
gpt4 key购买 nike

我正在尝试向在 Azure 中的 VM 上运行的 .Net Core 应用添加 Azure Key Vault 访问权限。我觉得这应该是一个简单的场景,但是当应用程序启动时我遇到了麻烦。似乎有些东西配置不正确,或者可能是我使用了错误的依赖项。

VM 在 Azure 中运行,具有系统分配的托管标识,并且具有对 key 保管库的获取/列出访问权限。该应用程序是一个 .Net core 3 MVC 应用程序,我正在尝试从 key 保管库加载配置。

当应用程序启动时,应用程序窗口日志中会显示一系列三个错误。它们看起来都像:

System.ArgumentException: The 'ClientId' option must be provided. (Parameter 'ClientId')<br/>
at Microsoft.AspNetCore.Authentication.OAuth.OAuthOptions.Validate()<br/>
at Microsoft.AspNetCore.Authentication.RemoteAuthenticationOptions.Validate(String scheme)<br/>
at Microsoft.AspNetCore.Authentication.AuthenticationBuilder.<>c__DisplayClass4_0'2.<AddSchemeHelper>b__1(TOptions o)

我在代码中尝试了一些不同的操作,但仍然遇到相同的错误。这是在 Program.cs 文件中,为了简洁起见,我删除了环境检查。

      public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureAppConfiguration((context, config) =>
{
var builtConfig = config.Build();
var azureServiceTokenProvider = new AzureServiceTokenProvider();
var keyVaultClient = new KeyVaultClient(
new KeyVaultClient.AuthenticationCallback(
azureServiceTokenProvider.KeyVaultTokenCallback));

config.AddAzureKeyVault(
$"https://{builtConfig[keyVaultEnvironmentConfigName]}.vault.azure.net/",
keyVaultClient,
new DefaultKeyVaultSecretManager());
})
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
});

有什么想法吗?谢谢!

最佳答案

可能有两件事出了问题。

  1. 其中一个位于您的 appsetting.json 或 appsetting.Production.json (如果您要覆盖的话)应该具有如下所述的正确值{"keyVaultEnvironmentConfigName": "您的 key 保管库名称"}注意:如果您在本地运行,除非您在 AD 中注册了 lo​​calhost url,否则它将无法工作。因为在 Azure 门户中您已经配置了 WebAPP url,所以本地运行对于相同的 clientid 不起作用。
  2. 如果上述配置键名称和值正确,则托管身份配置不正确。

注意:如上所述,如果您在本地环境中运行,请确保在 Azure AD 中添加 localhost url 或在 DevMode 中绕过 KeyVault。

关于c# - VM 上的 Azure Key Vault 访问引发 OAuth 异常 : The ClientId option must be provided,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61718032/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com