大数据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

定义用于HTTP Web控制台的身份验证,支持的值是: 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

 

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

hadoop.http.authentication.cookie.persistent

false (session cookie)

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

hadoop.http.authentication.simple.anonymous.allowed

TRUE

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

hadoop.http.authentication.kerberos.principal

HTTP/_HOST@$LOCALHOST

指示在使用“Kerberos”身份验证时将Kerberos主体用于HTTP端点。根据Kerberos HTTP SPNEGO规范,主体短名称必须是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

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页