OAuth 2.0 認証プロバイダとして Salesforce を使用します。

GitLabインスタンスをSalesforceとインテグレーションして、ユーザーがSalesforceアカウントでGitLabインスタンスにサインインできるようにすることができます。

Salesforce 連携アプリの作成

Salesforce OmniAuthプロバイダを有効にするには、GitLabインスタンスにSalesforceの認証情報を使用する必要があります。クレデンシャル(クライアントIDとクライアントシークレットのペア)を取得するには、Salesforce上にConnected Appを作成する必要があります。

  1. Salesforce にサインインします。

  2. Setup]で、[Quick Find]ボックスに「App Manager 」と入力し、[App Manager]を選択し、[New Connected App]を選択します。

  3. 以下のフィールドにアプリケーションの詳細を入力します:
    • Connected App Name(接続アプリ名)」と「API Name(API名)」:任意の値を設定しますが、<Organization>'s GitLab<Your Name>'s GitLab、または何か他の説明的なものを検討してください。
    • 連絡先メールアドレス:Salesforce がお客様またはサポートチームに連絡する際に使用する連絡先メールアドレスを入力します。
    • 説明アプリケーションの説明です。

    Salesforce App Details

  4. API (Enable OAuth Settings)を選択し、Enable OAuth Settingsを選択します。
  5. 以下のフィールドにアプリケーションの詳細を入力します:
    • コールバックURL:GitLab インストールのコールバック URL。例えば、https://gitlab.example.com/users/auth/salesforce/callback.
    • 選択した OAuth スコープAccess your basic information (id, profile, email, address, phone)Allow access to your unique identifier (openid) を右の列に移動します。

    Salesforce OAuth App Details

  6. Save を選択します。

  7. GitLab サーバーで設定ファイルを開きます。

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

    sudo editor /etc/gitlab/gitlab.rb
    

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

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

  9. プロバイダー設定を追加します。

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

    gitlab_rails['omniauth_providers'] = [
      {
        name: "salesforce",
        # label: "Provider name", # optional label for login button, defaults to "Salesforce"
        app_id: "SALESFORCE_CLIENT_ID",
        app_secret: "SALESFORCE_CLIENT_SECRET"
      }
    ]
    

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

    - { name: 'salesforce',
        # label: 'Provider name', # optional label for login button, defaults to "Salesforce"
        app_id: 'SALESFORCE_CLIENT_ID',
        app_secret: 'SALESFORCE_CLIENT_SECRET'
    }
    
  10. Salesforce 接続アプリケーションのページから、SALESFORCE_CLIENT_ID をコンシューマキーに変更します。
  11. Salesforce に接続されたアプリケーションページから、SALESFORCE_CLIENT_SECRET をコンシューマシークレットに変更します。

    Salesforce App Secret Details

  12. 設定ファイルを保存します。

  13. 変更を有効にするには

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

note
GitLabでは、新規ユーザーのメールアドレスが必要です。ユーザーがSalesforceを使ってサインインした後、GitLabはユーザーをプロフィールページにリダイレクトし、そこでEメールを提供し、Eメールを確認する必要があります。