This documentation is for a release that is no longer maintained
See documentation for the latest supported version.第2章 Red Hat build of Keycloak (RHBK) による認証
RHSSO 7.6 は認証プロバイダーとしては非推奨です。RHSSO はメンテナンスサポートが終了するまで引き続き使用できます。詳細は、RHSSO ライフサイクルの日付 を参照してください。代わりに、Red Hat build of Keycloak (RHBK) への移行を検討してください。
Red Hat build of Keycloak (RHBK) を使用してユーザーを認証するには、以下を行います。
2.1. Red Hat build of Keycloak (RHBK) による認証の有効化 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat build of Keycloak (RHBK) を使用してユーザーを認証するには、Red Hat Developer Hub で OpenID Connect (OIDC) 認証プロバイダーを有効にします。
前提条件
- カスタム Developer Hub アプリケーション設定を追加 している。また、それを変更するための十分な権限を持っている。
- RHSSO でレルムを作成および管理するための十分な権限がある。
手順
Developer Hub が RHBK で認証できるようにするには、RHBK で手順を完了し、レルムとユーザーを作成 して 最初のアプリケーションを保護 します。
既存のレルムを使用するか、<my_realm> などの固有の 名前 を持つ レルムを作成 します。次のステップのために値を保存します。
- RHBK レルムのベース URL (例: <your_rhbk_URL>/realms/<your_realm>)。
RHBK に Developer Hub を登録するには、作成されたレルムで、次の操作を実行して 最初のアプリケーションを保護 します。
- クライアント ID: <RHDH> などの固有のクライアント ID。
-
有効なリダイレクト URI: OIDC ハンドラー URL
https://<RHDH_URL>/api/auth/oidc/handler/frameに設定します。 - Credentials タブに移動し、Client secret をコピーします。
次のステップのために値を保存します。
- Client ID
- Client Secret
- 検証手順を準備するには、同じレルムで、既存のユーザーの認証情報を取得するか、ユーザーを作成 します。検証手順用にユーザー認証情報を保存します。
RHSSO 認証情報を Developer Hub に追加するには、以下のキーと値のペアを Developer Hub シークレット に追加します。
AUTH_OIDC_CLIENT_ID- 保存した クライアント ID を入力します。
AUTH_OIDC_CLIENT_SECRET- 保存した クライアントシークレット を入力します。
AUTH_OIDC_METADATA_URL- 保存した RHBK realm base URL を入力します。
Developer Hub のカスタム設定で RHBK 認証プロバイダーをセットアップするには、
app-config-rhdhなどのカスタム Developer Hub ConfigMap を編集し、app-config.yamlコンテンツに次の行を追加します。RHBK による認証を有効にするための必須フィールドを含む
app-config.yamlフラグメントCopy to Clipboard Copied! Toggle word wrap Toggle overflow environment: production-
環境を
productionとしてマークすると、Developer Hub のホームページでゲストログインが非表示になります。 metadataUrl、clientId、clientSecret- シークレットを使用して OIDC プロバイダーを設定します。
sigInPage: oidc- OIDC プロバイダーをデフォルトのサインインプロバイダーとして有効にします。
prompt: auto- アクティブな RHSSO セッションが存在する場合に、アイデンティティープロバイダーが認証情報を要求するか、ログインリダイレクトをバイパスするかを自動的に決定できるようにします。
注記prompt: autoが設定されていない場合、アイデンティティープロバイダーはデフォルトでprompt: noneに設定されます。この場合、すでにログインしていると想定され、アクティブなセッションのないサインイン要求が拒否されます。callbackUrl
RHBK コールバック URL。
オプションの callbackURL フィールドを含む app-config.yaml フラグメント
auth:
providers:
oidc:
production:
callbackUrl: ${AUTH_OIDC_CALLBACK_URL}
auth:
providers:
oidc:
production:
callbackUrl: ${AUTH_OIDC_CALLBACK_URL}
tokenEndpointAuthMethod
トークンエンドポイント認証方法。
オプションの tokenEndpointAuthMethod フィールドを含む app-config.yaml フラグメント
auth:
providers:
oidc:
production:
tokenEndpointAuthMethod: ${AUTH_OIDC_TOKEN_ENDPOINT_METHOD}
auth:
providers:
oidc:
production:
tokenEndpointAuthMethod: ${AUTH_OIDC_TOKEN_ENDPOINT_METHOD}
tokenSignedResponseAlg
トークン署名応答アルゴリズム。
オプションの tokenSignedResponseAlg フィールドを含む app-config.yaml フラグメント
auth:
providers:
oidc:
production:
tokenSignedResponseAlg: ${AUTH_OIDC_SIGNED_RESPONSE_ALG}
auth:
providers:
oidc:
production:
tokenSignedResponseAlg: ${AUTH_OIDC_SIGNED_RESPONSE_ALG}
scope
RHBK スコープ。
オプションの scope フィールドを含む app-config.yaml フラグメント
auth:
providers:
oidc:
production:
scope: ${AUTH_OIDC_SCOPE}
auth:
providers:
oidc:
production:
scope: ${AUTH_OIDC_SCOPE}
signIn.resolvers
デフォルトのリゾルバーをオーバーライドする宣言型リゾルバー: emailLocalPartMatchingUserEntityName。認証プロバイダーは、成功するまで各サインインリゾルバーを試行し、どれも成功しない場合は失敗します。
オプションの callbackURL フィールドを含む app-config.yaml フラグメント
auth.backstageTokenExpiration
Developer Hub トークンの有効期限をデフォルト値の 1 時間から変更する場合、これはセッション期間ではなく、短期暗号化トークンの有効期間を指すことに注意してください。有効期限の値は 10 分から 24 時間の間で設定する必要があります。
オプションの auth.backstageTokenExpiration フィールドを含む app-config.yaml フラグメント
auth:
backstageTokenExpiration: { minutes: <user_defined_value> }
auth:
backstageTokenExpiration: { minutes: <user_defined_value> }
セキュリティー上の考慮事項
頻繁なリフレッシュトークンの要求により複数の有効なリフレッシュトークンが発行された場合、古いトークンは期限が切れるまで有効です。セキュリティーを強化し、古いトークンの誤用を防ぐには、RHBK レルムでリフレッシュトークンのローテーションストラテジーを有効にします。
- ナビゲーションメニューの Configure セクションで、Realm Settings をクリックします。
- Realm Settings ページで、Tokens タブをクリックします。
- Tokens タブの Refresh tokens セクションで、Revoke Refresh Token を Enabled に切り替えます。
検証
- Developer Hub のログインページに移動します。
- Developer Hub のサインインページには OIDC を使用してサインイン と表示され、ゲストユーザーのサインインは無効になっています。
- 保存した ユーザー名 と パスワード の値を使用して、OIDC でログインします。