Google OAuth2 OmniAuth プロバイダ
Google OAuth2 OmniAuth プロバイダを有効にするには、Google にアプリケーションを登録する必要があります。 Google がクライアント ID と秘密鍵を生成します。
Google OAuth の有効化
Google側では:
- クラウドリソースマネージャーのページに移動します。
- プロジェクトの作成
- プロジェクト情報を提供してください:
- プロジェクト名- “GitLab” で問題ありません。
- プロジェクトID- Google Developer に登録されているすべてのアプリケーションで一意である必要があります。 Google はデフォルトでランダムにプロジェクト ID を生成します。 ランダムに生成された ID を使用するか、新しい ID を選択することができます。
- ページを更新すると、リストに新しいプロジェクトが表示されます。
- GoogleAPI Consoleにアクセスします。
- 左上にある、以前に作成したプロジェクトを選択します。
- サイドバーから資格情報を選択
- OAuth同意画面を選択し、フォームに必要な情報を入力してください。
- 認証情報]タブで、[認証情報の作成] > [OAuthクライアントID]を選択します。
- 必要事項をご記入ください。
- アプリケーションの種類- “ウェブアプリケーション “を選択してください。
- 名前- デフォルトのものを使用するか、独自のものを指定します。
-
Authorized JavaScript origins-これはGitLabではあまり使われません。
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とクライアントシークレットが表示されるはずです。 後で必要になるので、メモしておくか、このページを開いておいてください。
- プロジェクトがGoogle KubernetesEngineにアクセスできるようにするには、これらのAPIも有効にする必要があります:
- Google Kubernetes Engine API
- クラウドリソースマネージャAPI
- クラウド請求書API
そのためには、以下のことが必要です:
- GoogleAPI Consoleにアクセスします。
- ページ上部の「ENABLE APIS AND SERVICES」ボタンをクリックします。
- 上記の各APIを検索し、APIのページで「ENABLE」ボタンを押してください。 APIが完全に機能するまで数分かかる場合があります。
GitLab サーバーで:
-
設定ファイルを開きます。
Omnibus GitLabの場合:
sudo editor /etc/gitlab/gitlab.rb
ソースからのインストールの場合:
cd /home/git/gitlab sudo -u git -H editor config/gitlab.yml
- 初期設定についてはOmniAuth の初期設定を参照してください。
-
プロバイダの設定を追加します:
Omnibus GitLabの場合:
gitlab_rails['omniauth_providers'] = [ { "name" => "google_oauth2", "app_id" => "YOUR_APP_ID", "app_secret" => "YOUR_APP_SECRET", "args" => { "access_type" => "offline", "approval_prompt" => '' } } ]
ソースからのインストールの場合:
- { name: 'google_oauth2', app_id: 'YOUR_APP_ID', app_secret: 'YOUR_APP_SECRET', args: { access_type: 'offline', approval_prompt: '' } }
- Google Developer ページから
YOUR_APP_ID
をクライアント ID に変更します。 - 同様に、
YOUR_APP_SECRET
をクライアント・シークレットに変更します。 -
Googleは生のIPアドレスを受け付けないので、FQDNを使うようにGitLabを設定してください。
オムニバス・パッケージ
external_url 'https://gitlab.example.com'
ソースからのインストールの場合:
gitlab: host: https://gitlab.example.com
- 設定ファイルを保存します。
- Omnibus経由またはソースからそれぞれGitLabをインストールした場合は、変更を有効にするためにGitLabを再設定または再起動します。
サインインページでは、通常のサインインフォームの下にGoogleのアイコンがあるはずです。 アイコンをクリックして認証プロセスを開始します。 GoogleはユーザーにサインインとGitLabアプリケーションの認証を求めます。 すべてがうまくいけば、ユーザーはGitLabに戻り、サインインされます。