LoginSignup
0
1

More than 1 year has passed since last update.

GitLabにGoogleアカウントでログインできるようにする

Posted at

自分で構築したGitLabにGoogleアカウントでログインできるようにする手順のまとめです。
Gitlabを構築する下記記事の続きになります。

前提(前準備)

GCP(Google Cloud Platform)にGitLab用のプロジェクトが作成済みの前提です。

GCPにOAuth用の設定を追加する

APIとサービス > OAuth同意画面 でGoogleアカウント連携時の設定を行います。
「User Type」には「内部」を選択。
内部を選択した場合には、このGCPに紐づくGoogle Workspaceのユーザーのみが利用できる設定になります。
外部を選択すると全てのGoogleアカウントで利用できるようになりますが、プライバシーポリシーの設定やGoogleの審査などが必要になるようで(組織外のユーザー情報を扱うことになるので)、結構手間がかかります。
今回は組織内のユーザーのみが使えれば良いので、内部を選択しています。
image.png
GitLabのロゴ画像などは下記から取得できます。
https://about.gitlab.com/press/press-kit/
image.png
内部を選択しているので、プライバシーポリシーや利用規約は不要です。
image.png
利用するスコープを追加します。
image.png
メールアドレスや一般的なユーザープロファイルが参照できれば良いので、userinfo.emailuserinfo.profileを追加しておきます。
image.png
次にクライアントID/シークレットを作成します。
APIとサービス > 認証情報 と進み、 認証情報を作成から「OAuthクライアントID」を選択。
image.png
「承認済みのJavaScript生成元」として下記を指定

  • https://gitlab.xxx.com

「認証済みのリダイレクトURI」として下記を指定

  • https://gitlab.xxx.com/users/auth/google_oauth2/callback
  • https://gitlab.xxx.com/-/google_api/auth/callback
    image.png
    完了すると「クライアントID」と「クライアントシークレット」が作成されますので、大切に保管してください。
    image.png

GitLabにGoogle OAuthの設定を追加する

/etc/gitlab/gitlab.rbを編集します。

設定内容としては下記。

  • GitLabに登録済みのユーザーのみGooleログインを利用可能
    勝手にGitLabのユーザーを登録しない
  • GitLabに同じメールアドレスのユーザーがいた場合、同一ユーザーとして扱う
    omniauth_auto_link_user
  • Googleログインの場合は2FAは不要
    omniauth_allow_bypass_two_factor
    Googleログインで2FAを行っているので。
/etc/gitlab/gitlab.rb
gitlab_rails['omniauth_auto_link_user'] = ['google_oauth2']
gitlab_rails['omniauth_allow_bypass_two_factor'] = ['google_oauth2']
gitlab_rails['omniauth_providers'] = [
  {
    "name" => "google_oauth2",
    "label" => "Google(好きに設定)",
    "app_id" => "クライアントID",
    "app_secret" => "クライアントシークレット",
    "args" => { "access_type" => "offline", "approval_prompt" => "" }
  }
]

設定が完了したら、GitLabを再構築します。

$ sudo gitlab-ctl reconfigure

ログイン画面に下記の通り「Googleログイン」ボタンが表示されたら完了です!
image.png

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1