WCF 自托管:HTTP 请求禁止身份验证方案匿名
WCF self-hosted: http request forbidden for authentication scheme anonymous
情况:
我们在新的 Windows Server 2016 机器(机器 X)上安装了自托管 WCF 服务。此服务调用另一台 Windows Server 2016 机器(机器 Y)上的 Tibco BW 网络服务。
当 WCF 服务 运行 与用户 A(内置管理员的一部分)一起成功处理所有请求。当服务 运行 作为用户 B(服务用户)时,我们收到以下消息:"http request forbidden for authentication scheme anonymous"
basicHtttpBinding 下的两个服务运行。
我们能够在具有不同用户的不同 windows 服务器 2016 环境中成功进行相同的安装。
目前已完成的步数:
- 我们比较了当服务为 运行 时与用户 A 和用户 B 发送的包,发现当服务为 运行 时与用户 B 没有包到达机器 Y .
- 我们禁用了两台机器上的 Windows 防火墙,但这并没有改变行为。
- 我们通过gpresult比较了用户A和B的权限和政策,但在网络访问或http相关政策方面没有发现任何差异。
我们的推测
我们怀疑用户 B 缺少某种特权,无法像用户 A 那样发出 http 请求。
问题
- 是否有管理此类行为的组策略?
- 哪些设置可以阻止用户发送这些请求?
- 尽管没有使用任何安全设置,为什么我们会收到此错误消息?
谢谢
我们进行了 wireshark 分析,发现仍然存在一项要求服务帐户将所有流量重定向到代理服务器的策略。这个代理很可能不知道如何处理 WCF 流量,所有请求都会导致我们观察到的错误消息。
一旦我们更改策略以允许阻止服务用户使用代理,请求就会按预期进行,并与其他管理员用户观察到的一样。
情况:
我们在新的 Windows Server 2016 机器(机器 X)上安装了自托管 WCF 服务。此服务调用另一台 Windows Server 2016 机器(机器 Y)上的 Tibco BW 网络服务。
当 WCF 服务 运行 与用户 A(内置管理员的一部分)一起成功处理所有请求。当服务 运行 作为用户 B(服务用户)时,我们收到以下消息:"http request forbidden for authentication scheme anonymous"
basicHtttpBinding 下的两个服务运行。
我们能够在具有不同用户的不同 windows 服务器 2016 环境中成功进行相同的安装。
目前已完成的步数:
- 我们比较了当服务为 运行 时与用户 A 和用户 B 发送的包,发现当服务为 运行 时与用户 B 没有包到达机器 Y .
- 我们禁用了两台机器上的 Windows 防火墙,但这并没有改变行为。
- 我们通过gpresult比较了用户A和B的权限和政策,但在网络访问或http相关政策方面没有发现任何差异。
我们的推测
我们怀疑用户 B 缺少某种特权,无法像用户 A 那样发出 http 请求。
问题
- 是否有管理此类行为的组策略?
- 哪些设置可以阻止用户发送这些请求?
- 尽管没有使用任何安全设置,为什么我们会收到此错误消息?
谢谢
我们进行了 wireshark 分析,发现仍然存在一项要求服务帐户将所有流量重定向到代理服务器的策略。这个代理很可能不知道如何处理 WCF 流量,所有请求都会导致我们观察到的错误消息。
一旦我们更改策略以允许阻止服务用户使用代理,请求就会按预期进行,并与其他管理员用户观察到的一样。