第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) 認証プロバイダーを有効にします。

前提条件

手順

  1. Developer Hub が RHBK で認証できるようにするには、RHBK で手順を完了し、レルムとユーザーを作成 して 最初のアプリケーションを保護 します。

    1. 既存のレルムを使用するか、<my_realm> などの固有の 名前 を持つ レルムを作成 します。次のステップのために値を保存します。

      • RHBK レルムのベース URL (例: <your_rhbk_URL>/realms/<your_realm>)。
    2. RHBK に Developer Hub を登録するには、作成されたレルムで、次の操作を実行して 最初のアプリケーションを保護 します。

      1. クライアント ID: <RHDH> などの固有のクライアント ID。
      2. 有効なリダイレクト URI: OIDC ハンドラー URL https://<RHDH_URL>/api/auth/oidc/handler/frame に設定します。
      3. Credentials タブに移動し、Client secret をコピーします。
      4. 次のステップのために値を保存します。

        • クライアント ID
        • クライアントのシークレット
    3. 検証手順を準備するには、同じレルムで、既存のユーザーの認証情報を取得するか、ユーザーを作成 します。検証手順用にユーザー認証情報を保存します。
  2. RHSSO 認証情報を Developer Hub に追加するには、以下のキーと値のペアを Developer Hub シークレット に追加します。

    AUTH_OIDC_CLIENT_ID
    保存した クライアント ID を入力します。
    AUTH_OIDC_CLIENT_SECRET
    保存した クライアントシークレット を入力します。
    AUTH_OIDC_METADATA_URL
    保存した RHBK realm base URL を入力します。
  3. Developer Hub のカスタム設定で RHBK 認証プロバイダーをセットアップするには、app-config-rhdh などのカスタム Developer Hub ConfigMap を編集し、app-config.yaml コンテンツに次の行を追加します。

    1. 必須フィールドを設定します。

      RHBK による認証を有効にするための必須フィールドを含む app-config.yaml フラグメント

      auth:
        environment: production
        providers:
          oidc:
            production:
              metadataUrl: ${AUTH_OIDC_METADATA_URL}
              clientId: ${AUTH_OIDC_CLIENT_ID}
              clientSecret: ${AUTH_OIDC_CLIENT_SECRET}
              prompt: auto
      signInPage: oidc
      Copy to Clipboard

      environment: production
      環境を production としてマークすると、Developer Hub のホームページでゲストログインが非表示になります。
      metadataUrlclientIdclientSecret
      シークレットを使用して 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}
Copy to Clipboard

tokenEndpointAuthMethod

トークンエンドポイント認証方法。

オプションの tokenEndpointAuthMethod フィールドを含む app-config.yaml フラグメント

auth:
  providers:
    oidc:
      production:
        tokenEndpointAuthMethod: ${AUTH_OIDC_TOKEN_ENDPOINT_METHOD}
Copy to Clipboard

tokenSignedResponseAlg

トークン署名応答アルゴリズム。

オプションの tokenSignedResponseAlg フィールドを含む app-config.yaml フラグメント

auth:
  providers:
    oidc:
      production:
        tokenSignedResponseAlg: ${AUTH_OIDC_SIGNED_RESPONSE_ALG}
Copy to Clipboard

scope

RHBK スコープ。

オプションの scope フィールドを含む app-config.yaml フラグメント

auth:
  providers:
    oidc:
      production:
        scope: ${AUTH_OIDC_SCOPE}
Copy to Clipboard

signIn
resolvers

認証が成功したら、サインインするユーザーを、Developer Hub カタログ内の既存のユーザーに解決する必要があります。ユースケースに合わせて最適な形でユーザーを確実にマッチさせるために、特定のリゾルバーを設定することを検討してください。デフォルトのリゾルバー emailLocalPartMatchingUserEntityName をオーバーライドするには、リゾルバーのリストを入力します。

認証プロバイダーは、成功するまで各サインインリゾルバーを順番に試行します。どれも成功しない場合は失敗します。

警告

実稼働モードでは、ユーザーが確実にマッチするように、リゾルバーを 1 つだけ設定してください。

resolver

サインインリゾルバー名を入力します。使用可能な値は次のとおりです。

  • emailLocalPartMatchingUserEntityName
  • emailMatchingUserEntityProfileEmail
  • preferredUsernameMatchingUserEntityName

オプションの resolvers リストを含む app-config.yaml フラグメント

auth:
  providers:
    oidc:
      production:
        signIn:
          resolvers:
            - resolver: preferredUsernameMatchingUserEntityName
            - resolver: emailMatchingUserEntityProfileEmail
            - resolver: emailLocalPartMatchingUserEntityName
Copy to Clipboard

dangerouslyAllowSignInWithoutUserInCatalog: true

Developer Hub ソフトウェアカタログのユーザープロビジョニング要件を回避するようにサインインリゾルバーを設定します。

警告

このオプションは Developer Hub の機能を調べるために使用しますが、実稼働環境では使用しないでください。

ソフトウェアカタログに存在しないユーザーのサインインを許可するオプションのフィールドを含む app-config-rhdh.yaml フラグメント

auth:
  environment: production
  providers:
    oidc:
      production:
        metadataUrl: ${AUTH_OIDC_METADATA_URL}
        clientId: ${AUTH_OIDC_CLIENT_ID}
        clientSecret: ${AUTH_OIDC_CLIENT_SECRET}
        signIn:
          resolvers:
            - resolver: emailLocalPartMatchingUserEntityName
              dangerouslyAllowSignInWithoutUserInCatalog: true
signInPage: oidc
Copy to Clipboard

sessionDuration

ユーザーセッションの有効期間。期間は、ms ライブラリー形式 ('24h'、'2 days' など)、ISO の期間、またはコード内で使用される "人間が判読可能な期間" で入力します。

オプションの sessionDuration フィールドを含む app-config-rhdh.yaml フラグメント

auth:
  providers:
    github:
      production:
        sessionDuration: { hours: 24 }
Copy to Clipboard

auth
backstageTokenExpiration
Developer Hub トークンの有効期限をデフォルト値の 1 時間から変更する場合、これはセッション期間ではなく、短期暗号化トークンの有効期間を指すことに注意してください。有効期限の値は 10 分から 24 時間の間で設定する必要があります。

オプションの auth.backstageTokenExpiration フィールドを含む app-config.yaml フラグメント

auth:
  backstageTokenExpiration: { minutes: <user_defined_value> }
Copy to Clipboard
セキュリティー上の考慮事項

頻繁なリフレッシュトークンの要求により複数の有効なリフレッシュトークンが発行された場合、古いトークンは期限が切れるまで有効です。セキュリティーを強化し、古いトークンの誤用を防ぐには、RHBK レルムでリフレッシュトークンのローテーションストラテジーを有効にします。

  1. ナビゲーションメニューの Configure セクションで、Realm Settings をクリックします。
  2. Realm Settings ページで、Tokens タブをクリックします。
  3. Tokens タブの Refresh tokens セクションで、Revoke Refresh TokenEnabled に切り替えます。

検証

  1. Developer Hub のログインページに移動します。
  2. Developer Hub のサインインページには OIDC を使用してサインイン と表示され、ゲストユーザーのサインインは無効になっています。
  3. 保存した ユーザー名パスワード の値を使用して、OIDC でログインします。
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat