目次

Gitlab を Google アカウントでログイン可能に(Google OAuth2)

Gitlab を Google アカウントでログイン可能にします。
https://docs.gitlab.com/ee/integration/google.html

Google 側の設定

1.Google Cloud Platform を開く
https://console.cloud.google.com/cloud-resource-manager

2.【プロジェクトを作成】を選ぶ

3.プロジェクト情報を入力する
プロジェクト名:GitLab など

4.API コンソールを開く
https://console.developers.google.com/apis/dashboard

5.左上のプルダウンから作成したプロジェクト(GitLab)を選択

6.サイドバーから【OAuth 同意画面】を選択&作成
承認済みドメイン : gitlab.example.com
アプリケーション ホームページ リンク : https://gitlab.example.com

7.サイドバーから【認証情報】→【認証情報を作成】→【OAuth クライアントID】
アプリケーションの種類:ウェブ アプリケーション
承認済みの JavaScript 生成元:https://gitlab.example.com
承認済みのリダイレクト URI:以下の2つを登録
https://gitlab.example.com/users/auth/google_oauth2/callback
https://gitlab.example.com/-/google_api/auth/callback

8.クライアントIDとクライアントシークレットを取得

Gitlab 側の設定

OmniAuth の共通設定も合わせて行う。
https://docs.gitlab.com/ee/integration/omniauth.html#initial-omniauth-configuration

# オプション の変更
$ sudo editor /etc/gitlab/gitlab.rb

gitlab_rails['omniauth_enabled'] = true

// この Gitlab にアカウントがなかった場合、アカウントの自動生成を許可するプロバイダを指定
gitlab_rails['omniauth_allow_single_sign_on'] = ['google_oauth2']

// true にすると自動生成されたアカウントをブロックする(管理者によるブロック解除が必要)
gitlab_rails['omniauth_block_auto_created_users'] = false

// 指定したプロバイダは全てのユーザがアカウントを作成作成できるようにする
// または、指定したプロバイダでログインすると内部プロジェクトにはアクセスできなくなる
gitlab_rails['omniauth_external_providers'] = ['google_oauth2']

// 先程取得したクライアントIDとクライアントシークレットを設定する
gitlab_rails['omniauth_providers'] = [
  {
    "name" => "google_oauth2",
    "app_id" => "クライアントID",
    "app_secret" => "クライアントシークレット",
    "args" => { "access_type" => "offline", "approval_prompt" => "" }
  }
]

# 設定の反映
$ sudo gitlab-ctl reconfigure

サイトにアクセスし、Google アカウントによるログインが可能になったことを確認する。