LDAP 和 Active Directory 配置

LDAP (Light-weight Directory Access Protocol) 是企业广泛部署的用户信息管理服务器,微软的活动目录服务器(Active Directory)完全兼容 LDAP。这个文档假定您已经了解了 LDAP 相关的知识和术语。

SeaTable 用户介绍

SeaTable 中的用户分为两类:

SeaTable 会自动从内部数据库和 LDAP 中查找用户,只要用户存在于任何一个来源,他们都能登录。

基本的 LDAP/AD 集成配置

SeaTable 要求 LDAP/AD 服务器中每个用户都有一个唯一的 ID。一般来说,AD 中用ObjectGUID,而其他LDAP服务器用EntryUUID

把下面的配置添加到 dtable_web_settings.py 中。

ENABLE_LDAP = True
LDAP_PROVIDER = 'ldap'
LDAP_SERVER_URL = 'ldap://192.168.0.124'
LDAP_BASE_DN = 'ou=test,ou=test,dc=seatable,dc=local'
LDAP_ADMIN_DN = 'administrator@seatable.local'
LDAP_ADMIN_PASSWORD = 'Hello@123'
LDAP_USER_UNIQUE_ID = 'objectGUID'
LDAP_LOGIN_ATTR = 'mail'


# 以下选项用于群组同步
LDAP_SYNC_GROUP = True
LDAP_GROUP_MEMBER_ATTR = 'member'
LDAP_GROUP_MEMBER_UID_ATTR = 'uid'
LDAP_USER_OBJECT_CLASS = 'person'
LDAP_GROUP_OBJECT_CLASS = 'group'
LDAP_GROUP_UUID_ATTR = 'objectGUID'
SYNC_GROUP_AS_DEPARTMENT = False
LDAP_DEPARTMENT_NAME_ATTR = ''

# 以下是可选选项

# 导入AD用户时,是否激活用户
ACTIVATE_USER_WHEN_IMPORT = True

# 是否兼容LDAP用户通过SAML单点登录方式登录
LDAP_SAML_USE_SAME_UID = True

# 该属性是LDAP中用户的角色,SeaTable使用该属性作为用户的role,默认值为''
LDAP_USER_ROLE_ATTR = 'title'

# 该属性是LDAP中用户的工号,SeaTable使用该属性作为用户的ID,默认值是''
LDAP_EMPLOYEE_ID_ATTR = 'employee_id'

# 以下两个属性用于拼接处用户的昵称:first_name last_name, 这两个是可选选项,默认是''
LDAP_USER_FIRST_NAME_ATTR = 'givenName'
LDAP_USER_LAST_NAME_ATTR = 'sn'

# 针对中文名字,将 first_name 和 last_name 的顺序反过来,这个是可选选项,默认是False
LDAP_USER_NAME_REVERSE = True

# 用作 SeaTable 中用户登录 LDAP 的属性。如果通过 email 来登录,可以使用 'mail' 或者 'userPrincipalName';如果希望通过 Windows 用户名登录,可以使用 'sAMAccountName' 属性
LDAP_LOGIN_ATTR = 'userPrincipalName'

# 该属性为用户的联系邮箱
LDAP_CONTACT_EMAIL_ATTR = 'mail'

# 用来过滤可登录的用户范围,比如限定在某个安全组内
LDAP_FILTER = 'memberOf=CN=group,CN=developers,DC=example,DC=com'
LDAP_GROUP_FILTER = 'memberOf=CN=group,CN=developers,DC=example,DC=com'

# 从 4.0 开始,支持 LDAP 登录 支持SASL认证
ENABLE_SASL = True
SASL_MECHANISM = 'DIGEST-MD5'   # SASL 认证机制
SASL_AUTHC_ID_ATTR = 'cn'       # olcAuthzRegexp 映射正则匹配规则中的<match>部分的uid对应的用户属性

各个配置选项的含义如下:

注意:如果配置项包含中文,需要确保配置文件使用 UTF8 编码保存。

关于如何选定 LDAP_BASE_DN和 LDAP_ADMIN_EMAIL 的一些技巧:

LDAP 同步用户和群组

SeaTable 定期同步 LDAP 用户和组。在 dtable-event.conf 文件中增加以下配置选项,重启 SeaTable,以便生效。

[LDAP_SYNC]
enabled = true
sync_interval = 60  # 单位是秒

注:如果需要同步群组,需要在 dtable_web_settings.py 中添加相应的配置项,具体配置,请参考上文基本的 LDAP/AD 集成配置

Last modified by seatable, 2023-08-08

SeaTable 用户介绍
基本的 LDAP/AD 集成配置
LDAP 同步用户和群组