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

    
    	
    	
    		hadoop.http.filter.initializers
    		org.apache.hadoop.security.AuthenticationFilterInitializer
    	
    	
    		hadoop.http.authentication.type
    		simple
    	
    	
    		hadoop.http.authentication.token.validity
    		3600
    	
    	
    		hadoop.http.authentication.signature.secret.file
    		/opt/apache/hadoop/secret/hadoop-http-auth-signature-secret
    	
    	
    		hadoop.http.authentication.cookie.domain
    		
    	
    	
    		hadoop.http.authentication.simple.anonymous.allowed
    		false
    	
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27

    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

  • 相关阅读:
    TYVJ P1026 犁田机器人
    JAVA面试题——创建线程的三种方式
    【win11远程桌面访问--基于云端服务器(腾讯云为例)&frp的内网穿透实现】
    Java开发学习(二十二)----Spring事务属性、事务传播行为
    域名扫描工具subDomainBrute源码分析
    搜索引擎Elasticsearch基础与实践
    什么是开源工作流框架?有什么特点?
    OD(7)之time调用与Linux-vDSO机制
    如何提高FPGA的逻辑利用率与资源效率!!!
    【Linux进程篇】Linux中的等待机制与替换策略
  • 原文地址:https://blog.csdn.net/web15185420056/article/details/126565613