WCF Windows 身份验证中的 Active Directory 使用

Active Directory usage in WCF Windows authentication

我们有一个使用 Windows 身份验证的 WCF 服务(也有选项 AllowNtlm=true)。文档说 Windows 身份验证使用 Active Directory 对用户进行身份验证,但没有描述如何,我需要弄清楚。 WCF 如何使用 Active Directory?

这是我们使用的绑定配置:

<security mode="TransportWithMessageCredential">
        <transport clientCredentialType="None" />
        <message clientCredentialType="Windows" establishSecurityContext="false" />
</security>

如果有人感兴趣,这就是我找到的。

如果您将客户端凭据类型设置为 Windows,WCF 使用名为 Windows SSPI 的东西进行 Windows 身份验证。

Windows SSPI 向域控制器发出 Kerberos 或 CLDAP 请求。示例:

Kerberos:AS-REQ 请求

CLDAP:

searchRequest(..) "<ROOT>"

(&(&(&(&(&(&(DnsDomain=...)(Host=...))(User=...))(AAC=...))(DomainGuid=...))(NtVer=...))(DnsHostName=...))

两者都可以使用 Wireshark 观察(寻找 Kerberos5 或 CLDAP 协议请求)