Help us learn about your current experience with the documentation. Take the survey.
通过 LDAP 管理 GitLab Duo 附加组件席位
- 版本:Premium, Ultimate
- 产品:GitLab Self-Managed
GitLab 管理员可以配置基于 LDAP 组成员身份来自动分配 GitLab Duo 附加组件席位。启用后,当用户登录时,GitLab 会根据其 LDAP 组成员身份,自动为他们分配或移除附加组件席位。
席位管理工作流
- 配置:管理员在
duo_add_on_groups配置设置 中指定 LDAP 组。 - 用户登录:当用户通过 LDAP 登录时,GitLab 会检查他们的组成员身份。GitLab 每个用户仅支持一个 LDAP 身份。
- 席位分配:
- 如果用户属于
duo_add_on_groups中列出的任何组,系统将为他们分配一个附加组件席位(如果尚未分配)。 - 如果用户不属于任何列出的组,他们的附加组件席位将被移除(如果之前已分配)。
- 如果用户属于
- 异步处理:席位的分配和移除操作是异步处理的,以确保主要的登录流程不会被中断。
下图说明了该工作流程:
sequenceDiagram
participant User
participant GitLab
participant LDAP
participant Background Job
User->>GitLab: Sign in with LDAP credentials
GitLab->>LDAP: Authenticate user
LDAP-->>GitLab: User authenticated
GitLab->>Background Job: Enqueue 'LdapAddOnSeatSyncWorker' seat sync job
GitLab-->>User: Sign-in complete
Background Job->>Background Job: Start
Background Job->>LDAP: Check user's groups against duo_add_on_groups
LDAP-->>Background Job: Return membership of groups
alt User member of any duo_add_on_groups?
Background Job->>GitLab: Assign Duo Add-on seat
else User not in duo_add_on_groups
Background Job->>GitLab: Remove Duo Add-on seat (if assigned)
end
Background Job-->>Background Job: Complete
配置 Duo 附加组件席位管理
要启用通过 LDAP 管理附加组件席位:
- 打开您为 安装 而编辑的 GitLab 配置文件。
- 将
duo_add_on_groups设置添加到您的 LDAP 服务器配置中。 - 指定应拥有 Duo 附加组件席位的 LDAP 组名称数组。
以下示例是适用于 Linux 包安装的 gitlab.rb 配置:
gitlab_rails['ldap_servers'] = {
'main' => {
# 为简洁起见,此处省略了其他 LDAP 设置
'duo_add_on_groups' => ['duo_users', 'admins'],
}
}