不同服务之间的Kerberos委派

时间:2015-09-03 10:08:46

标签: apache authentication webserver kerberos httpd.conf

我们使用httpd webservers进行以下设置,如下所示:

enter image description here

见下: 服务器A 从浏览器接收请求执行某些操作并创建新请求并将其发送到服务器B 用户X 服务器B 上进行了身份验证,但用户Y 不是(并且不应该)。由于A正在创建新请求,因此B认为Y已发送请求并因此拒绝该请求。删除服务器A不是一个选项。我该如何解决这个问题。你能帮忙吗?

1 个答案:

答案 0 :(得分:5)

这可以通过委托来解决:服务器A应该在向服务器B发出请求时将自己验证为用户X.

团:

  • 服务器A从浏览器接收包含TGS票证的请求。
  • 服务器A具有正确的用户名/密码组合(存储在用户代表服务的Kerberos数据库中),因此它可以打开故障单并对此用户进行身份验证
  • 服务器A向KDC请求委托票证,并附带从用户附加的票证。
  • KDC(例如AD)检查是否可以委派(在Active Directory中,表示服务器A的用户必须被授予委派权限。在ADC上使用命令ktpass生成keytab文件后,此选项卡变为可见。 AD还检查用户帐户是否允许授权其票证 - 默认情况下已启用,可以禁用某些特殊敏感用户)
  • KDC为服务器A提供委派的Kerberos票证。服务器A使用它登录服务器B.
  • 服务器B接收来自服务器A的请求,该请求带有委托的票证,表明它是登录的用户X.

Kerberos委托有时被称为"双跃点":http://blogs.technet.com/b/askds/archive/2008/06/13/understanding-kerberos-double-hop.aspx

Active Directory管理员可能不喜欢给予服务A委托票证的权利(即以用户X身份登录域中的任何其他服务)。这就是为什么一个"约束授权"几年前推出。它使AD管理员能够让服务A仅作为用户X登录到服务器B.他们可以在代表服务A的activeDirectory帐户上设置它。

http://windowsitpro.com/security/how-windows-server-2012-eases-pain-kerberos-constrained-delegation-part-1