gpt4 book ai didi

wcf - 自承载 WCF 数据服务上的 Kerberos 身份验证

转载 作者:太空宇宙 更新时间:2023-11-03 13:28:08 24 4
gpt4 key购买 nike

我们有一个 WCF 数据服务,它在 Windows 服务(不使用 IIS)下自托管,我们目前正在努力使用 SSL 和 Windows 身份验证来保护它。

在使用 netsh 和服务器证书一段时间后,我们现在有了使用 SSL 保护的服务,我们还在我们的 app.config 中的 webHttpBinding 上启用了 Windows 身份验证 - 但是我们现在在尝试进行身份验证时看到一些奇怪的行为某些用户 - 有些用户可以正常登录,其他用户的凭据被拒绝并收到 HTTP 400 错误提示。

经过一些测试和挖掘后,我们可能会遇到 this problem ,其中 Kerberos 使用的身份验证 header 可能大于某些用户允许的最大 header 长度(我认为是 16k)——尽管 IIS 有记录的解决方法,但似乎没有我们可以使用的等效设置对于自托管服务,或者在我们的 app.config 中——除非我遗漏了什么?我们尝试将 maxReceivedMessageSize 和 maxBufferSize 字段设置为它们的最大值以查看这是否会产生任何影响,但显然不会。

绑定(bind)配置:

  <webHttpBinding>
<binding name="DataServicesBinding"
maxReceivedMessageSize="2147483647"
maxBufferSize="2147483647">
<security mode="Transport">
<transport clientCredentialType="Windows" />
</security>
</binding>
</webHttpBinding>

我们已经通过在绑定(bind)中设置 clientCredentialType 来使用 Ntlm 来暂时解决这个问题,但出于显而易见的原因,我们希望尽可能让 Kerberos 工作。

最佳答案

因此,事实证明,这是由于我们的服务没有配置 SPN(服务主体名称)造成的。这可以通过使用 Windows Server 的 setspn 工具来完成。 (有关详细信息,请参阅 this MSDN article。)

应用 SPN 后,Kerberos 身份验证开始按预期工作。

关于wcf - 自承载 WCF 数据服务上的 Kerberos 身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18205295/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com