如果您希望在配置Ranger的Policy时,能够对LDAP中的用户控制组件进行授权,可以使用usersync对接LDAP。

背景信息

Ranger usersync对接LDAP之后,在配置service的Policy时,可以选择的用户包含了LDAP中的用户(UNIX用户将看不到了,只能生效其中一个)。

配置方法

  1. 打开install.properties文件。
    cd /usr/lib/ranger-usersync-current
    vim install.properties
  2. 修改该文件中SYNC_SOURCE = ldap,之后修改该文件中如下几个配置项。
    SYNC_LDAP_URL = ldap://emr-header-1:10389
    SYNC_LDAP_BIND_DN = uid=admin,o=emr
    SYNC_LDAP_BIND_PASSWORD = [password]
    SYNC_LDAP_USER_SEARCH_BASE = ou=people,o=emr

    示例所给出的配置值均为对接EMR OpenLDAP,若要对接自建的LDAP,按照下文对各个参数的解释修改为自建LDAP对应值即可,有关各个配置项的详细解释,请参见Ranger usersync官方安装教程

    配置项 说明
    SYNC_LDAP_URL LDAP服务的地址。例如:ldap://ldap.example.com:389
    SYNC_LDAP_BIND_DN 连接LDAP进行用户和用户组查询的dn。例如:cn=ldapadmin,ou=users,dc=example,dc=com
    SYNC_LDAP_BIND_PASSWORD 用于连接的dn对应的密码。
    EARCH_BASE LDAP中用户搜索域。例如:ou=users,dc=example,dc=com

进阶配置

经过如上配置之后,Ranger已经将LDAP中的用户同步过来了,但是这些用户只同步了用户名信息,并没有同步LDAP中的用户组信息。如果用户希望在Ranger中设置Policy对组件进行授权的时候,也能对LDAP中的用户组进行权限统一设置,则需要同步LDAP中用户组中的信息。Ranger同步LDAP用户组的配置较为复杂,并且不是所有的LDAP用户组信息都能进行同步(目前EMR的OpenLDAP不支持同步用户组信息,需要您手动同步),主要修改的配置如下所示。

SYNC_LDAP_USER_GROUP_NAME_ATTRIBUTE = gitNumber
SYNC_GROUP_SEARCH_ENABLED = true
SYNC_GROUP_USER_MAP_SYNC_ENABLED = true
SYNC_GROUP_SEARCH_BASE = ou=group,o=emr
SYNC_GROUP_OBJECT_CLASS = posixGroup
SYNC_GROUP_NAME_ATTRIBUTE = cn
SYNC_GROUP_MEMBER_ATTRIBUTE_NAME = memberUid
配置项 说明
SYNC_LDAP_USER_GROUP_NAME_ATTRIBUTE 用户entry中表示用户组的attribute的名称。例如:gitNumber(user objectClass=posixAccount)
SYNC_GROUP_SEARCH_ENABLED 是否仅根据用户entry中记录的用户组attribute来确定用户组还是直接通过LDAP搜索所有用户组信息。true
SYNC_GROUP_USER_MAP_SYNC_ENABLED 用户与用户组之间的映射关系是否通过LDAP搜索进行确定。例如:true
SYNC_GROUP_SEARCH_BASE LDAP中用户搜索域。例如:ou=groups,dc=example,dc=com
SYNC_GROUP_OBJECT_CLASS 用户组的objectClass类型。例如:posixGroup
SYNC_GROUP_NAME_ATTRIBUTE 用户组entry中用户组名的标识。例如:cn
SYNC_GROUP_MEMBER_ATTRIBUTE_NAME 用户组entry中标识用户组成员的attribute名称。例如:memberUid

生效配置

  1. 配置好以上内容之后,需要在emr-header-1节点的/usr/lib/ranger-usersync-current路径下执行setup.sh
    cd /usr/lib/ranger-usersync-current
    sh setup.sh
  2. 在EMR控制台Ranger集群服务中,重启RangerUserSync使得配置生效。
    1. 登录阿里云E-MapReduce控制台
    2. 在顶部菜单栏处,选择地域(Region)。
    3. 单击上方的集群管理页签。
    4. 在左侧导航栏单击集群服务 > RANGER
    5. 组件列表区域,单击RangerUserSync所在行的重启,使得配置生效。