BookStack 登入透过 LDAP / AD 验证

依照 BookStack 官方说明,要使用 LDAP / AD 作为登入验证,需先将下列设定值新增至 .env 档案,范例网域:
◎ AD 网域: abc.com.tw
◎ AD 管理者帐号 / 密碼: 管理员 / 123456

 
 
  # General auth  AUTH_METHOD=ldap    # The LDAP host, Adding a port is optional  LDAP_SERVER=abc.com.tw:389  # If using LDAP over SSL you should also define the protocol:  # LDAP_SERVER=ldaps://example.com:636    # The base DN from where users will be searched within  LDAP_BASE_DN=dc=abc,dc=com,dc=tw    # The full DN and password of the user used to search the server  # Can both be left as false to bind anonymously  LDAP_DN= cn=administrator,cn=users,dc=abc,dc=com,dc=tw  LDAP_PASS=123456    # A filter to use when searching for users  # The user-provided user-name used to replace any occurrences of '${user}'  LDAP_USER_FILTER=(&(sAMAccountName=${user}))  #以 AD 帳號的 sAMAccountName 值作為 BookStack 的帳號。    # Set the LDAP version to use when connecting to the server  LDAP_VERSION=3    # Set the default 'email' attribute. Defaults to 'mail'  LDAP_EMAIL_ATTRIBUTE=mail  #以 AD 帳號的 mail 值作為 BookStack 帳號的 mail 值。    # Set the property to use for a user's display name. Defaults to 'cn'  LDAP_DISPLAY_NAME_ATTRIBUTE=cn  #以 AD 帳號的 cn 值作為 BookStack 帳號的顯示名稱。  #這邊如果改成 sAMAccountName,BookStack 仍會帶到 cn,原因不明。    # If you need to allow untrusted LDAPS certificates, add the below and uncomment (remove the #)  # Only set this option if debugging or you're absolutely sure it's required for your setup.  #LDAP_TLS_INSECURE=true  

◎ 修改的参数过程,只要储存 .env 档即可套用新的设定值,不需要重启 Apache。
◎ 「显示名称」若有空格,会显示不完整。

 

  改完生效后,会发生一个问题,当以 AD 管理者 (管理员) 登入時,没有管理者权限;而原本 BookStack 的管理者 ([email protected]) 又已无法登入。依照官方说明,请依下列步骤设定:
1. 先关闭 .env 的 LDAP/AD 验证设定。
2. 以 BookStack 的管理者帐户 ([email protected]) 登入。
3. 开启 .env 的 LDAP/AD 验证设定。
4. 到编辑使用者资料页面,会有个「外部身份验证ID」栏位,进口”CN =管理员,CN =用户,DC = ABC,DC = COM,DC = TW” (大小写不可有误),把BookStack 管理者 ([email protected])跟 AD 管理者 (管理员)串起来。

5. 登出,以 AD 管理者 (管理员) 登入,即可拥有管理者权限。
 

 

2 回应

  1. 丹尼尔·周 说: |

    版主好
    请问
    1. “名稱”能用中文名吗?
    2. 外部身份这个栏位我能这样填吗?
    CN = danielchou, CN =用户, DC = ABC,DC =本地

    谢谢

    您好
    1.我印象是可以的。
    2.要看你的AD架构,假设danielchou是在users底下,那你打的那串就没错。
    谢谢

    陈方安生 回复 |

发表评论

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