【问题标题】:How do you set the AzureAD redirect url when using Microsoft.Identity.Web使用 Microsoft.Identity.Web 时如何设置 AzureAD 重定向 url
【发布时间】:2020-08-11 09:03:42
【问题描述】:

我有一个小应用程序设置,它使用蓝/绿部署策略。在本地运行时一切正常,但是一旦部署,登录就会进入重定向循环,直到浏览器抛出 400.15 错误。问题似乎是因为请求与应用程序 url 一起发送但重定向 url 指向本地主机的反向代理。下面是我被定向到的示例 url,您会注意到 redirect_uri 指向 localhost 而不是 example.com

https://example.com/b4e19cf5-ed91-44d3-81ce-70c848fa6841/oauth2/v2.0/authorize?client_id=CLIENT_ID&redirect_uri=http%3A%2F%2Flocalhost%3A8081%2Fsignin-oidc&response_type=id_token&scope=openid%20profile&response_mode=form_post&nonce=REALLY_LONG_STRING&x-client-SKU=ID_NETSTANDARD2_0&x-client-ver=5.5.0.0

我能够找到一些答案 here 但是这是在 Microsoft.Identity.Web nuget 包存在之前的解决方案。现在建议在启动类中使用 .AddSignIn() 扩展名,我不确定如何添加 git 问题中引用的属性。

【问题讨论】:

  • 我看了一遍,似乎更多的是处理代理的实际配置以接收请求。我的配置很好并且正在工作。有一次我尝试添加 AzureAD 身份验证部分,事情就失败了。基本上情况是请求进入example.com,然后转发到localhost:8080,该站点意识到它没有经过身份验证并到达login.microsoft.com,但重定向url如上所示。发生某种不匹配会导致重定向循环,直到引发错误
  • 我们遇到了类似的问题,但 AzureAD 没有。关键点是,您的 asp 核心应用程序需要知道正确的主机名和方案才能生成正确的重定向 uri。这不能在反向代理后面开箱即用,您需要按照链接文档中的说明启用它。您可以创建一个回显Request.Host, Request.Scheme 的测试操作,它应该输出example.com。如果没有,请检查转发的标头中间件。

标签: asp.net-core web-applications asp.net-core-webapi


【解决方案1】:

我认为这应该通过 htts://github.com/AzureAD/microsoft-identity-web#115 解决(即将在 Microsoft.identity.Web 中实现)

我还在这个 GitHub 问题中提供了解决方法:https://github.com/AzureAD/microsoft-identity-web/issues/115#issuecomment-620527830

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-08-09
    • 2019-09-13
    • 2011-01-22
    • 2017-06-16
    • 1970-01-01
    • 2021-08-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多