【发布时间】:2011-12-05 09:22:56
【问题描述】:
我们有一个使用 Active Directory 进行身份验证的应用程序。这包括应用程序需要的 Kerberos 多跳委派。它由一个 WinForms 客户端组成,通过 WCF 4.0 连接到一组 Web 服务,托管在 IIS 7.5 下。
通常,这一切都安装在我们客户自己的硬件上,并与他们的 AD 集成。但是我们最近设置了在私有云上运行的 Web 服务(可通过 IPSec VPN 访问)并具有自己的 AD 实现,并且我们可以在我们的 AD 和客户 AD 之间设置单向 Active Directory 信任,那么一切都很好,并且应用程序按设计工作。
但是,我们有一些客户在 Small Business Server 上运行他们的 AD,因此无法建立信任。
鉴于以下约束...
- 对应用程序进行重大重写以不使用 AD/Kerberos 是不可行的选择。
- 强制客户从 SBS 迁移到完整的 Windows Server AD 不是一个可行的选择。
...我正在寻找解决这个问题的方法,这些方法需要对核心应用程序进行尽可能少的更改。
我可以看到 3 个显而易见的选项:
- Active Directory 证书服务 - 客户使用我们的 AD 颁发的证书,该证书链接到我们域中的 AD 帐户。但不确定这是否会允许 Kerberos 代表团。
- Active Directory 联合服务 - 听起来它也可以完成这项工作,但我们以前从未使用过它。
- Active Directory 轻量级 DS - 如果客户要安装它并以某种方式将其链接到他们的 AD 并且我们设置对 LDS 实例的信任,这是否可行?同样,我们以前从未使用过 AD LDS。
有没有人遇到过这种情况或类似情况?
关于 3 条路线中的哪条先往下看,有人有什么建议吗?
还有其他选择吗?
【问题讨论】:
-
遵循以下 Brians 的建议,我现在已经使用证书的组合进行身份验证,并在服务器上进行协议转换以进行委托。而且它也只需要几行新的代码来实现它!
标签: wcf authentication active-directory kerberos