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の設定

  1. Google Cloud Resource Managerにアクセスします。
  2. CREATE PROJECTを選択します。
  3. プロジェクト名にGitLab と入力します。
  4. プロジェクトIDでは、Googleはデフォルトでランダムに生成されたプロジェクトIDを提供します。このランダムに生成された ID を使用するか、新しい ID を作成することができます。新しい ID を作成する場合は、Google Developer に登録されているすべてのアプリケーションで一意でなければなりません。

新しいプロジェクトを一覧に表示するには、ページを更新してください。

Google API Console の設定

  1. Google API Consoleにアクセスします。
  2. 左上で、以前に作成したプロジェクトを選択します。
  3. OAuth同意画面を選択し、各項目を入力します。
  4. Credentials > Create credentials > OAuth client IDを選択します。
  5. フィールドを入力します:
    • アプリケーションの種類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
      
  6. クライアントIDとクライアントシークレットが表示されます。クライアントIDとクライアントシークレットが表示されます。
  7. プロジェクトがGoogle Kubernetes Engineにアクセスできるようにするには、:
    • Google Kubernetes Engine API
    • クラウドリソースマネージャーAPI
    • クラウド課金API

    を使用します:

    1. Google API Consoleにアクセスします。
    2. ページ上部の「ENABLE APIS AND SERVICES」を選択します。
    3. 上記の各APIを検索します。APIのページで「ENABLE」を選択します。APIが完全に機能するまで数分かかる場合があります。

GitLabサーバーの設定

  1. 設定ファイルを開きます。

    Linuxパッケージ・インストールの場合:

    sudo editor /etc/gitlab/gitlab.rb
    

    セルフコンパイルによるインストールの場合:

    cd /home/git/gitlab
    sudo -u git -H editor config/gitlab.yml
    
  2. 共通設定を構成して、シングルサインオンプロバイダとしてgoogle_oauth2 。これにより、既存のGitLabアカウントを持っていないユーザーのためのJust-In-Timeアカウントプロビジョニングが可能になります。
  3. プロバイダー設定を追加します。

    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: '' } }
    
  4. <YOUR_APP_ID> を Google Developer ページのクライアント ID に置き換えてください。
  5. <YOUR_APP_SECRET> を Google Developer ページにあるクライアントシークレットに置き換えてください。
  6. Googleは生のIPアドレスを受け付けないので、完全修飾ドメイン名を使うようにGitLabを設定してください。

    Linuxパッケージ・インストールの場合:

    external_url 'https://gitlab.example.com'
    

    セルフコンパイルによるインストールの場合:

    gitlab:
      host: https://gitlab.example.com
    
  7. 設定ファイルを保存します。
  8. 変更を有効にするには

ログインページで、通常のログインフォームの下に Google アイコンが表示されているはずです。アイコンを選択して認証プロセスを開始します。GoogleはユーザーにサインインとGitLabアプリケーションの作成を求めます。問題がなければ、ユーザーはGitLabに戻り、サインインされます。