2

我正在尝试找出如何向远程服务器验证 Active Directory 用户。

目标是使用 SPNEGO 接收 Kerberos 票证。然后可以解密 Kerberos 票证并确定用户的身份。

我不明白的是,为什么需要服务器和 Kerberos 之间的访问。由于服务票证包含客户端身份并由 TGS 私钥加密,因此服务器不需要访问 Kerberos TGS。它可以只解密票证并知道用户身份。有人可以向我解释为什么有必要吗?

http://www.adopenstatic.com/cs/blogs/ken/archive/2007/01/16/1054.aspx

如果我想要的只是客户身份,那么任何像身份提供者或 WIF 这样的方案对我来说似乎都没有必要。

4

1 回答 1

1

事实证明这个问题有很多答案......我什至不会尝试在这里涵盖所有答案(部分原因是简洁,部分原因是细节变得模糊而且我不记得全部了:) )。我将介绍我想到的两大类,但同样,还有更多。

首先,您说的是到 DC 的往返行程,就好像这完全是关于 Curb 的,因为 DC 是 KDC。我想这是看待它的一种方式,但整个 Windows 身份验证堆栈不仅仅是验证 Curb 票证。例如,需要 SID 解析之类的东西,以便在做出 authz 决策时对进来的票进行正面或反面。因此,出于多种原因并使用许多协议,通信发生回到 DC(这是一个 KDC 等等),其中一些支持 authz 堆栈,这对大多数人来说通常是有趣的。

其次,对于 Curb,特别是……协议的某些特性使返回 KDC 具有安全价值。PAC 验证是首先想到的。我建议阅读此内容...这是涵盖它的无数帖子之一:http: //blogs.msdn.com/b/openspecification/archive/2009/04/24/understanding-microsoft-kerberos-pac -validation.aspx 我会注意到,在这种情况下,您可以做一些事情来实际禁用此下游-> KDC 流(例如提供主体 TCB)。但是,这些事情不能轻易完成......即,它不仅仅是要考虑的“性能修复”。:)

于 2012-10-13T06:24:04.093 回答