UserGroupInformation类有一个loginUserFromKeytab方法,该方法获取用户主体和keytab文件的名称。您没有指定服务主体。我认为Kerberos需要服务主体。有人可以填补我遗漏的空白吗?
答案 0 :(得分:2)
AFAIK“登录”方法仅负责客户端
上的初始用户身份验证krbtgt/REALM@REALM
然后,每个Hadoop API都会管理自己的授权,但在服务器端
客户端:
服务:
答案 1 :(得分:0)
在Kerberised群集中,有两种类型的帐户 - 简单用户和用户服务。从技术角度来看,它们是相同的,由三部分组成 - primary / instance @ REALM。但是简单的用户通过提供原则名称和密码进行身份验证。它可以配置为使用群集KDC,也可以在受信任的关系中访问Active Directory KDC。对于用户服务,使用kaytabs方法。这意味着管理员创建了keytab文件,其中包含对其有效的原则列表。您可以通过以下方式获取keytab中的原则:
klist -kt path_to_keytab
使用loginUserFromKeytab表示希望使用keytab文件将Kerberos票证提供给当前用户的某些服务。作为参数,您应该在keytab中提供keytab的路径和service-principle的名称。如果成功,则当前用户或执行上下文所有者将获得具有访问服务所需的所有权限的票证