BookStack 角色串接 AD 群组

  BookStack 在使用 AD 验证后,还可以将角色与 AD 的群组做串接,以简化群组成员异动的工作,不过在使用跟设定上,有些地方需要留意,虽然都是小问题,但我自己花了一两周的时间才找出原因,因此整理出来分享。

 

 

依照官方说明,先将 .env 档加入以下设定值:

# Enable LDAP group sync, Set to 'true' to enable.
LDAP_USER_TO_GROUPS=true

# LDAP user attribute containing groups, Defaults to 'memberOf'.
LDAP_GROUP_ATTRIBUTE="memberOf"

# Remove users from roles that don't match LDAP groups.
LDAP_REMOVE_FROM_GROUPS=false
 

完成設定後,以下面环境为例设定:

AD / BookStack 帐号: test
BookStack 角色: 测试BS组
AD 群组: 测试广告组

在 BookStack 新增一个角色 “测试BS组”,并在其「外部身份验证ID」输入 “测试广告组”。

 

当 AD 中 ”测试广告组” 成员 “test” 帐号登入 BoookStack 时,会自动将其带进 “测试BS组” 角色。

【注意】
◎ BookStack 的AD群组机制是把 BookStack 既有的角色跟 AD 群组串起来,而不是复制 AD 群组到 BookStack。
◎ AD 群组名称可以包含底线 ”_” 或减 “-“,但不可以有空白,也不能是中文。
◎ AD 成员帐号若为 AD 群组的孙成员,一样可以被带进连结的角色 (子群组的名称也不能有空白及中文)。

 

  测试没问题后,若希望 AD 在异动群组成员时,BookStack 能同步调整角色成员,请进行下列设定:
1. 在 AD 新增自定义管理者群组,例:BS_Admin。
2. 将 AD 管理者帐号 administrator 加入到 BS_Admin。
3. 修改 BookStack 的 Admin 角色,在「外部身份验证ID」栏位输入 BS_Admin。
4. 修改 .env,将 LDAP_REMOVE_FROM_GROUPS 改成 true。

 

【注意】
◎ 1~3的步骤要先进行,才能修改步骤4的值,否则 BookStack 的 admin 角色成员会被清空,造成没有任何帐号有管理权限。
◎如不幸发生上述情形,需连进资料库,修改 “roles” table ,将 admin 角色的 external_auth_id 栏位,输入 AD 自定义的管理者群组名称 (如 BS_Admin)。

 

【相關資料】

发表评论

请注意:: 评论审核已启用,可能会耽误您的评论. 有没有必要重新提交您的评论.