オンプレGitLabにGoogleアカウントでログイン
AzureADアカウントでのログインは
以前
投稿しましたが、
Googleアカウントでのログインは書いてなかったなと思いましたので書きました。
社内での利用ならG Suiteアカウントを使うのが一般的かと思いますが、Googleアカウントでもできました。
GitLabは
sameersbn/gitlab
のコンテナを利用させてもらってdocker-composeで構築します。
以下の手順は
こちらの投稿
で構築したGitLabに機能追加しました。
ちなみにバージョンは12.9.5で確認しています。
GCP側の準備
Google OAuth2の公式の手順は
こちら
にあります。
手順に従って、プロジェクトを作成しましたら、
Google API Consoleにアクセスして、OAuth同意画面に進みます。
ユーザーの種類は、今回はテストなので外部としています。
G Suiteの場合は内部とするのがいいと思います。
次に、認証情報にて「認証情報を作成」⇒「OAuth クライアント ID」に進みます。
こちらで入力する内容はドキュメントを参照してください。
僕の環境では以下のようになりますが、ドメインなど各自の環境に合わせて変更してください。
承認済みのJavaScript生成元 : https://example.tsuchinokometal.com
承認済みのリダイレクトURI : https://example.tsuchinokometal.com/gitlab/users/auth/google_oauth2/callback
作成すると、以下の画面が表示されるので、クライアントIDとシークレットをメモっておいてください。
docker-composeの設定
GitLabコンテナのenvironmentで以下の設定とします。
G Suiteで独自ドメインを利用している場合は、
OAUTH_GOOGLE_RESTRICT_DOMAINを設定した方がいいと思います。
- OAUTH_ENABLED=true
- OAUTH_AUTO_SIGN_IN_WITH_PROVIDER=
- OAUTH_ALLOW_SSO=google_oauth2
- OAUTH_BLOCK_AUTO_CREATED_USERS=false
- OAUTH_AUTO_LINK_LDAP_USER=false
- OAUTH_AUTO_LINK_SAML_USER=false
- OAUTH_EXTERNAL_PROVIDERS=
- OAUTH_GOOGLE_API_KEY=<クライアントID>
- OAUTH_GOOGLE_APP_SECRET=<シークレット>
- OAUTH_GOOGLE_RESTRICT_DOMAIN=
GitLabコンテナを再起動すると以下のようにGoogleボタンが表示されますので、
そこをクリックするとシングルサインオンすることができます。
認証画面が出ますので、自分のGoogleアカウントで認証してみてください。
うまくいけばログインできると思います。
ログインできたアカウントを確認すると、
以下のようにGoogle OAuth2の認証情報を持っていることを確認できます。