Zeppelin-0.9.0同步Apache DS LDAP 方案

目录

 

序:

一、Zeppelin0.9.0的安装

二、Apache DS Ldap的安装

三、Zeppelin集成ApacheDS LDAP

1、ApacheDS LDAP部分操作

(1)创建新的partition

(2)创建用户和用户组,准备做zeppelin的映射

2、Zeppelin相关配置


序:

最近在工作中遇到了Zeppelin要同步Ranger的需求,由于项目中有LDAP组件,省去了改源码做shiro集成ranger的麻烦。项目内部使用的ApacheDS Ldap,在Zeppelin的集成过程中部分操作不同于openLdap,在此记录下集成过程及部分坑。

一、Zeppelin0.9.0的安装

TODO....

二、Apache DS Ldap的安装

TODO...

三、Zeppelin集成ApacheDS LDAP

此处参考了@章剑锋(Jeff) 大佬的配置文档​​​​​​​,由于文档针对于openLDAP,在使用ApacheDSLDAP有一些不同之处。

1、ApacheDS LDAP部分操作

(1)创建新的partition

在连接框内选择我们的LDAP链接右键点击配置,并,command+s保存。重启dsLdap

在新建partition标签页填写信息

重启dsLdap

(2)创建用户和用户组,准备做zeppelin的映射

首先,为了显示apacheDS的posixAccount和posixGroup,我们需要进行一些配置,首先打开ou=schema的列表,(部分使用mac的同学可能发现自己无法展开schema,此时需要你先左键选中schema,再点击上面的刷新按钮,schema才可以展开,这是什么鬼才交互设计。。。。)

在这里我们需要把m-disabled改成FALSE

再次重启LDAP

然后添加用户组组织单元(ou)

添加用户组织单元(ou)

 

在组织单元groups(ou=groups)下添加group: 我这里创建admin的group(此处我们需要点击对话框里的刷新按钮才会出来posix类)
在组织单元users(ou=users)下创建用户
将zpln_admin用户添加到admin组下

2、Zeppelin相关配置

修改shiro.ini文件,可使用以下内容直接替换
# Sample LDAP configuration, for user Authentication, currently tested for single Realm
[main]
ldapRealm=org.apache.zeppelin.realm.LdapRealm
ldapRealm.contextFactory.authenticationMechanism=simple
ldapRealm.contextFactory.url=ldap://192.168.101.48:10389
ldapRealm.userDnTemplate=cn={0},ou=users,dc=yss,dc=com
ldapRealm.pagingSize = 200
ldapRealm.authorizationEnabled=true
ldapRealm.searchBase=dc=yss,dc=com
ldapRealm.userSearchBase = ou=users,dc=yss,dc=com
ldapRealm.groupSearchBase = ou=groups,dc=yss,dc=com
ldapRealm.groupObjectClass=posixGroup
ldapRealm.userLowerCase = true
ldapRealm.memberAttribute = memberuid
ldapRealm.groupSearchFilter=(&(objectClass=posixGroup)(memberuid={0}))
ldapRealm.userSearchScope = subtree
ldapRealm.groupSearchScope = subtree
ldapRealm.contextFactory.systemUsername= commonName=zpln_admin,ou=users,dc=yss,dc=com
### 我的cn=admin,dc=domain,dc=com密码设置的是admin,这里需要替换成用户自己设置的密码
ldapRealm.contextFactory.systemPassword = secret
ldapRealm.groupSearchEnableMatchingRuleInChain = false
### 将Ldap上的admin group映射成zeppelin的admin角色, user group映射成zeppelin的user_role角色
ldapRealm.rolesByGroup = admin:admin,user:user_role
securityManager.realms = $ldapRealm

sessionManager = org.apache.shiro.web.session.mgt.DefaultWebSessionManager
cookie = org.apache.shiro.web.servlet.SimpleCookie
cookie.name = JSESSIONID
cookie.httpOnly = true
sessionManager.sessionIdCookie = $cookie
securityManager.sessionManager = $sessionManager
securityManager.sessionManager.globalSessionTimeout = 86400000
shiro.loginUrl = /api/login
securityManager.sessionManager = $sessionManager
securityManager.realms = $ldapRealm

sessionManager = org.apache.shiro.web.session.mgt.DefaultWebSessionManager
### Enables 'HttpOnly' flag in Zeppelin cookies
cookie = org.apache.shiro.web.servlet.SimpleCookie
cookie.name = JSESSIONID
cookie.httpOnly = true
### Uncomment the below line only when Zeppelin is running over HTTPS
#cookie.secure = true
sessionManager.sessionIdCookie = $cookie
securityManager.sessionManager = $sessionManager
# 86,400,000 milliseconds = 24 hour
securityManager.sessionManager.globalSessionTimeout = 86400000
shiro.loginUrl = /api/login

[urls]
# shiro检测资源权限是顺序检测的,前面的资源匹配上了就验证这个规则对应的权限即可,不再往后匹配
# 所以底层实现规则存储用的是LinkedList,保证规则链路保持配置时的顺序
/api/version = anon
/api/cluster/address = anon
## 配置允许所有登陆的用户访问解释器重启接口
/api/interpreter/setting/restart/** = authc
## 配置只允许拥有admin角色,且登陆成功的用户可以访问解释器相关接口(解释器配置页)
/api/interpreter/** = authc, roles[admin]
## 配置只允许拥有admin角色,且登陆成功的用户可以访问解释器仓库相关接口(解释器配置页)
/api/notebook-repositories/** = authc, roles[admin]
## 配置只允许拥有admin角色,且登陆成功的用户可以访问配置相关接口
/api/configurations/** = authc, roles[admin]
## 配置只允许拥有admin角色,且登陆成功的用户可以访问凭据设置相关接口
/api/credential/** = authc, roles[admin]
## 配置只允许拥有admin角色,且登陆成功的用户可以访问管理员相关接口
/api/admin/** = authc, roles[admin]
#/** = anon
/** = authc

修改完配置后重启zeppelin服务并用zpln_admin用户登陆

登陆成功,并且可以查看解释器,配置完成!

如果各位看官遇到什么问题可以留言,看到后会第一时间回复~ 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

EdwardsWang丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值