前回、GitLabをインストールしました。
【シンプル】CentOS6にGitLabを簡単にインストールして起動するまで | 田舎に住みたいエンジニアの日記
これから色々とやりたいことがあるので順にやっていきましょう。今回は認証連携としてLDAP連携を進めます。
LDAP連携のための設定
設定は簡単です。/etc/gitlab/gitlab.rbで設定します。
変更前
vi /etc/gitlab/gitlab.rb # gitlab_rails['ldap_enabled'] = false # gitlab_rails['ldap_servers'] = YAML.load <<-'EOS' # remember to close this block with 'EOS' below # main: # 'main' is the GitLab 'provider ID' of this LDAP server # label: 'LDAP' # host: '_your_ldap_server' # port: 389 # uid: 'sAMAccountName' # method: 'plain' # "tls" or "ssl" or "plain" # bind_dn: '_the_full_dn_of_the_user_you_will_bind_with' # password: '_the_password_of_the_bind_user' # active_directory: true # allow_username_or_email_login: false # base: '' # user_filter: '' # ## EE only # group_base: '' # admin_group: '' # sync_ssh_keys: false
デフォルト設定を以下のように変更していきます。
vi /etc/gitlab/gitlab.rb gitlab_rails['ldap_enabled'] = true gitlab_rails['ldap_servers'] = YAML.load <<-'EOS' # remember to close this block with 'EOS' below main: # 'main' is the GitLab 'provider ID' of this LDAP server label: 'LDAP' host: 'LDAP-server' port: 389 uid: 'uid' method: 'plain' # "tls" or "ssl" or "plain" bind_dn: 'cn=Manager,dc=xxxx,dc=xxx' password: 'xxxxxxxx' # active_directory: true # allow_username_or_email_login: false base: 'ou=Users,dc=xxxx,dc=xxx' EOS
これで、リロードすれば、LDAP認証のログイン画面が表示され、LDAPアカウトでも認証できるようになります。しかし、この状態ではメールアドレスがおかしくなる状態になりました。
参照 GitLab CE Omnibus のインストール – ダメ出し Blog
LDAP側でメール情報を持っていないと、メールアドレスが
LDAP のユーザーが初めてログインすると、ユーザーの LDAP エントリーのうち mail、email、userPrincipalName 属性のいずれかの値が E-mail アドレスとして利用されるが、いずれの属性も持たない場合は temp-email-for-oauth-<ユーザー名>@gitlab.localhost になってしまう。 また、この情報は管理者しか変更できない。
この状態になったので、参照先の対応を実施します。ありがとうございます。
vi /opt/gitlab/embedded/service/gitlab-rails/config/initializers/local.rb module Gitlab module OAuth class AuthHash def generate_temporarily_email "#{username}@yourdamain.jp" end end end end
これでリロードして無事メールアドレスも表示されるようになりました。
[amazonjs asin=”4774165751″ locale=”JP” title=”15時間でわかるGit集中講座”]