使用WCF跨2个不受信任的域进行Kerberos委派

时间:2012-03-13 20:32:57

标签: wcf kerberos delegation

我在域A中有一个应用程序,并希望它使用域B凭据来访问域B内容。 这些域名不受信任。是否可以挑战域A中的用户,并让他们输入域B的凭据?然后使用这些凭据在域B中进行身份验证。这意味着我们绕过域A的Kerberos分发中心(KDC)。

我在单个域内工作没有问题,这意味着冒充受挑战的用户并保持模拟委派级别。但是,MS文档说,域A中的应用程序将使用其KDC发出票证(或未能发票),这将导致我在域B中的服务降至NTLM。

是否可以强制我在域A中的服务使用域B的KDS?我可能会离开这里。

该体系结构是Microsoft WCF服务。

谢谢, 凯文

1 个答案:

答案 0 :(得分:0)

快速回答是否定的是,如果没有2个域具有某种程度的信任,您无法跨域传递凭据。

但是,我通过使用asp.net表单身份验证解决了这个问题。当来自域A的用户凭据失败时,我有效地让他们从域B输入凭证并将它们重定向到“身份验证”MVC控制器,该控制器刮擦用户身份,然后在Asp.Net表单身份验证cookie中对其进行加密。这将在响应标头中返回。所有后续请求都是使用此cookie进行的,我在会话cookie中检查经过身份验证的用户。不像代表团那样优雅,但它有效。