Azure AD Web App与僵尸登录重定向循环

时间:2017-03-31 14:09:50

标签: azure redirect azure-web-sites azure-active-directory azure-deployment-slots

我正在开发一个带有dev,staging和bluegreen插槽的Azure应用程序。身份验证由Azure AD处理,用户将重定向到microsoftonline登录页面。我昨天下载了每个插槽的发布配置文件并发布了这三个。我在多台计算机和浏览器上测试了它们,并且所有三个插槽都正常工作。

今天早上我再次测试了它们,只有开发槽工作。 Staging和bluegreen都重定向到登录页面,但一旦通过身份验证,可怕的无限重定向循环就会接管。

该网站需要SSL,但这似乎与问题无关。当插槽工作时,通过HTTP或HTTPS访问它们都正确地重定向到HTTPS。

回复网址也已全部设置,似乎与问题无关。

我不确定接下来要看什么。是否有定期运行的Azure进程可能会影响插槽?为什么插槽会工作几个小时然后停止工作?

循环:(发送请求到[app] - [slot] .azurewebsites.net =>等待[app] - [slot] .azurewebsites.net =>等待login.microsoftonline.com =>发送请求到[app] - [slot] .azurewebsites.net)等等。

1 个答案:

答案 0 :(得分:1)

事实证明,这个问题是由微软Owin为System.Web实现的半知名错误引起的:Katana Bug#197。甚至还有一个nuget包,其唯一目的是提供一个解决方法,直到修复bug。截至2017年4月,nuget包已下载96,000次。

enter image description here

来自Kentor.OwinCookieSaver nuget包的readme.md:

  

“臭虫让Owin设置的cookie神秘地消失了   场合“。

解决方法很简单。添加nuget包Kentor.OwinCookieSaver,然后在处理cookie中间件之前添加KentorOwinCookieSaver中间件。

添加:

app.UseKentorOwinCookieSaver();

在此之前:

app.UseCookieAuthentication(new CookieAuthenticationOptions());

如果您想了解更多内容,请参阅以下链接: Owin Cookie Saver RepoKatana Project Bug #197