【发布时间】:2014-04-26 21:48:35
【问题描述】:
场景:我们有一个位于 Windows Active Directory 域中的服务器,它实现了一个 Web 服务 API,用 WCF 实现,并通过 HTTPS 上的 IIS 8 公开。向 Web 服务发出请求的客户端不位于域中。但是,它们应该通过 SSL 客户端证书映射到 AD 用户。即,在发出 HTTP 请求时,它们包含一个客户端证书,我希望将该证书映射到相应的 AD 用户。
我知道 IIS 支持两种客户端证书身份验证方式,IIS Client Certificate Authentication 和 Client Certificate Authentication using Active Directory。我真的很想在我们的场景中使用 AD 方法,因为它可以更轻松地管理客户端证书(我们可以将证书映射到 AD 中的用户而不是 IIS 配置中)。
但是,上面链接的文档说,
[使用 Active Directory 进行客户端证书身份验证] 要求 IIS 7 服务器和客户端计算机是 Active Directory 域的成员 [...]
这表明我们不能使用这种方法,因为我们的客户端计算机不是 AD 域的一部分。但是,这对我来说真的没有意义。服务器怎么知道发出 HTTPS 请求的客户端是否在同一个域中?
那么,问题来了:我们能否通过 Active Directory 与 AD 域外的客户端一起使用客户端证书身份验证?
【问题讨论】:
标签: wcf authentication iis active-directory client-certificates