带有ADFS / OWIN的Azure Web App(间歇性MSIS7043:UpdateLoopDetectionCookie)

时间:2015-10-07 20:15:46

标签: asp.net-mvc-3 azure owin azure-web-sites adfs

我跟着this article设置了一个带有ADFS的Azure Web应用程序(使用OWIN而不是WIF),将其添加到现有的MVC3 Web应用程序中。身份验证在本地正常工作,但在部署到Azure Web App后,我得到间歇性的MSIS7042 UpdateLoopDetectionCookie错误(仅访问根站点时,而不是[授权]标记的代码)。依赖方信任没有配置其他证书。本地/天蓝色的RPT配置有完全相同的声明。

之前我曾使用过ADFS(WIF)和Azure云服务,并且必须使用自定义RSA SecurityTokenHandler来保持cookie /令牌加密在会话中保持一致(X509 Cert签名而不是Machine Key)。 MS文章没有提到需要这个,但在获得前几个STS身份验证循环后,我认为这可能是问题所在。我使用自定义X509DataProtectionProvider在OWIN中实现了这一点。

public void ConfigureAuth(IAppBuilder app)
    {

        app.SetDataProtectionProvider(new X509DataProtectionProvider("AppName") );
        app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType);

        app.UseCookieAuthentication(new CookieAuthenticationOptions()
        {
            ExpireTimeSpan = System.TimeSpan.FromMinutes(480)
        });

        app.UseWsFederationAuthentication(
            new WsFederationAuthenticationOptions
            {
                Wtrealm = realm,
                MetadataAddress = metadata,
                Notifications = new WsFederationAuthenticationNotifications
                {
                    AuthenticationFailed = context =>
                    {
                        context.HandleResponse();
                        context.Response.Redirect("Error?message=" + context.Exception.Message);
                        return Task.FromResult(0);
                    }
                }
            });
    }

无论我尝试什么,我都会从ADFS获得循环检测异常。此时我可能会回到WIF。只是不想让这个问题悬而未决。任何建议将不胜感激!

Microsoft.IdentityServer.Web.InvalidRequestException: MSIS7042: The same client browser session has made '6' requests in the last '5' seconds. Contact your administrator for details. 
at          Microsoft.IdentityServer.Web.FederationPassiveAuthentication.UpdateLoopDetectionCookie()   
at Microsoft.IdentityServer.Web.FederationPassiveAuthentication.SendSignInResponse(MSISSignInResponse response)

0 个答案:

没有答案