美文网首页
kylin用户管理——配置方式和ldap管理方式

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

作者: hellozepp | 来源:发表于2018-03-27 20:52 被阅读0次

    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 工作流中各种角色的需求
    • 分析师(ANALYST):运行查询和检出结果
    • 建模师(MODELER):cube 设计,cube/job 操作和监视器
    • 管理员(ADMIN):系统操作。

    #########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"
    

    相关文章

      网友评论

          本文标题:kylin用户管理——配置方式和ldap管理方式

          本文链接:https://www.haomeiwen.com/subject/nuojcftx.html