GMT+0900新しいサーバが来て開発環境を始めとした社内インフラの構築がかなり進みだして楽しいのですが、いろんなサービスが立ち上がりはじめて、このままではアカウントの管理的にかなりめんどくさいことになりそうなので手始めに立てたばかりのGitLabをADと連携することにしました。9.0.2ActiveDirectory(以下AD)会社ではADと連携してますが、OpenLDAPとかでも一緒のハズです。設定gitlab.rbに記述します。私の場合は公式のDockerイメージを使用しておりgitlab.rbをGitLabコンテナの/etc/gitlabディレクトリにマウントしてます。Dockerを使用しようがしまいが設定は同じです。公式のドキュメントはこちらです。デフォルトのLDAP設定gitlab.rbの140行目くらいに下記のような記述があります。実際はいろいろコメントやEE用の設定や複数のLDAPサーバの設定が記述してありますが、下記はそのあたりを削除して載せてます。複数のLDAPはEEでしか使用できません。Explorerあたりを使って属性と値を見ながらいい具合に書き換えます。具体的には下記のような感じになると思います。'sn'EOS以下、項目に対する補足です。attributes部分は後述。ユーザを探し始めるルート。ユーザの絞り込みに使用。LDAPクエリを指定。絞り込まない場合はいらないattributesについてemailおそらく前から順に属性を探して、属性がが存在すればその値を使用するようだ例えGitLab管理者でも後から変更はできない(LDAPの値が絶対適用される)非LDAP認証で先にGitLabアカウントを作成していて、そのユーザがLDAPで存在するメールアドレスを使用している場合に、後からLDAP認証すると既に作成しているユーザの情報を引き継ぐ要するに既に作成しているユーザでも、後からLDAP認証に変更できるusernameおそらく前から順に属性を探して、属性がが存在すればその値を使用するようだ「gitlab.example.com/username/project」とか「@username」で使用されるユーザ間での重複は不可。Area」で後から変更できるnameusernameと紛らわしいが、画面上に表示されるユーザ名first_nameとlast_nameどこで使用しているかわからなかった設定後にLDAP認証でログインして上手く値が設定されていなかったとしても、GitLab管理者でユーザ削除後に設定変更して再度LDAP認証でログインすれば同じユーザを使って何度でも確認できます。restartでGitLabを再起動します。Dockerの場合はコンテナを再起動すればよろし。ログインしてみるGitLabにアクセスすると、ログイン画面でLDAPのタブが増えているのでそちらでログインします。