首先,我是主题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重写模块的反向代理 .

我正在寻找上述问题的解决方案 .

提前致谢 .