互信参数hadoop.security.auth_to_local详解

  使用配置
内容纲要

概要描述


hadoop.security.auth_to_local这个参数常常用来配置如何处理来自其他realm中的principal,实现基本的安全过滤功能。
例如,您的Hadoop realm是TDH,您的合作方realm是CORP,然后添加规则,将合作方realm的principal转换为本地用户。可以通过下面这样的配置实现只信任来自realm为CORP的principal


    hadoop.security.auth_to_local
    
        RULE:[1:$1@$0](.*@CORP)s/@CORP//
        RULE:[2:$1@$0](.*@CORP)s/@CORP// 
        DEFAULT
    

该参数分为下面3步来做过滤筛选

  • 初始principal转换 – initial principal translation
  • 接受过滤器 – acceptance filter
  • 替换命令 – substitution command

通配样例(适用two-way trust):

RULE:[1:$1@$0](^.*@.*$)s/^(.*)@.*$/$1/g 
RULE:[2:$1@$0](^.*@.*$)s/^(.*)@.*$/$1/g 
DEFAULT

单向信任样例(适用one-way trust):

RULE:[1:$1@$0](^.*@TDH$)s/^(.*)@TDH$/$1/g 
RULE:[2:$1@$0](^.*@TDH$)s/^(.*)@TDH$/$1/g 
DEFAULT

详细说明


Step1: The initial principal translation

最初的principal转换由一个数字和替换字符串组成,第一个数字和principal的part(不包括realm)相匹配,替换字符串定义了principal最初的传输方式。

前面的1/2代表部分的个数,比如kevin@TDH只能匹配1,hdfs/node01@TDH只能匹配2

  • $0将被realm替换
  • $1将被第一个部分替换
  • $2将被第二个部分替换

有关初始principal转换的一些示例,详情参见下表,输出称为initial local name

file

Step2: The acceptance filter

接受筛选器是一个正则表达式,如果initial local name(即规则第一部分的output)匹配正则表达式,然后substitution命令将在字符串上运行。

file

Step3: The substitution command

替换命令是一个带有正则表达式pattern和替换字符串的sed风格的替换。匹配的组可以通过将正则表达式的一部分括在圆括号中,并通过数字(例如,\1)在替换字符串中引用来包含。组号由正则表达式中开始括号的顺序决定。参见下表所示的一些子命令示例。替换命令的格式是s// /g。结尾的g是可选的,如果它出现了,那么代位‐将是整个字符串的全局参数。如果g被省略,那么只有第一个匹配模式的子串将被替换

file

另外单独提一下这个DEFAULT:默认规则将主体名称缩小为仅其第一部分。
例如,假设默认域是TDH,则默认规则将主体名称hdfs@TDH或hdfs/node01@TDH缩减为hdfs

这篇文章对您有帮助吗?

平均评分 0 / 5. 次数: 0

尚无评价,您可以第一个评哦!

非常抱歉,这篇文章对您没有帮助.

烦请您告诉我们您的建议与意见,以便我们改进,谢谢您。