2009-06-04 53 views
3

当我们的客户安装我们的软件时,他们经常选择“拆分式安装”,其中服务在一个盒子上运行,数据库在另一个盒子上。这些服务可能会与其他服务交谈,或者数据库可能包含需要与另一个数据库交谈的存储过程。Anonymous,Authenticate,Impersonate和Delegate之间有什么区别,以及为什么Delegate需要Kerberos?

这导致我们进入Kerberos和SetSPN的黑暗世界。

我正准备向支持小组发送一封电子邮件,告知Windows支持的各种认证级别之间的差异,但我意识到我的知识对模拟和委托之间的区别有点模糊,而且我真的对于Kerberos来说,它粗略。

任何人都可以启发我吗?

回答

3

身份验证(authn)是指识别用户。授权(authz)意味着确定经过身份验证的用户拥有哪些权限。匿名用户尚未通过身份验证,但可能对系统拥有某些权限(“访客”)。模仿和委托是同一枚硬币的两面。如果我用你的身份去做某件事,我会冒充你;你委托我冒充你并采取一些行动的权利。

Kerberos(或“路边”)是一种基于令牌的认证方案。也就是说,这是让用户登录并在系统中正确识别(authn)并赋予权限(authz)的一种方式。

每个评论:您不需要限制委派,但它内置到Server 2003中。您还可以使用NTLM,SSL证书映射或摘要式身份验证。但这些都不如Curb强大和灵活。您也可以选择执行约束委派,从而只允许委派某个服务。原因是你需要一个可信的第三方来验证你的令牌。基本上,流程是这样的...

  1. 我验证我的域名。
  2. 该域向我颁发证书。该证书对我提出索赔。
  3. 我采取的证书,并给它的服务,我想允许我做一些事情
  4. 该服务采用的是证书和Valida与受信任的证书颁发机构
  5. 基于与通信的服务给或拒绝访问的吧证书颁发机构

这是一个深刻的问题,你知道。 :)以上是一些good article上述选项。此外,请查看web cast - 这是关于ADFS的,但它在可能有帮助的概念上做得很好。

+0

不错,但我想了解更多的细节...... – 2009-06-05 10:44:03

2

您可能想要在Ken Schaefer's网站上刷新Kerberos。他的Kerberos FAQ岩石。

添加到上面的答案,委派有一台服务器使用客户端的原始身份验证身份验证到另一台服务器。使用Kereberos,这相对容易实现 - 只需让第一台服务器“重新发布”客户端的身份验证令牌即可。替代方案(NTLM)不允许轻松/安全地进行委托,因为它的挑战/响应认证 - 服务器对辅助服务器进行认证的唯一方法是它是否能够对挑战/响应做出响应,并且做到这一点将需要客户的密码。

我有一个ServerFault answer regarding Kerberos Delegation这可能很有趣。

相关问题