WebHDFS REST API的Hadoop委派是否与Kerberos SPNEGO有依赖关系?

时间:2016-12-01 12:44:31

标签: kerberos hadoop2 webhdfs

根据 WebHDFS REST API

的documentataion

https://hadoop.apache.org/docs/r2.7.3/hadoop-project-dist/hadoop-hdfs/WebHDFS.html#Delegation_Token_Operations

当安全性存在时有提及有2种机制

启用安全性时使用Kerberos SPNEGO进行身份验证

在启用安全性时使用Hadoop委派令牌进行身份验证

如果我选择使用第二个选项,例如在启用安全性时使用Hadoop委派令牌进行身份验证

这是否意味着它可以在hadoop设置中没有Kerberos配置的情况下运行?

在这种情况下,我是否必须在我的hadoop配置中设置Kerberos?

1 个答案:

答案 0 :(得分:2)

将事情置于上下文中:通常,当您启动HTTP会话时使用SPNEGO,然后以某种方式缓存您的凭据以避免客户端,服务器和Kerberos之间的复杂轮次三向通信KDC。

AFAIK,所有Hadoop UI和REST API在初始SPNEGO之后使用已签名的cookie,除了WebHDFS之外,它对您来说完全透明。

现在,使用WebHDFS,您必须明确管理“凭据缓存”:

  1. 使用GET ?op=GETDELEGATIONTOKEN开始您的会话 - 您不提供任何凭据,因此它将触发SPNEGO身份验证,然后生成Hadoop委派令牌服务器端
  2. 从JSON结果中检索该委托令牌
  3. 通过将&delegation=XXXXXX附加到所有网址
  4. ,使用该令牌在以下GET / POST / PUT中显式显示会话凭据

    结论:是的,您必须在客户端设置Kerberos配置。委托令牌仅允许您最小化身份验证开销。