kylin用户管理——配置方式和ldap管理方式

2018-03-27  本文已影响0人  hellozepp

1. 配置方式

认证方式是在$KYLIN_HOME/conf/kylin.properites文件中进行配置的,默认情况下使用的是testing的方式:
kylin.security.profile=testing
需要添加修改用户和用户权限,需要如下操作:

vim $KYLIN_HOME/tomcat/webapps/kylin/WEB-INF/classes/kylinSecurity.xml

第一种方法


1.png
2.png

第二种方法

 <scr:authentication-manager alias="testingAuthenticationManager">
            <!-- do user ldap auth -->
           <scr:authentication-provider ref="kylinUserAuthProvider">
            <scr:user-service>
            <scr:user name="KYLIN" password="$2a$10$59cVAEx9A4.SFzEcyvPWUOW/XKsERN1.B3STIYtIB7OJotuNU/jYW" authorities="ROLE_MODELER, ROLE_ANALYST, ROLE_ADMIN" />
            </scr:user-service>
            <scr:password-encoder ref="passwordEncoder"/>
            </scr:authentication-provider>
        </scr:authentication-manager>

2. OPEN LDAP

Kylin支持企业或生产部署的LDAP认证; 这是用Spring Security框架实现的;
kylin.properties配置密钥需要使用AES进行加密

#input args[0]:AES args[1]:your password
#jar找不到删到版本号tab自己库的
java -classpath kylin-server-base-2.2.0.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 123456 
#output
>> uIS3e+hZQiYh4kFrsyjekA==
#得到密钥添加密码
创建配置文件副本:
cd  /opt/soft/kylin/apache-kylin-2.2.0-bin/conf/
cp kylin.properties kylin.properties_bak
---------------------------------
vim /opt/soft/kylin/apache-kylin-2.2.0-bin/conf/kylin.properties

#########step1:修改验证方式为ldap,不可共存,测试都配只有testing有用###########

# Spring security profile, options: testing, ldap, saml
# with "testing" profile, user can use pre-defined name/pwd like KYLIN/ADMIN to login
kylin.security.profile=ldap

#########step2:配置权限###########

# Default roles and admin roles in LDAP, for ldap and saml
kylin.security.acl.default-role=ROLE_ANALYST,ROLE_MODELER
kylin.security.acl.admin-role=ROLE_KYLIN_ADMIN_GROUP
官方解释:要将LDAP组映射到Kylin中的管理组,
需要将“acl.adminRole”设置为“ROLE_”+ GROUP_NAME。
例如,在LDAP中,组“KYLIN-ADMIN-GROUP”是管理员列表,
这里需要将其设置为:
-----------------------------------------------------------------------
acl.adminRole=ROLE_KYLIN_ADMIN_GROUP
acl.defaultRole=ROLE_ANALYST,ROLE_MODELER
-----------------------------------------------------------------------
“acl.defaultRole”是授予所有人的默认角色列表,保持原样。
Kylin web 支持 BI 工作流中各种角色的需求

#########step3:配置ldap服务###########

#"用户名和密码信息"
# LDAP authentication configuration
kylin.security.ldap.connection-server=ldap://<your ldap ip>:389
kylin.security.ldap.connection-username=cn=Manager,dc=daojia,dc=com
kylin.security.ldap.connection-password=uIS3e+hZQiYh4kFrsyjekA==

#"OU组织单元即当前DN的分组,下面为用户账户组和系统账户组"
# LDAP user account directory
kylin.security.ldap.user-search-base=ou=Kylin_People,dc=daojia,dc=com
kylin.security.ldap.user-search-pattern=uid={0}
kylin.security.ldap.user-group-search-base=ou=Kylin_Group,dc=daojia,dc=com

# LDAP service account directory
kylin.security.ldap.service-search-base=ou=Kylin_People,dc=daojia,dc=com
kylin.security.ldap.service-search-pattern=uid={0}
kylin.security.ldap.service-group-search-base=ou=Kylin_Group,dc=daojia,dc=com

3. 导入用户和组

注:dn:后面要加一个空格。

ldapadd -x -D "cn=Manager,dc=daojia,dc=com" -W -f Kylin_People.ldif 
#添加用户分支和组分支,添加用户到用户分支
#Kylin_People, dc=daojia,dc=com
dn: ou=Kylin_People,dc=daojia,dc=com
ou: Kylin_People
objectClass: top
objectClass: organizationalUnit
ldapadd -x -D "cn=Manager,dc=daojia,dc=com" -W -f Kylin_People.ldif 
dn: ou=Kylin_Group,dc=daojia,dc=com
ou: Kylin_Group
objectClass: top
objectClass: organizationalUnit
ldapadd -x -D "cn=Manager,dc=daojia,dc=com" -W -f zhanglin.ldif 
dn: uid=zhanglin,ou=Kylin_People,dc=daojia,dc=com
objectClass: inetOrgPerson
uid: zhanglin
sn: zhanglin
cn: zhanglin
mail: testmail@gmaild.com
userPassword: 123123

#给ADMIN用户添加组权限的节点
ldapadd -x -D "cn=Manager,dc=daojia,dc=com" -W -f Kylin_Admin_Group.ldif 
dn: cn=Kylin_Admin_Group,ou=Kylin_Group,dc=daojia,dc=com
objectClass: groupOfNames
objectClass: top
cn: ky_group
member: uid=zhanglin04,ou=Kylin_People,dc=daojia,dc=com
member: uid=ADMIN,ou=Kylin_People,dc=daojia,dc=com

#给ANALYST用户添加组权限的节点
ldapadd -x -D "cn=Manager,dc=daojia,dc=com" -W -f ANALYST.ldif 
dn: cn=ANALYST,ou=Kylin_Group,dc=daojia,dc=com
objectClass: groupOfNames
objectClass: top
cn: ANALYST
member: uid=test1,ou=Kylin_People,dc=daojia,dc=com
member: uid=test,ou=Kylin_People,dc=daojia,dc=com

4 启用LDAP

在conf / kylin.properties中设置“kylin.sandbox = false”,然后重新启动Kylin服务器。

../bin/kylin.sh  stop && sh ../bin/kylin.sh start #注意:"重启失败需要手动kill,retart不好用"

发现bug,新建用户需要登录一下,admin才能给其他非管理员授权project的权限,解决方法创建用户后调用登录接口。


39BE5549-C45E-403C-9DC1-8CD1D44A5915.png

添加完如图所示。

附:简单操作命令

增加用户:

新增成员后将成员添加到ou对应的验证组member上即可,无需重启

# ldapadd -x -D "cn=Manager,dc=zpbigdata,dc=com" -W -f /tmp/passwd.ldif 
# ldapadd -x -D "cn=Manager,dc=zpbigdata,dc=com" -W -f /tmp/group.ldif 
ldapadd -x -D "cn=Manager,dc=daojia,dc=com" -W

查询:

ldapsearch -x -D "cn=Manager,dc=daojia,dc=com" -w 123456 -b "ou=People,dc=daojia,dc=com"

删除用户或组条目:

$ ldapdelete -x -w secret -D 'uid=ldapadmin,ou=people,dc=javachen,dc=com' "uid=test,ou=people,dc=javachen,dc=com"
$ ldapdelete -x -w secret -D 'uid=ldapadmin,ou=people,dc=javachen,dc=com' "cn=test,ou=group,dc=javachen,dc=com"

查询:

ldapsearch -x -D "cn=Manager,dc=daojia,dc=com" -w 123456 -b "uid=haha1,ou=People,dc=daojia,dc=com"
上一篇下一篇

猜你喜欢

热点阅读