OWIN OpenID连接客户端陷入重定向循环

时间:2017-07-10 21:48:48

标签: asp.net owin identityserver4 openid-connect

我有应用程序" A"以及最少代码的测试应用程序" B"使用OWIN启动文件指向我们的身份服务器(Thinktecture)。这是在两个启动文件中:

public void Configuration(IAppBuilder app)
    {
        JwtSecurityTokenHandler.InboundClaimTypeMap = new Dictionary<string, string>();
        var identityServerUri = System.Configuration.ConfigurationManager.AppSettings["IdentityServerUrl"].ToString();
        var redirectUri = System.Configuration.ConfigurationManager.AppSettings["RedirectUri"].ToString();
        var postLogoutRedirectUri = System.Configuration.ConfigurationManager.AppSettings["PostLogoutRedirectUri"].ToString();

        app.UseCookieAuthentication(new CookieAuthenticationOptions
        {
            AuthenticationType = "Cookies",
            ExpireTimeSpan = TimeSpan.FromMinutes(120),
            SlidingExpiration = true
        });
        app.UseOpenIdConnectAuthentication(new OpenIdConnectAuthenticationOptions
        {
            ClientId = "myclientid",
            Authority = identityServerUri,
            RedirectUri = redirectUri,
            PostLogoutRedirectUri = postLogoutRedirectUri,
            ResponseType = "id_token",
            Scope = "openid profile email",
            UseTokenLifetime = false,
            SignInAsAuthenticationType = "Cookies"
        });
    }

如果只是在每次清除Cookie后尝试使用多台不同的计算机,这两款应用都会进行身份验证并长时间正常登录。当其他人开始尝试登录时,它可能会继续工作,但最终每个人都会开始陷入重定向循环,在这里您获得身份服务器登录页面,点击登录,然后它会像往常一样返回应用程序但是应用程序根本不运行任何代码(Home / Index是第一个被调用的东西,它永远不会在我有记录设置的地方)它只是重定向回身份服务器,身份服务器检查并看到它们登录并重新定向它们直到最后标头响应变得太大并且它会引发错误的请求错误。此时,以下将解决重定向问题(如果我停止循环以防止标头响应变大):

  1. 浏览最小的应用程序&#34; B&#34;我创建用于测试目的。除了身份服务器之外什么都不做,但之后我可以浏览app&#34; A&#34;没有卡在循环中。
  2. 在IIS中重新启动网站。
  3. 在重定向问题解决问题后清除Cookie并且问题仍然存在,直到我执行上述1或2之后。

    现在我不知道接下来应该在哪里解决这个问题。除了要求其他几个人全天登录之外,我甚至找不到能够始终如一地重新创建问题的方法。问题必须与网站正确,而不是身份服务器?以下是两种情况下请求的示例:

    登录/重定向成功 http://i68.tinypic.com/11gmzaq.jpg

    重定向循环问题(只是一遍又一遍地这样做): http://i64.tinypic.com/mrztc5.jpg

    感谢任何人给予的指导!!!!

0 个答案:

没有答案