了解hadoop客户端api如何与kerberos结合

vaj7vani  于 2021-05-29  发布在  Hadoop
关注(0)|答案(2)|浏览(399)

usergroupinformation类有一个loginuserfromkeytab方法,该方法采用用户主体和keytab文件的名称。您没有指定服务主体。我认为kerberos需要服务主体。有人能填补我所缺的空白吗?

mxg2im7a

mxg2im7a1#

在kerberised集群中,有两种类型的帐户-简单用户和用户服务。从技术Angular 看,它们是相同的,由三个部分组成:初级/instance@realm. 但是简单用户通过提供主名称和密码进行身份验证。它可以配置为使用集群kdc,也可以访问受信任关系中的activedirectorykdc。对于用户服务,使用了一种新的方法。这意味着管理员将创建keytab文件,其中包含对其有效的原则列表。您可以通过以下方式获得keytab中的原则:

klist -kt path_to_keytab

使用loginuserfromkeytab,您希望使用keytab文件将kerberos票证获取给当前用户的某个服务。作为参数,您应该提供keytab的路径和keytab中服务原则的名称。如果成功,则当前用户或执行上下文所有者将获得具有访问服务所需的所有权限的票证

jdgnovmf

jdgnovmf2#

afaik“login”方法只负责客户端的初始用户身份验证
连接到kdc
Assert它是“principal”,接受质询,使用加密密码响应(这就是keytab文件中的内容)
检索显示为的票证授予票证(tgt) krbtgt/REALM@REALM 然后每个hadoopapi都在服务器端管理自己的授权
客户:
在连接时显示tgt,作为身份验证的证明
服务:
检查该负责人是否被列入黑名单
连接到kdc以检查tgt是否确实有效,然后生成适当的服务票证(以便进一步的客户端服务通信可以跳过到kdc的往返)
基于可插入授权库检查主体属于哪些“组”(例如,请参见“permissions>groupmapping”下的hdfs文档)
所有权限检查都基于主体名称和组名称

相关问题