我已经正确配置了Active Directory kerberos和SPNEGO,但它始终使我感到困惑,如何将服务SPN设置为仅允许某些域用户访问某些服务。例如,
HTTP/server.domain.com@DOMAIN.COM
SPN上方就像是客户端(浏览器,Java等)如何与要访问的服务进行通信的最常用的基本示例。
用户A可以使用该SPN来访问绑定到该SPN的服务。这也意味着用户B也可以使用该SPN来访问服务。如果我想确保用户B即使知道SPN也无法访问该服务怎么办?到目前为止,我还没有找到限制某些域用户服务的方法
第二种情况甚至更糟,我运行了两个不同的服务,并且都具有自己的SPN(如下所示)
SPN1 = HTTP/server1.domain.com@DOMAIN.COM
SPN2 = HTTP/server2.domain.com@DOMAIN.COM
,我有两个用户,user1和user2。我只希望user1分别访问服务1和user2分别访问服务2。但这似乎几乎是不可能的,因为两个客户端在同一个活动目录中都是合法的,并且可以请求上述任何SPN的服务票证。我真的对此感到困惑。
感谢您提供任何指导或指导。
谢谢你。
答案 0 :(得分:1)
Kerberos用于身份验证。
应该有一些其他服务可以做出授权决定允许哪个服务授予谁。
关于WebSphere,请看授权提供者
SPN只是一个前端服务名称,不会用于授权。 最终用户的AD主体名称将用于授权,而不是SPN。 在大多数情况下,所有用户的SPN都是相同的(如果前面有负载均衡器等,则它可能多个SPN)。 希望这对您有所帮助。