JWTを認証プロバイダーとして使用
- プラン: Free、Premium、Ultimate
- 提供形態: GitLab Self-Managed
JWT OmniAuthプロバイダーを有効にするには、アプリケーションをJWTに登録する必要があります。JWTは、あなたが使用するためのシークレットキーを提供します。
GitLabサーバーで、設定ファイルを開きます。
Linuxパッケージインストールの場合:
sudo editor /etc/gitlab/gitlab.rb自己コンパイルによるインストールの場合:
cd /home/git/gitlab sudo -u git -H editor config/gitlab.yml共通設定で、
jwtをシングルサインオンプロバイダーとして追加します。これにより、既存のGitLabアカウントを持たないユーザーに対して、Just-In-Timeアカウントプロビジョニングが有効になります。プロバイダー設定を追加します。
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使用ドキュメントを参照してください。
これらの設定を誤って構成すると、脆弱なインスタンスになる可能性があります。
YOUR_APP_SECRETをクライアントのシークレットキーに変更し、auth_urlをリダイレクトURLに設定します。設定ファイルを保存します。
変更を有効にするには、次の手順に従います。
- Linuxパッケージを使用してGitLabをインストールした場合は、GitLabを再設定します。
- GitLabインストールを自分でコンパイルした場合は、GitLabを再起動します。
サインインページに、通常のサインインフォームの下にJWTアイコンが表示されるはずです。そのアイコンを選択すると、認証プロセスが開始されます。JWTは、ユーザーにサインインしてGitLabアプリケーションを承認するよう求めます。すべてがうまくいけば、ユーザーはGitLabにリダイレクトされ、サインインされます。