介绍
该文档描述了怎样配置需要用户认证的Hadoop HTTP的web控制台。
默认情况下,Hadoop HTTP的web控制台(JobTracker,NameNode,TaskTracker和DataNode)允许任何形式的认证访问.
类似于Hadoop的RPC,Hadoop的HTTP web控制台可以配置为要求使用HTTP SPENGO协议(支持IE和火狐浏览器)kerberos身份认证。
此外,HTTP web控制台支持Hadoop的伪/简单验证等效。如果该选项启用。用户必须使用user.name查询字符串参数的第一个浏览器交互指定的用户名。
比如:http://localhost:50030/jobtracker.jsp?user.name=babu
。
如果web控制台需要自定义的认证机制,需要实现一个插件来支持代替的认证机制(详细请参考Hadoop的权威指南里的AuthenticatorHandler
)。
接下来描述怎样配置需要用户认证的web控制台。
## 配置
接下来的属性是在集群中所有节点的core-site.xml
文件中的。
hadoop.http.filter.initializers
:增加该属性org.apache.hadoop.security.AuthenticationFilterInitializer
初始化类
hadoop.http.authentication.type
:定义web控制台使用的认证,支持的值为simple
,kerberos
和#AUTHENTICATION_HANDLER_CLASSNAME#
,默认值为simple
。
hadoop.http.authentication.token.validity
:标识认证token失效期(单位为秒),默认是36000。
hadoop.http.authentication.signature.secret.file
:认证token的的签名秘钥文件。集群的所有节点,JobTracker,NameNode,TaskTracker,DataNode,都应该有相同的秘钥。默认值为$user.home/hadoop-http-auth-signature-secret
。重要:该文件只有运行守护进行的Unix用户可读。
hadoop.http.authentication.cookie.domain
:存储认证token的cookie所用的domain。为了集群所有节点的认证都能正常工作,domain必须设置正确。没有默认值,cookie没有domain,只有cookie的工作。
重要:当使用IP地址时,浏览器会忽略cookie的domain设置。该设置在集群所有节点上正确的工作,需要使用hostname.domain
配置生成URL。
hadoop.http.authentication.simple.anonymous.allowed
:指明使用simple
认证时,异步请求被允许。默认值为true。
hadoop.http.authentication.kerberos.principal
:在使用kerberos认证时,指明kerberos负责人用于Hadoop端。每个kerberos的http SPNEGO详述必须让负责人短名称是HTTP
。默认值为HTTP/_HOST@$LOCALHOST
,_HOST
被HTTP服务器器的绑定地址代替。
hadoop.http.authentication.kerberos.keytab
:Http终端使用的kerberos负责人证书的keytab文件的位置。
CORS
为了启用跨域支持,请设置下面的参数:
在core-site.xml
中添加org.apache.hadoop.security.HttpCrossOriginFilterInitializer
到属性hadoop.http.filter.initializers
。也需要在core-site.xml
中设置如下属性:
属性 | 默认值 | 描述 |
---|---|---|
hadoop.http.cross-origin.enabled | false | 开启所有web服务的跨域支持 |
hadoop.http.cross-origin.allowed-origins | 逗号分隔的允许跨域的域列表,* 允许和模式允许 |
|
hadoop.http.cross-origin.allowed-methods | GET,POST,HEAD | 逗号分隔的允许跨域的方法列表 |
hadoop.http.cross-origin.allowed-headers | X-Requested-With,Content-Type,Accept,Origin | 逗号分隔的允许的header列表 |
hadoop.http.cross-origin.max-age | 1800 | 缓存时间 |
版权声明:本文由 在 2016年07月18日发表。本文采用CC BY-NC-SA 4.0许可协议,非商业转载请注明出处,不得用于商业目的。
文章题目及链接:《15.hadoop-2.7.2官网文档翻译-Hadoop的http web认证》