一、kylin用户准备
编辑kylin用户配置文件,导入到openldap中,将kylin相关的账户数据放置到ou=kylin,dc=bigdata,dc=ly目录下,由于kylin需要维护用户和角色的相关信息,因此设置cn=People,ou=kylin,dc=bigdata,dc=ly下存放kylin的用户信息,ou=Group,ou=kylin,dc=bigdata,dc=ly存放kylin角色信息。编辑kylin_user.ldif配置文件,密码生成可以使用slappasswd -s 1234进行生成,采用ssha方式进行加密,还可以选择其他加密方式。内容如下:
#添加kylin分支,用于存放kylin相关用户和组信息
dn: ou=kylin,dc=bigdata,dc=ly
ou: kylin
objectClass: top
objectClass: organizationalUnit
#添加people分支
dn: cn=People,ou=kylin,dc=bigdata,dc=ly
cn: People
objectClass: organizationalRole
#添加kylin组分支
dn: cn=Groups,ou=kylin,dc=bigdata,dc=ly
cn: Groups
objectClass: organizationalRole
#ANALYST账户
dn: uid=ANALYST,cn=People,ou=kylin,dc=bigdata,dc=ly
objectClass: inetOrgPerson
uid: ANALYST
sn: ANALYST
cn: ANALYST
userPassword: {SSHA}oFRigOdzHpq7laDh6E+OOqJQT36gubNF
#MODELER账户
dn: uid=MODELER,cn=People,ou=kylin,dc=bigdata,dc=ly
objectClass: inetOrgPerson
uid: MODELER
sn: MODELER
cn: MODELER
userPassword: {SSHA}oFRigOdzHpq7laDh6E+OOqJQT36gubNF
#dockj账户
dn: uid=dockj,cn=People,ou=kylin,dc=bigdata,dc=ly
objectClass: inetOrgPerson
uid: dockj
sn: dockj
cn: dockj
userPassword: {SSHA}oFRigOdzHpq7laDh6E+
#ADMIN账户
dn: uid=ADMIN,cn=People,ou=kylin,dc=bigdata,dc=ly
objectClass: inetOrgPerson
uid: ADMIN
sn: ADMIN
cn: ADMIN
userPassword: {SSHA}oFRigOdzHpq7laDh6E+OOqJQT36gubNF
#给ADMIN用户添加组权限的节点
dn: cn=ADMIN,cn=Groups,ou=kylin,dc=bigdata,dc=ly
objectClass: groupOfNames
objectClass: top
cn: ADMIN
member: uid=ADMIN,cn=People,ou=kylin,dc=bigdata,dc=ly
#给MODELER用户添加组权限的节点
dn: cn=MODELER,cn=Groups,ou=kylin,dc=bigdata,dc=ly
objectClass: groupOfNames
objectClass: top
cn: MODELER
member: uid=dockj,cn=People,ou=kylin,dc=bigdata,dc=ly
member: uid=MODELER,cn=People,ou=kylin,dc=bigdata,dc=ly
#给ANALYST用户添加组权限的节点
dn: cn=ANALYST,cn=Groups,ou=kylin,dc=bigdata,dc=ly
objectClass: groupOfNames
objectClass: top
cn: ANALYST
member: uid=ANALYST,cn=People,ou=kylin,dc=bigdata,dc=ly
#添加system分组,用户存储系统用户,提供外界访问的openldap用户
dn: cn=System,ou=kylin,dc=bigdata,dc=ly
cn: System
objectClass: organizationalRole
#添加kylin分组的只读权限
dn: uid=kylin_read,cn=System,ou=kylin,dc=bigdata,dc=ly
objectClass: inetOrgPerson
uid: kylin_read
sn: kylin_read
cn: kylin_read
userPassword: {SSHA}oFRigOdzHpq7laDh6E+OOqJQT36gubNF
#添加kylin分组的读写权限
dn: uid=kylin_write,cn=System,ou=kylin,dc=bigdata,dc=ly
objectClass: inetOrgPerson
uid: kylin_write
sn: kylin_write
cn: kylin_write
userPassword: {SSHA}oFRigOdzHpq7laDh6E+OOqJQT36gubNF
执行如下命令,将kylin账户信息导入到openldap中:
ldapadd -x -D "cn=admin,dc=bigdata,dc=ly" -w 1234 -f kylin_user.ldif -H ldap://10.100.203.117:18888
配置ou=kylin,dc=bigdata,dc=ly条目数据的访问权限,编辑文件kylin_acl.ldif文件,添加内容如下,设置用户uid=kylin_read,cn=System,ou=kylin,dc=bigdata,dc=ly对ou=kylin,dc=bigdata,dc=ly只用只读权限,在kylin中进行配置。
dn: olcDatabase={2}mdb,cn=config
changetype: modify
add: olcAccess
olcAccess: to dn.subtree="ou=kylin,dc=bigdata,dc=ly"
by dn.base="uid=kylin_read,cn=System,ou=kylin,dc=bigdata,dc=ly" read
by dn.base="uid=kylin_write,cn=System,ou=kylin,dc=bigdata,dc=ly" write
by * auth
执行如下命令,将配置导入到配置文件中去:
ldapmodify -x -D "cn=config" -w 1234 -f kylin_acl.ldif -H ldap://10.100.203.117:18888
二、配置kylin服务
在kylin.properties配置文件中添加如下内容:
## with "testing" profile, user can use pre-defined name/pwd like KYLIN/ADMIN to login
kylin.security.profile=ldap
#
## Admin roles in LDAP, for ldap and saml
kylin.security.acl.admin-role=ADMIN
#
## LDAP authentication configuration
kylin.security.ldap.connection-server=ldap://10.100.203.117:18888
kylin.security.ldap.connection-username=uid=kylin_read,cn=System,ou=kylin,dc=bigdata,dc=ly
kylin.security.ldap.connection-password=AntBN4PitasVrW9zrwyLRw==
#
## LDAP user account directory;
kylin.security.ldap.user-search-base=cn=People,ou=kylin,dc=bigdata,dc=ly
kylin.security.ldap.user-search-pattern=uid={0}
kylin.security.ldap.user-group-search-base=cn=Groups,ou=kylin,dc=bigdata,dc=ly
#kylin.security.ldap.user-group-search-filter=(|(member={0})(memberUid={1}))
## LDAP service account directory
kylin.security.ldap.user-search-base=cn=People,ou=kylin,dc=bigdata,dc=ly
kylin.security.ldap.user-search-pattern=uid={0}
kylin.security.ldap.user-group-search-base=cn=Groups,ou=kylin,dc=bigdata,dc=ly
由于kylin设置ldap密码是经过加密的,所以通过如下方式获取加密密码,注意jar包的版本,1234为要加密的密码:
cd $KYLIN_HOME/tomcat/webapps/kylin/WEB-INF/lib
java -classpath kylin-server-base-2.3.2.jar:spring-beans-4.3.10.RELEASE.jar:spring-core-4.3.10.RELEASE.jar:commons-codec-1.7.jar org.apache.kylin.rest.security.PasswordPlaceholderConfigurer AES 1234
设置完成重启kylin。
kylin.sh stop
kylin.sh start
本文详细介绍了如何在Kylin中配置LDAP用户认证及权限管理,包括创建用户和角色,导入配置,以及设置访问权限的过程。
517





