不同服务之间的Kerberos委派

sun*_*lec 3 apache authentication webserver kerberos httpd.conf

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

在此输入图像描述

Heres the scenario: Server A takes the request from Browser does some operations and creates a new request and sends it to Server B. User X is authenticated on Server B, but User Y is not (and it is not supposed to). Since A is creating a new request, B is thinking that Y has sent the request and so denying it. Removing Server A is not an option. How do I solve this. Can you please help?

gre*_*ker 5

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

代表团:

  • 服务器A接收来自浏览器的请求,包含TGS票证.
  • 服务器A具有正确的用户名/密码组合(存储在用户代表服务的Kerberos数据库中),因此它可以打开故障单并验证此用户
  • 服务器A向KDC请求委派的票证,并附带从用户收到的票证.
  • KDC(例如AD)检查是否可以委派(在Active Directory中,代表服务器A的用户必须被授予委托权.在使用ADC上的命令ktpass生成密钥表文件后,此选项卡变为可见.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