ADFS - HTTP 请求未经客户端身份验证方案授权 'Negotiate'
ADFS - The HTTP request is unauthorized with client authentication scheme 'Negotiate'
我在 Server 2012 R2 上配置了一个自定义属性存储的 ADFS。这会导致 ADFS 调用托管在 Windows 服务中的 WCF 服务。在调试 Microsoft.IdentityServer.ServiceHost.exe
时,以下代码抛出 CommunicationException
:
var channel = trustChannelFactory.CreateChannel();
rawToken = channel.Issue(rst, out rstr);
trustChannelFactory.Close();
异常详情为:
The HTTP request is unauthorized with client authentication scheme
'Negotiate'. The authentication header received from the server was
'Negotiate'.
检查上面的 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 在 ADFS https://<ADFS_HOST>/adfs/services/trust/13/windowstransport
的 windows 端点上 https://<ADFS_HOST>/adfs/services/trust/13/windowstransport
。
并且与 ADFS 配置、证书、权限等无关。
我按照 https://www.risual.com/2011/10/28/adfs-2-0-401-unauthorized-access/ 中的步骤在注册表中禁用了 LookBackCheck,一切正常。
我在 Server 2012 R2 上配置了一个自定义属性存储的 ADFS。这会导致 ADFS 调用托管在 Windows 服务中的 WCF 服务。在调试 Microsoft.IdentityServer.ServiceHost.exe
时,以下代码抛出 CommunicationException
:
var channel = trustChannelFactory.CreateChannel();
rawToken = channel.Issue(rst, out rstr);
trustChannelFactory.Close();
异常详情为:
The HTTP request is unauthorized with client authentication scheme 'Negotiate'. The authentication header received from the server was 'Negotiate'.
检查上面的 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 在 ADFS https://<ADFS_HOST>/adfs/services/trust/13/windowstransport
的 windows 端点上 https://<ADFS_HOST>/adfs/services/trust/13/windowstransport
。
并且与 ADFS 配置、证书、权限等无关。
我按照 https://www.risual.com/2011/10/28/adfs-2-0-401-unauthorized-access/ 中的步骤在注册表中禁用了 LookBackCheck,一切正常。