背景说明

先参照《1107-FreeIPA 和 FreeRadius 搭建双因子认证》完成 FreeIPA  环境配置。

如果 confluence 已经有很多用户,那么对不起,这些用户的密码都必须通知到个人,强制进行修改,旧有的密码完全无法导出(除非一个一个人问出来)。

confluence 实际上是用了一个内置的目录软件来管理用户的,用户唯一存在的凭据就是邮箱。

confluence 支持同时从多个目录树中按照顺序来查询用户,查询到的结果会合并。举例来说,排第一的目录树是freeipa,排第二位的目录树是内置目录,两个目录树都有一个用户,两条记录的邮件是一致的,那么会在排第一的 freeipa 树中认证用户,但会把两个目录树中用户的信息拼接合并起来总体返回。

这样就明白了把,我们只用第一个 freeipa 目录树来认证用户,原有的组权限还是用第二个内置目录树中的信息,保持两棵树中用户的 mail 保持一致即可。

FreeIPA 增加 Confluence 组

首先要提前在freeIPA里面建立两个组:

  • confluence-administrators
  • confluence-users

Confluence 配置 LDAP 验证

到 Confluence 里,用户目录,添加一个 freeipa 的目录服务放在前面

详细的 LDAP 验证配置如下

Server Settings:
- Namel: freeipa
- Directory Type: OpenLDAP
- Server: example.com
- Port: 389
- Use SLL: false 
- Username: uid=admin,cn=users,cn=accounts,dc=bybon,dc=cn
- Password: <insert password here>


LDAP Schema:
- Base DN: dc=bybon,dc=cn
- Additional User DN: cn=users,cn=accounts
- Additional Group DN:cn=groups,cn=accounts

LDAP Permissions:
Select Read/Write

Advanced Settings: Default

User Schema Settings
- User Object Class: inetorgperson
- User Object Filter: (&(objectclass=inetorgperson)(memberOf=cn=confluence-users,cn=groups,cn=accounts,dc=bybon,dc=cn))
- User Name Attribute: uid
- User Name RDN Attribute: uid
- User First Name Attribute: giveName
- User Last Name Attribute: sn
- User Display Name Attribute: displayName
- User Email Attribute: mail
- User Password Attribute: userPassword
- User Password Encryption: SHA
- User Unique ID Attribute: uid

Group Schema Settings
- Group Object Class: groupofnames # all lowercase
- Group Object Filter: (objectclass=groupofnames) # all lowercase
- Group Name Attribute: cn
- Group Description Attribute: description
 
Membership Schema Settings
- Group Members Attribute: member #lowercase
- User Membership Attribute:memberOf

关于 admin 的问题,上面找用户的 filter 是找不到 admin 用户的。但是第一步认证是 ldap 做的,认证过了以后,freeipa 的 ldap filter 过滤后找不到 admin 这个用户,所以只会在内置目录有 admin 的信息,下面验证一下,admin 只存在于 Confluence Internal Directory 中。

补充一点,freeipa 是可以匿名访问的,但是匿名状态下,一些属性字段是看不见的,比如 mail 。所以想要查到全部字段,必须登录,放一个查询的脚本:

ldapsearch  -W -D uid=admin,cn=users,cn=accounts,dc=bybon,dc=cn -h localhost -b cn=users,cn=accounts,dc=bybon,dc=cn '(&(objectclass=inetorgperson)(memberOf=cn=confluence-users,cn=groups,cn=accounts,dc=bybon,dc=cn))'


  • 无标签

0 评论

你还没有登录。你所做的任何更改会将作者标记为匿名用户。 如果你已经拥有帐户,请登录