此文档描写叙述了怎样配置Hadoop HTTP web控制台,去要求用户认证。
默认地,Hadoop HTTP web控制台(JobTracker, NameNode, TaskTrackers 和 DataNodes)不须要不论什么认证就同意訪问。
与Hadoop RPC相似, Hadoop HTTP web控制台能够被配置为须要使用HTTP SPNEGO协议认证(由FireFox或IE支持)。
还有,Hadoop HTTP web控制台同等地支持Hadoop's Pseudo/Simple 认证。假设此选项启用了,用户必须在首次浏览器交互中使用user.name查询參数指定它们的username。比如: http://localhost:50030/jobtracker.jsp?user.name=babu
.
假设一个用户认证机制被Hadoop HTTP web控制台要求,也能够实现一个插件支持动态认证机制(转到Hadoop-auth看很多其它写AuthenticatorHandler的细节)
下一部分描写叙述了怎样配置一个Hadoop HTTP web控制台,去要求用户认证。
以下的属性应该在集群中的全部节点上的core-site.xml中。
hadoop.http.filter.initializers
: 加入�到这个属性 org.apache.hadoop.security.AuthenticationFilterInitializer
初始化类。
hadoop.http.authentication.type
: 定义用于Hadoop HTTP web控制台的认证。
支持的值是: simple
| kerberos
| #AUTHENTICATION_HANDLER_CLASSNAME#
.默认值是 simple
.
hadoop.http.authentication.token.validity
: 声明一个认证token在必须被更新之前合法的时间是多长(秒)。默认值是36000.
hadoop.http.authentication.signature.secret.file
: 用于签发认证token的签名password文件。相同的password应该用在集群中的全部节点上,JobTracker, NameNode, DataNode 和TastTracker. 默认值是 $user.home/hadoop-http-auth-signature-secret
.
重要: 这个文件应该仅仅对由执行这些守护进程的Unix用户可读。
hadoop.http.authentication.cookie.domain
: 用于存放认证token HTTP cookie 的域。为了认证可以在集群中全部节点上正确地工作,域必须正确地设置。这里没有默认值,HTTP cookie不会与仅仅有一个域的主机发出的HTTP cookie 工作。
重要: 当使用IP地址时,浏览器忽略设置的cookie。由于这个设置工作正常的条件是集群中的全部节点必须配置为用hostname.domain 生成URL。
hadoop.http.authentication.simple.anonymous.allowed
: 声明当使用'simple' 认证时,同意全部的匿名訪问。默认值是true.
hadoop.http.authentication.kerberos.principal
: 当使用'kerberos'时认证时,声明为HTTP终端使用的认证规则。规则的简称必须是HTTP
per Kerberos HTTP SPNEGO 式的声明。默认值是 HTTP/_HOST@$LOCALHOST
, 假设当前的被HTTPserver的绑定地址替换了就用_HOST。
hadoop.http.authentication.kerberos.keytab
: 用于HTTP终端的包括认证规则凭证的keytab文件的位置。默认值是$user.home/hadoop.keytab
.i。