首先,我是主题ADFS和反向代理的新手 . 目标是为SPA Web应用程序进行单点登录OAuth2身份验证 .
我有一个名为“Server-A”的内部ADFS服务器,它位于“Domain-A”上,一个名为“Server-B”的Web服务器位于“Domain-B”上 . 我还有一个名为“Server-C”的代理服务器 . 现在,如果任何用户想要访问我的Web服务器-B的任何资源,那么他们需要首先通过ADFS(Server-A)进行身份验证,此ADFS调用通过代理Server-C进行 .
问题 -
如果我试图直接访问ADFS服务器(没有代理),那么用户能够登录,我得到令牌和声明两者 . 但是,如果我尝试通过代理访问,那么当发回以下错误的令牌(在ADFS事件日志中找到)时 -
Encountered error during federation passive request.
Additional Data
Protocol Name:
wsfed
Relying Party:
Exception details:
System.ArgumentNullException: Value cannot be null.
Parameter name: encodedGenericRequest
at Microsoft.IdentityServer.Web.Protocols.GenericProtocolRequest..ctor(String encodedGenericRequest)
at Microsoft.IdentityServer.Web.Protocols.WSFederation.WSFederationProtocolHandler.GetOriginalRequestFromResponse(ProtocolContext context)
at Microsoft.IdentityServer.Web.PassiveProtocolListener.ProcessProtocolRequest(ProtocolContext protocolContext, PassiveProtocolHandler protocolHandler)
at Microsoft.IdentityServer.Web.PassiveProtocolListener.OnGetContext(WrappedHttpListenerContext context)
我在IIS上使用ADFS 3.0和Window Server 2012 R2以及使用ARR和URL重写模块的反向代理 .
我正在寻找上述问题的解决方案 .
提前致谢 .