我从客户那里收到了联合元数据端点,用于在 identityserver3 中配置 WsFederationAuthentication。
从开发人员机器上一切正常,例如身份服务器登录重定向到 adfs 登录页面,但是在将解决方案部署到 AWS 弹性 bean stalk(位于私有子网中)之后,当我尝试通过外部(ADFS)登录时收到 504 HTTP 状态代码登录。
我在邮递员中模拟了这种情况。我在开发人员机器中收到 302 响应,但请求永远不会在 AWS ec2 实例中结束(邮递员结果窗格显示“正在加载...”)。
我能够从 AWS ec2 实例浏览联合元数据 URL 和 /adfs/ls 端点。
在 idnetity 服务器日志中,我可以看到以下日志,
请求提供者的外部登录:adfs
触发外部身份提供者的挑战
HTTP 响应
{ "StatusCode": 401, "Headers": { "Content-Type": [ "text/html" ], "Server": [ "Microsoft-IIS/10.0" ], "Content-Length": [ "0" ] }, "Body": "" }
在此之后,网关超时发生(通过 AWS 负载均衡器)。
根据 Microsoft.Owin.Security.WsFederation.WsFederationAuthenticationHandler.cs 中的代码,来自 ApplyResponseChallengeAsync() 方法的重定向响应应该使用具有 adfs 登录页面 URL 的位置标头生成。但是,这并没有发生。
我在 HTTPError.Log 中看到以下错误。
GET /identity/external?provider=adfs&signin=699036641a8b2b6ddccea61bc8c1f715 -- 1 Connection_Abandoned_By_ReqQueue DefaultAppPool
我在事件查看器日志中没有看到与上述 HTTP 错误相关的任何事件。
我搜索了上述错误,但解决方案没有针对这个问题产生任何好的结果。