首先,我是主题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)
我正在使用ADFS 3.0和Window Server 2012 R2以及反向代理 IIS上的ARR和URL重写模块。
我正在寻找上述问题的解决方案。
提前致谢。