正式なドキュメントは英語版であり、この日本語訳はAI支援翻訳により作成された参考用のものです。日本語訳の一部の内容は人間によるレビューがまだ行われていないため、翻訳のタイミングにより英語版との間に差異が生じることがあります。最新かつ正確な情報については、英語版をご参照ください。

LDAPによるGitLab Duoアドオンシートの管理

  • プラン: Premium、Ultimate
  • 提供形態: GitLab Self-Managed

GitLab管理者は、LDAPグループメンバーシップに基づいて、GitLab Duoアドオンシートの自動割り当てを設定できます。この機能を有効にすると、LDAPグループメンバーシップに応じて、ユーザーのサインイン時にGitLabはアドオンシートを自動的に割り当てまたは削除します。

シート管理ワークフロー

  1. 設定: 管理者は、duo_add_on_groups設定でLDAPグループを指定します。
  2. シートの同期: GitLabは、次の2つの方法でLDAPグループメンバーシップを確認します:
    • ユーザーサインイン時: ユーザーがLDAP経由でサインインすると、GitLabはそのグループメンバーシップを即座にチェックします。
    • 定刻同期: GitLabは毎日午前2:00に、すべてのLDAPユーザーを自動的に同期し、ユーザーがサインインしていなくてもシート割り当てが最新の状態に保たれるようにします。
  3. シートの割り当て:
    • ユーザーがduo_add_on_groupsに指定されているいずれかのグループに属している場合、(未割り当てであれば)アドオンシートが割り当てられます。
    • ユーザーがこのリストで指定されているグループに属していない場合、(割り当て済みであれば)アドオンシートが削除されます。
  4. 非同期処理: シートの割り当てと削除は非同期で処理されるため、メインのサインインフローが中断されることはありません。

次の図は、このワークフローを示しています:

%%{init: { "fontFamily": "GitLab Sans" }}%%
sequenceDiagram
    accTitle: Workflow of GitLab Duo add-on seat management with LDAP
    accDescr: Sequence diagram showing automatic GitLab Duo add-on seat management based on LDAP group membership. Users sign in, GitLab authenticates them, then enqueues a background job to sync seat assignment based on their group membership.

    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

    Note over GitLab, Background Job: Additionally, LdapAllAddOnSeatSyncWorker runs daily at 2 AM to sync all LDAP users

GitLab Duoアドオンシート管理を設定する

LDAPによるアドオンシート管理をオンにするには:

  1. インストール用に編集したGitLab設定ファイルを開きます。
  2. LDAPサーバーの設定にduo_add_on_groups設定を追加します。
  3. GitLab Duoアドオンシートを割り当てる必要があるLDAPグループ名の配列を指定します。

次の例は、Linuxパッケージインストールの場合のgitlab.rb設定です:

gitlab_rails['ldap_servers'] = {
  'main' => {
    # Additional LDAP settings removed for readability
    'duo_add_on_groups' => ['duo_users', 'admins'],
  }
}