我正在尝试使用内部 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 测试服务器上工作,但在其他地方没有。
我可以尝试任何想法吗?