OAuth 2.0認証プロバイダとしてGoogle OAuth 2.0を使用します。
Google OAuth 2.0 OmniAuth プロバイダを有効にするには、Google にアプリケーションを登録する必要があります。Google は、クライアント ID とシークレットキーを生成します。
Google OAuth を有効にするには、次のように設定します:
- Google クラウドリソースマネージャー
- Google API コンソール
- GitLab サーバー
Google Cloud Resource Managerの設定
- Google Cloud Resource Managerにアクセスします。
- CREATE PROJECTを選択します。
-
プロジェクト名に
GitLab
と入力します。 - プロジェクトIDでは、Googleはデフォルトでランダムに生成されたプロジェクトIDを提供します。このランダムに生成された ID を使用するか、新しい ID を作成することができます。新しい ID を作成する場合は、Google Developer に登録されているすべてのアプリケーションで一意でなければなりません。
新しいプロジェクトを一覧に表示するには、ページを更新してください。
Google API Console の設定
- Google API Consoleにアクセスします。
- 左上で、以前に作成したプロジェクトを選択します。
- OAuth同意画面を選択し、各項目を入力します。
- Credentials > Create credentials > OAuth client IDを選択します。
- フィールドを入力します:
- アプリケーションの種類:Webアプリケーションを選択します。
- 名前:デフォルトの名前を使用するか、独自の名前を入力します。
- 作成者のJavaScriptオリジン:
https://gitlab.example.com
を入力してください。 -
作成者のリダイレクトURI:ドメイン名の後にコールバックURIを1つずつ入力します:
https://gitlab.example.com/users/auth/google_oauth2/callback https://gitlab.example.com/-/google_api/auth/callback
- クライアントIDとクライアントシークレットが表示されます。クライアントIDとクライアントシークレットが表示されます。
- プロジェクトがGoogle Kubernetes Engineにアクセスできるようにするには、:
- Google Kubernetes Engine API
- クラウドリソースマネージャーAPI
- クラウド課金API
を使用します:
- Google API Consoleにアクセスします。
- ページ上部の「ENABLE APIS AND SERVICES」を選択します。
- 上記の各APIを検索します。APIのページで「ENABLE」を選択します。APIが完全に機能するまで数分かかる場合があります。
GitLabサーバーの設定
-
設定ファイルを開きます。
Linuxパッケージ・インストールの場合:
sudo editor /etc/gitlab/gitlab.rb
セルフコンパイルによるインストールの場合:
cd /home/git/gitlab sudo -u git -H editor config/gitlab.yml
-
共通設定を構成して、シングルサインオンプロバイダとして
google_oauth2
。これにより、既存のGitLabアカウントを持っていないユーザーのためのJust-In-Timeアカウントプロビジョニングが可能になります。 -
プロバイダー設定を追加します。
Linuxパッケージ・インストールの場合:
gitlab_rails['omniauth_providers'] = [ { name: "google_oauth2", # label: "Provider name", # optional label for login button, defaults to "Google" app_id: "<YOUR_APP_ID>", app_secret: "<YOUR_APP_SECRET>", args: { access_type: "offline", approval_prompt: "" } } ]
セルフコンパイルによるインストールの場合:
- { name: 'google_oauth2', # label: 'Provider name', # optional label for login button, defaults to "Google" app_id: 'YOUR_APP_ID', app_secret: 'YOUR_APP_SECRET', args: { access_type: 'offline', approval_prompt: '' } }
-
<YOUR_APP_ID>
を Google Developer ページのクライアント ID に置き換えてください。 -
<YOUR_APP_SECRET>
を Google Developer ページにあるクライアントシークレットに置き換えてください。 -
Googleは生のIPアドレスを受け付けないので、完全修飾ドメイン名を使うようにGitLabを設定してください。
Linuxパッケージ・インストールの場合:
external_url 'https://gitlab.example.com'
セルフコンパイルによるインストールの場合:
gitlab: host: https://gitlab.example.com
- 設定ファイルを保存します。
- 変更を有効にするには
- Linux パッケージを使ってインストールした場合は、GitLab を再設定してください。
- インストールをセルフコンパイルした場合は、GitLabを再起動してください。
ログインページで、通常のログインフォームの下に Google アイコンが表示されているはずです。アイコンを選択して認証プロセスを開始します。GoogleはユーザーにサインインとGitLabアプリケーションの作成を求めます。問題がなければ、ユーザーはGitLabに戻り、サインインされます。