OAuth 2.0認証プロバイダとしてJWTを使用します。
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 usage documentationを参照してください。これらの設定を誤ると、安全でないインスタンスになる可能性があります。 -
YOUR_APP_SECRET
をクライアントシークレットに変更し、auth_url
をリダイレクト URL に設定してください。 - 設定ファイルを保存します。
- 変更を有効にするには
- Linux パッケージを使用して GitLab をインストールした場合は、GitLab を再設定してください。
- インストールしたGitLabをセルフコンパイルし、GitLabを再起動。
サインインページで、通常のサインインフォームの下にJWTアイコンがあるはずです。アイコンを選択して認証プロセスを開始します。JWTはユーザーにサインインとGitLabアプリケーションの作成を求めます。問題がなければ、ユーザーは GitLab にリダイレクトされ、サインインします。