【问题标题】:Azure website open ID (Http failed / Https work)Azure 网站打开 ID(Http 失败/Https 工作)
【发布时间】:2016-09-17 15:30:03
【问题描述】:

我的网站使用 Azure Active Directory 来记录具有 OpenId 的人员。

当我尝试使用 https://mywebsite.com 访问我的网站时,我有 Microsoft 登录页面(因为 [Authorize])。我输入了我的凭据,我就进去了。

但是,如果我使用http://mywebsite.com 访问我的网站,我会看到 Microsoft 登录页面,输入我的凭据,然后我会遇到 Microsoft 尝试连接的无限循环。

有人可以向我解释它的来源以及如何使用 http 和 https 访问我的网站吗?

【问题讨论】:

  • 您是否要求您的网站可以通过 HTTP 访问?将 HTTP 与 OpenId / OAuth 一起使用会使您面临中间人攻击,其中访问令牌可以被拦截。

标签: asp.net asp.net-mvc azure azure-active-directory openid-connect


【解决方案1】:

去年我在使用 Identity Server(也是 open id connect)时遇到了类似的问题,也许这对你也有用。问题最终出在底层的 asp.net owin 库中,但有一种解决方法:

将以下内容添加到 Web 项目中的 global.asax.cs 文件中:

protected void Session_Start(object sender, EventArgs e)
{
    // place holder to solve endless loop issue
}

更新:

当我使用 VS 2015 模板创建 MVC 时,它为我连接了我的 Azure Active Directory,但我需要进入并修复回复 url。

如果您进入 manage.windowsazure.com 门户并找到您的应用程序的 Azure Active Directory,请验证回复 URL 是否具有您需要的 azurewebsites.net url。

对于演示应用,我首先添加了以下内容: https://SomeJunkApp.azurewebsites.net/

当我输入http://SomeJunkApp.azurewebsites.net/ 时,这导致了一个无限循环……注意:http 没有's'。

所以我回到天蓝色的活动目录并添加http://SomeJunkApp.azurewebsites.net/作为另一个回复网址并保存。这为我解决了问题。

【讨论】:

  • 感谢您的帮助,但我看到一些人谈论此解决方案,我尝试过,但没有任何改变
  • 糟糕,这对我来说很容易解决。你能添加更多关于你如何实现你的网站的细节吗?例如,您是否关注了一些博客文章或只是使用配置为转到 azure 的 mvc 模板等。这可能会有所帮助。我认为循环将是由于当浏览器登陆需要身份验证的页面时,它将返回 403 或 401 并将用户发送回登录页面。您是如何配置 AD 应用程序的?
  • 对于这一部分,我只是使用了 Visual Studio 2015 Enterprise 提供的带有组织身份验证的 MVC 模式!我从未触及它提供的代码中的任何内容,只是添加了app.UseKentorOwinCookieSaver(); 和 Kento Cookie Saver 包,但没有别的 ^^'
  • 好的,我能够重现它。我将修改我的答案,以包括我刚刚为其所做的修复。
  • Session_start 在使用开放连接 ID 时为我解决了类似的问题。我的问题是在获得身份验证后使用 asp 会话状态时出现无限循环。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-11-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-26
  • 2016-10-06
  • 1970-01-01
相关资源
最近更新 更多