【问题标题】:What's the difference between Anonymous, Authenticate, Impersonate and Delegate, and why does Delegate need Kerberos?匿名、身份验证、模拟和委托之间有什么区别,为什么委托需要 Kerberos?
【发布时间】:2009-06-04 09:50:38
【问题描述】:

当我们的客户安装我们的软件时,他们通常会选择“拆分安装”,即服务在一个机器上运行,而数据库在另一个机器上。服务可能与其他服务通信,或者数据库可能包含需要与另一个数据库通信的存储过程。

这将我们带入了 Kerberos 和 SetSPN 的阴暗世界。

我正准备向支持人员发送一封电子邮件,详细说明 Windows 支持的各种身份验证级别之间的差异,但我意识到我对模拟和委托之间的区别有点模糊,而且我真的很粗略说到 Kerberos。

谁能赐教?

【问题讨论】:

    标签: windows security kerberos


    【解决方案1】:

    Authenticate (authn) 的意思是识别一个用户。授权(authz)意味着确定一个经过身份验证的用户拥有什么权限。匿名用户尚未经过身份验证,但可能对系统具有某些权限(“访客”)。模拟和委托是同一枚硬币的两个方面。如果我使用您的身份执行某项操作,我会冒充您;你授权我冒充你并采取一些行动。

    Kerberos(或“Kerb”)是一种基于令牌的身份验证方案。也就是说,它是一种让用户登录并在系统中被正确识别 (authn) 和授予权限 (authz) 的方法。

    Per cmets:您不需要 Curb 进行委派,但它内置于 Server 2003。您还可以使用 NTLM、SSL 证书映射或摘要式身份验证。但没有一个像 Kerb 那样健壮和灵活。您还可以选择进行约束委派,它只允许对特定服务进行委派。原因是您需要一个受信任的第三方来验证您的令牌。基本上,流程是这样的......

    1. 我对我的域进行身份验证。
    2. 该域向我颁发了证书。该证书对我提出了要求。
    3. 我把那个证书交给我想让我做某事的服务
    4. 该服务获取该证书,并通过受信任的证书颁发机构 Valida 获得该证书
    5. 服务根据与证书颁发机构的通信授予或拒绝访问权限

    如您所知,这是一个深奥的主题。 :) 这是上面一些选项的good article。另外,请查看web cast——它是关于 ADFS 的,但它在可能有帮助的概念上做得很好。

    【讨论】:

    • ...特别是,如果我想进行委派,为什么需要 Kerberos?还是不行?
    【解决方案2】:

    您可能想在Ken Schaefer's 网站上重新了解 Kerberos。他的Kerberos FAQ 摇滚。

    除了上述答案之外,委托是让一台服务器使用客户端的原始身份验证对另一台服务器进行身份验证。使用 Kereberos,这相对容易实现 - 您只需允许第一台服务器“重新发布”客户端的身份验证令牌。替代方案(NTLM)不允许轻松/安全地进行委派,因为它是质询/响应身份验证 - 服务器向辅助服务器进行身份验证的唯一方法是它是否可以响应质询/响应,并做到这一点需要客户的密码。

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

    【讨论】:

      猜你喜欢
      • 2022-01-20
      • 2011-10-30
      • 2011-07-16
      • 2011-10-12
      • 2011-01-14
      • 1970-01-01
      • 1970-01-01
      • 2011-02-27
      相关资源
      最近更新 更多