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 组成员身份,自动为他们分配或移除附加组件席位。

席位管理工作流

  1. 配置:管理员在 duo_add_on_groups 配置设置 中指定 LDAP 组。
  2. 用户登录:当用户通过 LDAP 登录时,GitLab 会检查他们的组成员身份。GitLab 每个用户仅支持一个 LDAP 身份。
  3. 席位分配
    • 如果用户属于 duo_add_on_groups 中列出的任何组,系统将为他们分配一个附加组件席位(如果尚未分配)。
    • 如果用户不属于任何列出的组,他们的附加组件席位将被移除(如果之前已分配)。
  4. 异步处理:席位的分配和移除操作是异步处理的,以确保主要的登录流程不会被中断。

下图说明了该工作流程:

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 管理附加组件席位:

  1. 打开您为 安装 而编辑的 GitLab 配置文件。
  2. duo_add_on_groups 设置添加到您的 LDAP 服务器配置中。
  3. 指定应拥有 Duo 附加组件席位的 LDAP 组名称数组。

以下示例是适用于 Linux 包安装的 gitlab.rb 配置:

gitlab_rails['ldap_servers'] = {
  'main' => {
    # 为简洁起见,此处省略了其他 LDAP 设置
    'duo_add_on_groups' => ['duo_users', 'admins'],
  }
}