【问题标题】:DefaultAzureCredential Failing for console app after redirect to localhost -localhost sent invalid response重定向到本地主机后控制台应用程序的 DefaultAzureCredential 失败 - 本地主机发送无效响应
【发布时间】:2021-11-28 07:16:22
【问题描述】:

我正在使用 DefaultCredential 连接以从 azure keyvault 构建配置。

      var secretClient = new SecretClient(new Uri($"https://{keyvaultName}.vault.azure.net/"),
           new DefaultAzureCredential(true) 
           );

      IConfigurationRoot configuration = null;

      configuration = new ConfigurationBuilder().AddJsonFile("appsettings.json")
             .AddEnvironmentVariables()
             .AddAzureKeyVault(secretClient, new PrefixKeyVaultSecretManager(environment))
             .AddUserSecrets<Program>().Build();

这在早期工作,但现在它在交互式浏览器身份验证中失败。 选择帐户后,它正在重定向回 l​​ocalhost 并抛出错误(“localhost sent an invalid response”) 我正在使用 "Azure.Identity" Version="1.4.1" 。我还尝试了最新的 beta 包(1.5.0-beta.4)。 还有 Azure.Security.KeyVault.Secrets" Version="4.2.0"

【问题讨论】:

    标签: azure-active-directory azure-keyvault azure-identity


    【解决方案1】:

    在 Azure 门户中检查应用程序的重定向 URI。您可以在应用程序页面的身份验证下找到它。

    将重定向 URI 设置为 https://login.microsoftonline.com/common/oauth2/nativeclient

    有关重定向 URI 的更多信息:https://docs.microsoft.com/en-us/azure/active-directory/develop/reply-url

    【讨论】:

    • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接的答案可能会失效。
    • 正如您在代码中看到的,我没有使用 clientId 对 keyvault 进行身份验证,因为 keyvault 位于我可以访问的同一租户中。错误消息没有说明重定向 url 是否不正确,而是在选择帐户后显示“无效响应”。相同的代码之前运行良好
    猜你喜欢
    • 2019-03-11
    • 2015-07-28
    • 1970-01-01
    • 2018-10-20
    • 1970-01-01
    • 2012-03-29
    • 2013-06-27
    • 1970-01-01
    • 2018-06-03
    相关资源
    最近更新 更多