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

1. 配置方式

認(rèn)證方式是在$KYLIN_HOME/conf/kylin.properites文件中進行配置的,默認(rèn)情況下使用的是testing的方式:
kylin.security.profile=testing
需要添加修改用戶和用戶權(quán)限,需要如下操作:

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支持企業(yè)或生產(chǎn)部署的LDAP認(rèn)證; 這是用Spring Security框架實現(xiàn)的;
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==
#得到密鑰添加密碼
創(chuàng)建配置文件副本:
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:配置權(quán)限###########

# 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”設(shè)置為“ROLE_”+ GROUP_NAME。
例如,在LDAP中,組“KYLIN-ADMIN-GROUP”是管理員列表,
這里需要將其設(shè)置為:
-----------------------------------------------------------------------
acl.adminRole=ROLE_KYLIN_ADMIN_GROUP
acl.defaultRole=ROLE_ANALYST,ROLE_MODELER
-----------------------------------------------------------------------
“acl.defaultRole”是授予所有人的默認(rèn)角色列表,保持原樣。
Kylin web 支持 BI 工作流中各種角色的需求
  • 分析師(ANALYST):運行查詢和檢出結(jié)果
  • 建模師(MODELER):cube 設(shè)計,cube/job 操作和監(jiān)視器
  • 管理員(ADMIN):系統(tǒng)操作。

#########step3:配置ldap服務(wù)###########

#"用戶名和密碼信息"
# 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組織單元即當(dāng)前DN的分組,下面為用戶賬戶組和系統(tǒng)賬戶組"
# 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. 導(dǎo)入用戶和組

注: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用戶添加組權(quán)限的節(jié)點
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用戶添加組權(quán)限的節(jié)點
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中設(shè)置“kylin.sandbox = false”,然后重新啟動Kylin服務(wù)器。

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

發(fā)現(xiàn)bug,新建用戶需要登錄一下,admin才能給其他非管理員授權(quán)project的權(quán)限,解決方法創(chuàng)建用戶后調(diào)用登錄接口。


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

添加完如圖所示。

附:簡單操作命令

增加用戶:

新增成員后將成員添加到ou對應(yīng)的驗證組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"
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容