当我们的客户安装我们的软件时,他们经常选择“拆分安装”,其中服务在一个盒子上运行而数据库在另一个盒子上运行。这些服务可能与其他服务通信,或者数据库可能包含需要与另一个数据库通信的存储过程。
这引导我们进入Kerberos和SetSPN的阴暗世界。
我正打算给支持人员发送一封电子邮件,打破Windows支持的各种身份验证级别之间的差异,但我意识到我的知识对于模仿和委托之间的区别有点模糊,我真的很粗略说到Kerberos。
任何人都可以启发我吗?
答案 0 :(得分:4)
Authenticate(authn)表示识别用户。授权(authz)意味着确定经过身份验证的用户拥有的权限。匿名用户尚未经过身份验证,但可能对系统具有一些权限(“访客”)。冒充和代表是同一枚硬币的两面。如果我用你的身份做行动,我冒充你;你授权我冒充你并采取行动。
Kerberos(或“Curb”)是基于令牌的身份验证方案。也就是说,这是一种让用户登录并在系统中正确识别(authn)和授予权限(authz)的方法。
每条评论:您不需要Curb进行委派,但它内置于Server 2003.您还可以使用NTLM,SSL证书映射或摘要式身份验证。但这些都不像Curb那样强大和灵活。您还可以选择执行约束委派,该委派仅允许委派给某些服务。原因是您需要一个受信任的第三方来验证您的令牌。基本上,流程就是这样......
如你所知,这是一个很深的主题。 :)以上是上述某些选项的good article。另外,看看这个web cast - 它是关于ADFS的,但它在可能有用的概念方面做得很好。
答案 1 :(得分:3)
您可能希望在Ken Schaefer's网站上刷新Kerberos。他的Kerberos FAQ岩石。
添加上述答案,委派使用客户端的原始身份验证让一台服务器向另一台服务器进行身份验证。使用Kereberos,这相对容易实现 - 您只需允许第一台服务器“重新发布”客户端的身份验证令牌。替代方案(NTLM)不允许轻松/安全地委派,因为它的质询/响应身份验证 - 服务器向辅助服务器进行身份验证的唯一方法是它是否可以响应质询/响应,并且这样做需要客户的密码。