WCF 有一个丰富的安全模型,我希望每个人都能同意这一点。我最近遇到了一种情况,我们的客户端应用程序(基于 WCF 的应用程序利用域内的用户凭据)需要与我们必须部署到域和控制之外的数据中心的服务进行通信。因此,这破坏了我们的单点登录模型,我想知道你们中是否有人成功地将安全模型扩展到域之外的服务。
我们的身份模型依赖于 IIdentity 和 IPrincipal 类(不是 WindowsIdentity/WindowsPrincipal),因此使用替代身份实现就可以了。正如我的问题所暗示的那样,我没有答案,我希望你有。我玩弄过的一个解决方案要求客户端以与他们现在相同的方式在我们的域中进行身份验证。作为身份验证的一部分,他们将获得由我们的 CA 签名的 X.509 证书(数据中心将信任该证书)。证书将存放在证书存储中(我相信有一个与 .NET 捆绑在一起,但我不清楚它是否能够在用户偶尔移动的环境中被利用)并在用户请求时创建/提供给用户。
我很感激任何反馈和/或想法。
编辑:
除了远程数据中心之外,我们还有一些服务仍然驻留在我们的数据中心内。我想提供一个只需要单点登录的解决方案(而且,我们的用户每次启动此应用程序时都必须输入他们的用户名和密码)。