正式なドキュメントは英語版であり、この日本語訳はAI支援翻訳により作成された参考用のものです。日本語訳の一部の内容は人間によるレビューがまだ行われていないため、翻訳のタイミングにより英語版との間に差異が生じることがあります。最新かつ正確な情報については、英語版をご参照ください。

JWTを認証プロバイダーとして使用

  • プラン: Free、Premium、Ultimate
  • 提供形態: GitLab Self-Managed

JWT OmniAuthプロバイダーを有効にするには、アプリケーションをJWTに登録する必要があります。JWTは、あなたが使用するためのシークレットキーを提供します。

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

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

    sudo editor /etc/gitlab/gitlab.rb

    自己コンパイルによるインストールの場合:

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

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

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

    gitlab_rails['omniauth_providers'] = [
      { name: "jwt",
        label: "Provider name", # optional label for login button, defaults to "Jwt"
        args: {
          secret: "YOUR_APP_SECRET",
          algorithm: "HS256", # Supported algorithms: "RS256", "RS384", "RS512", "ES256", "ES384", "ES512", "HS256", "HS384", "HS512"
          uid_claim: "email",
          required_claims: ["name", "email"],
          info_map: { name: "name", email: "email" },
          auth_url: "https://example.com/",
          valid_within: 3600 # 1 hour
        }
      }
    ]

    自己コンパイルによるインストールの場合:

    - { name: 'jwt',
        label: 'Provider name', # optional label for login button, defaults to "Jwt"
        args: {
          secret: 'YOUR_APP_SECRET',
          algorithm: 'HS256', # Supported algorithms: 'RS256', 'RS384', 'RS512', 'ES256', 'ES384', 'ES512', 'HS256', 'HS384', 'HS512'
          uid_claim: 'email',
          required_claims: ['name', 'email'],
          info_map: { name: 'name', email: 'email' },
          auth_url: 'https://example.com/',
          valid_within: 3600 # 1 hour
        }
      }

    各設定オプションの詳細については、OmniAuth JWT使用ドキュメントを参照してください。

    これらの設定を誤って構成すると、脆弱なインスタンスになる可能性があります。

  4. YOUR_APP_SECRETをクライアントのシークレットキーに変更し、auth_urlをリダイレクトURLに設定します。

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

  6. 変更を有効にするには、次の手順に従います。

    • Linuxパッケージを使用してGitLabをインストールした場合は、GitLabを再設定します。
    • GitLabインストールを自分でコンパイルした場合は、GitLabを再起動します。

サインインページに、通常のサインインフォームの下にJWTアイコンが表示されるはずです。そのアイコンを選択すると、認証プロセスが開始されます。JWTは、ユーザーにサインインしてGitLabアプリケーションを承認するよう求めます。すべてがうまくいけば、ユーザーはGitLabにリダイレクトされ、サインインされます。