大数据Hadoop系列之Hadoop Web控制台添加身份验证

1. 背景介绍

  • 本文档介绍如何配置Hadoop HTTP Web控制台以要求用户身份验证。
  • 默认情况下,Hadoop HTTP Web控制台(ResourceManager,NameNode,NodeManagers和DataNodes)允许访问而无需任何形式的身份验证。
  • 可以将Hadoop HTTP Web控制台配置为使用HTTP SPNEGO协议(Firefox和Internet Explorer等浏览器支持)进行Kerberos身份验证。
  • 此外,Hadoop HTTP Web控制台支持相当于Hadoop的伪/简单身份验证。如果启用此选项,则必须使用user.name查询字符串参数在第一个浏览器交互中指定用户名。例如:http://localhost:8088/cluster?user.name=hadoop
  • 如果HTTP Web控制台需要自定义身份验证机制,则可以实现插件以支持备用身份验证机制(有关编写AuthenticatorHandler的详细信息,请参阅Hadoop hadoop-auth)。

2. 配置

2.1 属性说明

属性名称

默认值

描述

hadoop.http.filter.initializers

将org.apache.hadoop.security.AuthenticationFilterInitializer初始化类添加到此属性

hadoop.http.authentication.type

simple

定义用于HTTPWeb控制台的身份验证,支持的值是:simple|kerberos

hadoop.http.authentication.token.validity

36000

指示身份验证令牌在必须更新之前有效的时间(以秒为单位)

hadoop.http.authentication.token.max-inactive-interval

-1(disabled)

指定客户端请求之间的时间(以秒为单位),服务器将使令牌失效

hadoop.http.authentication.signature.secret.file

$user.home/hadoop-http-auth-signature-secret

用于签署身份验证令牌的签名密钥文件,集群中的所有节点、ResourceManager、NameNode、DataNode和NodeManager都应该使用相同的密钥,只有运行守护进程的Unix用户才能读取该文件

hadoop.http.authentication.cookie.domain

用于存储身份验证令牌的HTTPCookie的域,要使身份验证在集群中的所有节点上正确工作,必须正确设置域。没有默认值,HTTPCookie将不会有只与发出HTTPCookie的主机名一起工作的域

hadoop.http.authentication.cookie.persistent

false(sessioncookie)

指定HTTPCookie的持久性,如果值为真,则Cookie是持久的。否则,它就是会话Cookie。重要提示:当使用IP地址时,浏览器会忽略带有域设置的Cookie。要使此设置正常工作,集群中的所有节点都必须配置为生成具有主机名的url,上面有域名

hadoop.http.authentication.simple.anonymous.allowed

TRUE

指示在使用“简单”身份验证时是否允许匿名请求

hadoop.http.authentication.kerberos.principal

HTTP/_HOST@$LOCALHOST

指示在使用“Kerberos”身份验证时将Kerberos主体用于HTTP端点。根据KerberosHTTPSPNEGO规范,主体短名称必须是HTTP。如果存在,则用HTTP服务器的绑定地址替换_HOST

hadoop.http.authentication.kerberos.keytab

$user.home/hadoop.keytab

带有用于HTTP端点的Kerberos主体凭证的keytab文件的位置

2.2 配置core-site

创建secret目录,用于存放密钥文件

mkdir -p /opt/apache/hadoop/secret

vim /opt/apache/hadoop/hadoop-2.7.3/etc/hadoop/core-site.xml

<configuration>
	<!-- Authentication for Hadoop HTTP web-consoles -->
	<property>
		<name>hadoop.http.filter.initializers</name>
		<value>org.apache.hadoop.security.AuthenticationFilterInitializer</value>
	</property>
	<property>
		<name>hadoop.http.authentication.type</name>
		<value>simple</value>
	</property>
	<property>
		<name>hadoop.http.authentication.token.validity</name>
		<value>3600</value>
	</property>
	<property>
		<name>hadoop.http.authentication.signature.secret.file</name>
		<value>/opt/apache/hadoop/secret/hadoop-http-auth-signature-secret</value>
	</property>
	<property>
		<name>hadoop.http.authentication.cookie.domain</name>
		<value></value>
	</property>
	<property>
		<name>hadoop.http.authentication.simple.anonymous.allowed</name>
		<value>false</value>
	</property>
</configuration>

2.3 创建密钥文件

cd /opt/apache/hadoop/secret

创建hadoop-http-auth-signature-secret密钥文件,并添加test用户

echo “test” > hadoop-http-auth-signature-secret

2.4 同步修改信息至集群其它节点

scp /opt/apache/hadoop/hadoop-2.7.3/etc/hadoop/core-site.xml host14:/opt/apache/hadoop/hadoop-2.7.3/etc/hadoop/

scp /opt/apache/hadoop/hadoop-2.7.3/etc/hadoop/core-site.xml host15:/opt/apache/hadoop/hadoop-2.7.3/etc/hadoop/

scp -r /opt/apache/hadoop/secret/ host14:/opt/apache/hadoop/

scp -r /opt/apache/hadoop/secret/ host15:/opt/apache/hadoop/

3. 验证

3.1 重启Hadoop集群

stop-dfs.sh

start-dfs.sh

3.2 HDFS WEB UI

默认访问方式(401错误):http://192.168.233.136:50070

通过用户方式访问(正常访问):http://192.168.233.136:50070?user.name=test

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值