4

我们正在考虑使用 WIF 对我们的用户进行身份验证,因此我开始收集一些有关如何以正确方式执行此操作的信息。主要是我们应该如何创建STS。我很难找到一些关于我们的场景的信息,我们有一个“主要”服务,内部和外部的客户都将使用它。

内部客户端将使用 TCP 连接到服务。我们员工使用的桌面客户端应使用其域凭据 (Active Directory) 对服务进行身份验证。除此之外,我们还有少量应用程序使用该服务进行数据处理。我们想为这些应用程序颁发证书。然后,他们将使用该证书通过 STS 进行身份验证,并返回一个包含该应用程序声明的令牌。那可能吗?

外部客户端将通过 HTTP 连接,使用用户名/密码(Web 客户端)或通过类似于上面提到的证书进行身份验证。

这是一个有效的场景吗?您将如何在 WIF 中实现这一点?你能指出一些你认为有帮助的文章吗?我可以通过一个 STS (WCF) 来解决这个问题,还是需要多个?单个 STS 可以处理多种类型的凭据(AD/用户名/证书)吗?

先感谢您。任何帮助都感激不尽。

4

1 回答 1

5

是的,这可以通过 WCF 和 WIF 轻松完成。您只需要一个具有三个 WCF 终结点的 STS 实现或服务。一个端点用于 net.tcp 与 Windows 身份验证,一个端点用于使用证书进行身份验证(这可能是使用 X509 客户端凭据的消息安全性或使用 X509 凭据的 Http 传输安全性),以及另一个用于用户名和密码的端点。您可能想查看 Dominick Baier 的 STS Starter 工具包,我认为他已经在该项目中提供了一个实现。

使用以下两个端点公开 STS 服务是一个问题,

如果您使用 WIF,则不需要 ADFS。ADFS 是与 AD 集成的联合解决方案,并在其上安装 STS。您始终可以实现自己的 STS 并在绑定配置中为 Windows 身份验证公开一个附加端点

谢谢巴勃罗。

于 2010-09-02T15:58:51.070 回答