-
-
Notifications
You must be signed in to change notification settings - Fork 10.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
add active directory support #1562
Conversation
ab99edf
to
7248aee
Compare
@pandalin @zchlwj 麻烦帮忙review一下吧,另外我这里也没有ldap测试环境,不知是否可以帮忙验证一下? |
好的,但是要稍等等,最近事情有点多 |
测试可用
另外. 如果不加 filter 会报错. |
感谢反馈,已经添加了默认值,可以不写 filter。 |
@codepiano 测试可用, 但我认为还需要再认证完后 将用户 写入Apollo数据库中 这样 在项目创建的时候才能指定人及权限 |
创建项目的时候是可以选人的,会直接去 ldap 里面加载用户列表,如果没有加载出来,可能是哪里出了问题。 |
非常感谢,我在本地通过安装open ldap已经验证原始的 ldap 方式工作正常~ 不过配置上和你的sample略有不同,比如 spring:
ldap:
base: "dc=example,dc=org"
username: "cn=admin,dc=example,dc=org"
password: "admin"
searchFilter: "(uid={0})" # 用户过滤器,登录的时候用这个过滤器来搜索用户
urls:
- "ldap://localhost:389"
ldap:
mapping: # 配置 ldap 属性
objectClass: "inetOrgPerson" # ldap 用户 objectClass 配置
loginId: "uid" # ldap 用户惟一 id,用来作为登录的 id
userDisplayName: "cn" # ldap 用户名,用来作为显示名
email: "mail" # ldap 邮箱属性 |
对,只用指用户名,我贴的配置就是我们线上使用的配置,只是修改了敏感信息 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
我抽空整理一个使用文档 |
good,我最初提供的版本一直在想如何更改为这种方式 |
@nobodyiam 不知文档该放到哪里?wiki 似乎没有编辑权限 |
目前似乎wiki不能PR。。。要不建一个issue,然后把文档贴进去?然后我再复制到wiki的相应位置。 |
好,那我就贴这个 pr 的评论里吧 |
请问按照这种方式接入ladp |
@Dean-hu 可以的 |
配置了openldap方式之后,原先的apollo/admin就登录不上了吗? |
在ldap中创建这个apollo/admin用户就可以了 |
我现在用的apollo1.3配置我们单位的ldap服务,用的active Directory方式配置Ldap,可以登录,但是在创建项目的时候应用负责人列表为空,不知道您知道怎么解决的么,我看你说的貌似也是这个问题 |
我现在就是遇到了这个问题,我目前用的1.3apollo,配置我单位的ldap服务,用的是active Directory方式 配置的memberOf形式接入,可以登陆,但是在创建项目的时候应用负责人列表无法加载,请问您有相关问题处理经验没 |
@bei0228-l 看描述可能是memberOf配置有问题,可以尝试先把filter配置去掉试试 |
功能
现有的 ldap 实现不支持 active directory,并且需要用户自行更改代码,编译 portal,因此计划提供对 active direcotry 的支持,并且支持动态绑定,用户只需更改配置文件即可接入。
变更
ldap 认证方式
修改了认证过程,不再通过比对密码的形式,改用 bind 形式去认证身份,流程如下:
动态绑定流程
修改了原有的查询用户方式,通过配置文件填写用户id、显示名、邮箱在 ldap 里面的对应属性,使用管理员账号,通过查询语句去获得用户的属性值。
新增功能
配置 ldap 标准的 memberOf 过滤器,只允许某些组的用户访问
配置文件说明
目前状态
active directory 的方式测试通过,已经开始使用
原始的 ldap 方式,因为没有测试环境,所以需要找人帮忙进行测试