OAuth 2.0 認証プロバイダーとしてアトラシアンを使用します。

パスワードレス認証用の Atlassian OmniAuth プロバイダを有効にするには、アトラシアンにアプリケーションを登録する必要があります。

アトラシアンのアプリケーション登録

  1. アトラシアン開発者コンソールにアクセスし、アプリケーションを管理するアトラシアンアカウントでサインインします。
  2. Create a new app を選択します。
  3. アプリ名(’GitLab’など)を選択し、作成を選択します。
  4. GitLabの設定ステップのClient IDSecret
  5. 左サイドバーのAPIS AND FEATURESOAuth 2.0 (3LO) を選択します。
  6. GitLab コールバック URL をhttps://gitlab.example.com/users/auth/atlassian_oauth2/callback のフォーマットで入力し、Save changes を選択します。
  7. 左のサイドバーのAPIS AND FEATURES+ Addを選択します。
  8. Jira platform REST API追加] を選択し、[設定] を選択します。
  9. 次のスコープの横にある [追加] を選択します:
    • Jira イシュー データの表示
    • ユーザー プロファイルの表示
    • イシューの作成と管理

GitLab 設定

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

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

    sudo editor /etc/gitlab/gitlab.rb
    

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

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

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

    gitlab_rails['omniauth_providers'] = [
      {
        name: "atlassian_oauth2",
        # label: "Provider name", # optional label for login button, defaults to "Atlassian"
        app_id: "<your_client_id>",
        app_secret: "<your_client_secret>",
        args: { scope: "offline_access read:jira-user read:jira-work", prompt: "consent" }
      }
    ]
    

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

    - { name: "atlassian_oauth2",
        # label: "Provider name", # optional label for login button, defaults to "Atlassian"
        app_id: "<your_client_id>",
        app_secret: "<your_client_secret>",
        args: { scope: "offline_access read:jira-user read:jira-work", prompt: "consent" }
     }
    
  4. <your_client_id><your_client_secret>アプリケーション登録時に受け取ったクライアント認証情報に変更します。
  5. 設定ファイルを保存します。

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

サインインページで、通常のサインインフォームの下に Atlassian アイコンが表示されているはずです。アイコンを選択して認証プロセスを開始します。

問題がなければ、ユーザーは Atlassian の認証情報を使って GitLab にサインインします。