ADFS - HTTP 请求未经授权,客户端身份验证方案"协商"



我在Server 2012 R2上配置了带有自定义属性存储的ADFS。这导致ADFS调用承载在Windows服务中的WCF服务。调试Microsoft.IdentityServer.ServiceHost.exe时,以下代码抛出一个CommunicationException:

var channel = trustChannelFactory.CreateChannel();
rawToken = channel.Issue(rst, out rstr);
trustChannelFactory.Close();

异常详细信息为:

HTTP请求未经客户端身份验证方案授权"协商"。从服务器接收的身份验证标头为"协商"。

检查上面的rst,我可以看到ADFS正试图调用Windows服务托管的WCF:

net.tcp://<url>:8002/service/endpoint

我确保windows服务正在运行,并通过powershell在TCP 8002上侦听:

netstat -aonp TCP | Select-String 8002
Get-Process -Id  

但奇怪的是,无论Windows服务是否正在运行,我都会收到这个错误。这就像来自ADFS的出站连接在某个地方被阻止了。

我试过关闭Windows防火墙,但没有什么区别。

由于此版本的ADFS不依赖IIS,而且是Windows服务,所以SO上的许多答案都不适用(我认为)。

我的调试技能和ADFS知识已经达到了极限。不幸的是,我没有设置这个系统,我也无法访问那些设置了这个系统的人。

如有任何建议,我们将不胜感激。

事实证明,401 Unauthorized位于ADFShttps://<ADFS_HOST>/adfs/services/trust/13/windowstransport的windows端点上。

这与ADFS配置、证书、权限等无关。

我顺着台阶进去了https://www.risual.com/2011/10/28/adfs-2-0-401-unauthorized-access/在注册表中禁用LookBackCheck,一切都成功了。

相关内容

  • 没有找到相关文章

最新更新