【问题标题】:ERR_HTTP2_PROTOCOL_ERROR after authentication is done身份验证完成后的 ERR_HTTP2_PROTOCOL_ERROR
【发布时间】:2020-10-19 15:35:44
【问题描述】:

我正在尝试使用内部 IdP 在 .NET Core 3.1 Web 应用程序上使用 ITfoxtec.Identity.Saml2.MvcCore。

它在我们的测试服务器(Windows Server 2012,托管在 IIS 中)上运行良好,但我无法让它在任何其他服务器上运行。

会发生这样的事情:

对网站的初始调用被正确识别为未经身份验证的调用,并且用户被发送到用户照常登录的 IdP。然后将 SAML 令牌发送回 Web 应用程序断言消费者服务,在该服务中,一切似乎都在执行其应有的工作,saml2AuthnResponse.Status 具有状态码 Saml2StatusCodes.Success 并且日志文件显示“AuthenticationScheme:saml2 已登录”。然后它读取 ReturnUrl 参数并记录类似“Executing RedirectResult”的内容,但随后它就停止了。日志文件中没有任何内容,IIS 日志中没有任何内容。用户被消息满足

This site can’t be reached ... ERR_HTTP2_PROTOCOL_ERROR

简而言之,每个具有 [Authorize] 属性的控制器都会给出 ERR_HTTP2_PROTOCOL_ERROR 错误。当我删除所有 [Authorize] 属性时,应用程序运行良好,尽管没有身份验证。

我还尝试了 ITfoxtec.Identity.Saml2 的 github-page 中的示例 TestWebAppCore-application,它给出了相同的错误。它可以在我们 2012 年的测试服务器上运行,但在其他任何地方都没有。

有什么我可以尝试的想法吗?

【问题讨论】:

    标签: itfoxtec-identity-saml2


    【解决方案1】:

    我认为您需要跟踪调用以查看浏览器和服务器之间发送的实际 http 请求和响应。我通常使用 Fiddler 来跟踪请求/响应。请记住启用 Fiddler 以进行 https 跟踪。

    我的第一个想法是问题可能与 cookie 有关。但这只是猜测……

    【讨论】:

      【解决方案2】:

      您可能正在做某事,我们在服务器上禁用了 http/2,而是收到以下消息:

      Bad Request - Request Too Long
      HTTP Error 400. The size of the request headers is too long.
      

      它为 SAML 数据使用 5 个 cookie 块,总共 19941 个字节,这有点多。我试图让应用程序将会话数据保存在经典会话对象中,但我似乎无法让它工作。

      这是我添加到 StartUp.cs 的内容:

      在配置服务中:

      services.AddMvc()
          .AddSessionStateTempDataProvider();
      
      services.AddSession(options =>
          options.Cookie.IsEssential = true
      );
      
      services.Configure<CookiePolicyOptions>(options =>
      {
          options.CheckConsentNeeded = context => false;
          options.MinimumSameSitePolicy = SameSiteMode.None;
      });
      

      在配置中:

      app.UseSession();
      

      但它仍然用 cookie 填充标题。我究竟做错了什么?是否有另一种方法可以使会话 cookie 更小?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-01-22
        • 2015-07-10
        • 1970-01-01
        • 1970-01-01
        • 2018-05-29
        • 2019-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多