本文介绍Ranger Usersync如何集成LDAP,以便于您在配置Ranger的Policy时,可以授权LDAP中的用户或用户组访问组件。

背景信息

EMR的OpenLDAP没有配置用户组,如果您需要使用LDAP配置用户组,需要自行配置。如果您需要同步LDAP用户组至Ranger,请根据LDAP实际配置,自行配置LDAP各项参数。

EMR-3.28.0及后续版本(EMR 3.x系列)和EMR-4.3.0及后续版本配置方法

  1. 进入配置页签。
    1. 登录阿里云E-MapReduce控制台
    2. 在顶部菜单栏处,根据实际情况选择地域(Region)和资源组
    3. 单击上方的集群管理页签。
    4. 集群管理页面,单击待操作集群所在行的详情
    5. 在左侧导航栏,单击集群服务 > RANGER
    6. 单击配置页签。
  2. ranger-ugsync-site页面,配置各项参数。
    1. 服务配置区域,单击ranger-ugsync-site页签。
    2. 配置如下参数,同步LDAP用户至Ranger。
      参数 固定值
      ranger.usersync.sync.source ldap
      ranger.usersync.ldap.binddn uid=admin,o=emr
      ranger.usersync.ldap.ldapbindpassword 密码为OpenLDAP的配置页面,manager_password的值。
      ranger.usersync.ldap.searchBase o=emr
      ranger.usersync.ldap.url ldap://emr-header-1:10389
      ranger.usersync.ldap.user.nameattribute cn
      ranger.usersync.ldap.user.objectclass person
      ranger.usersync.ldap.user.searchbase ou=people,o=emr
      ranger.usersync.source.impl.class org.apache.ranger.ldapusersync.process.LdapUserGroupBuilder
      ranger.usersync.sleeptimeinmillisbetweensynccycle 3600000
    3. 可选:如果您需要同步LDAP用户组至Ranger,请根据LDAP实际信息配置如下参数。
      参数 示例
      ranger.usersync.group.memberattributename member
      ranger.usersync.group.nameattribute cn
      ranger.usersync.group.objectclass groupofnames
      ranger.usersync.group.searchbase ou=groups,o=emr
      ranger.usersync.group.searchenabled true
      ranger.usersync.group.usermapsyncenabled true
      ranger.usersync.sleeptimeinmillisbetweensynccycle 3600000
  3. 重启Ranger UserSync,使配置生效。
    1. 在左侧导航栏,单击集群服务 > RANGER
    2. 组件列表区域,单击RangerUserSync所在行的重启
    3. 执行集群操作对话框中,配置各项参数。
    4. 单击确定
    5. 确认对话框中,单击确定

EMR-3.28.0之前版本(EMR 3.x系列)和EMR-4.3.0之前版本(EMR 4.x系列)配置方法

  1. 登录集群的emr-header-1节点,详情请参见使用SSH连接主节点
  2. 编辑install.properties文件。
    cd /usr/lib/ranger-usersync-current
    vim install.properties
  3. 修改如下配置项。
    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
  4. 可选:如果您需要同步LDAP用户组至Ranger,请根据LDAP实际信息修改如下参数。
    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)来确定用户组信息。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
  5. 在emr-header-1节点的/usr/lib/ranger-usersync-current路径下执行setup.sh
    cd /usr/lib/ranger-usersync-current
    sh setup.sh
  6. 重启Ranger UserSync,使配置生效。
    1. 在左侧导航栏,单击集群服务 > RANGER
    2. 组件列表区域,单击RangerUserSync所在行的重启
    3. 执行集群操作对话框中,配置各项参数。
    4. 单击确定
    5. 确认对话框中,单击确定