gitlab の初期登録後に、Google ログインを有効にした
Google Oauth を使うと、Gitlab側でいちいちユーザーを作らずに済むので便利。
認証の設定について
Google OAuthの設定で2つの連携設定がある。
必要なもの
httpsはあったほうが良い。っていうか今どきは当たり前。
google oauth の取得方法
Google アカウントでAPI Consoleにログインして、Google のOAuth用のWeb credential を作る。
oauth が準備できたら
gitlab の設定をする。
omnibus の場合 /etc/gitlab/gitlab.rb
Google Oauthでログインしたユーザをすぐに有効にする。
この設定が大事。
gitlab_rails['omniauth_block_auto_created_users'] = false
この設定を true にするとユーザ登録はできてもブロックされる。
ちなみにデフォルトはブロックです。 GoogleのOAuth連携できるユーザーはすべて無条件で許可されてしまいます。
この設定をfalse にすると google で認証されたユーザーは無条件に許可されるので、Gitlab側の設定で「ドメインに制限」を掛ける必要がある。
Gitlab側の設定では
とたどって許可したいドメインだけに限定しないと大変なことになる。
gitlab 側の設定
### OmniAuth Settings ###! Docs: https://docs.gitlab.com/ce/integration/omniauth.html gitlab_rails['omniauth_enabled'] = true gitlab_rails['omniauth_allow_single_sign_on'] = ['google_oauth2'] # gitlab_rails['omniauth_allow_single_sign_on'] = ['saml'] # gitlab_rails['omniauth_sync_email_from_provider'] = 'saml' # gitlab_rails['omniauth_sync_profile_from_provider'] = ['saml'] # gitlab_rails['omniauth_sync_profile_attributes'] = ['email'] # gitlab_rails['omniauth_auto_sign_in_with_provider'] = 'saml' gitlab_rails['omniauth_block_auto_created_users'] = false # gitlab_rails['omniauth_auto_link_ldap_user'] = false # gitlab_rails['omniauth_auto_link_saml_user'] = false gitlab_rails['omniauth_external_providers'] = ['google_oauth2'] gitlab_rails['omniauth_providers'] = [ { "name" => "google_oauth2", "app_id" => "xxxxxxxxxxxxxxx0dse47iulk.apps.googleusercontent.com", "app_secret" => "xxxxxxxxxxxxxxxxxx", "args" => { "access_type" => "offline", "approval_prompt" => "" } } ]
ログインチェック
設定したら gitlab を reconfigure してログインをチェックする。コレが大事。
ぱぱっとやれば大丈夫。