9.5. OpenID Connect v1.0 アイデンティティープロバイダー

Red Hat Single Sign-On は、OpenID Connect プロトコルに基づいてアイデンティティープロバイダーのブローカーとして機能します。ユーザーを認証しアクセスを承認するには、これらのアイデンティティープロバイダー (IDP) は、仕様によって定義された Authorization Code Flow をサポートする必要があります。

手順

  1. メニューで Identity Providers をクリックします。
  2. Add provider リストから OpenID Connect v1.0 を選択します。

    アイデンティティープロバイダーの追加

    Add Identity Provider

  3. 初期設定オプションを入力します。設定オプションの詳細は、一般的な IDP 設定 を参照してください。

    表9.2 OpenID の接続設定

    設定説明

    Authorization URL

    OIDC プロトコルが要求する承認 URL エンドポイント。

    Token URL

    OIDC プロトコルが要求するトークン URL エンドポイント。

    Logout URL

    OIDC プロトコルのログアウト URL エンドポイント。この値はオプションです。

    Backchannel Logout

    ユーザーをログアウトするための、IDP へのバックグラウンド (アウトオブバウンド) REST リクエスト。一部の IDP は、ブラウザークッキーを使用してセッションを認識するため、ブラウザーリダイレクトによってしかログアウトを実行しません。

    User Info URL

    OIDC プロトコルが定義するエンドポイント。このエンドポイントは、ユーザープロファイル情報を参照します。

    Client Authentication

    Red Hat Single Sign-On が Authorization Code Flow で使用するクライアント認証メソッドを定義します。秘密鍵で署名された JWT の場合、Red Hat Single Sign-On はレルムの秘密鍵を使用します。他の場合は、クライアントシークレットを定義します。詳細は、クライアント認証の仕様 を参照してください。

    Client ID

    外部 IDP への OIDC クライアントとして動作するレルム。認証コードフローを使用して外部 IDP と対話する場合は、レルムに OIDC クライアント ID が必要です。

    Client Secret

    外部 vault からのクライアントシークレット。このシークレットは、Authorization Code Flow を使用している場合は必要になります。

    Client Assertion Signature Algorithm

    クライアント認証として JWT アサーションを作成する署名アルゴリズム。秘密鍵で署名した JWT または jwt としてのクライアントシークレットの場合、必要になります。アルゴリズムを指定しないと、以下のアルゴリズムが適合されます。RS256 は、秘密鍵で署名した JWT の場合に適合されます。HS256 は、jwt としてのクライアントシークレットの場合に適合されます。

    Issuer

    Red Hat Single Sign-On は、IDP からの応答で、この値に対して発行者の要求を検証します。

    Default Scopes

    Red Hat Single Sign-On が認証リクエストと共に送信する OIDC スコープの一覧。デフォルト値は openid です。各スコープはスペースで区切ります。

    Prompt

    OIDC 仕様の prompt パラメーター。このパラメーターを使用して、再認証およびその他のオプションを強制的に実行できます。詳細は、仕様を参照してください。

    Accepts prompt=none forward from client

    prompt=none クエリーパラメーターが含まれる転送された認証リクエストを IDP が受け入れるかどうかを指定します。レルムが prompt=none の認証リクエストを受信すると、レルムはユーザーが現在認証されているかを確認し、ユーザーがログインしていない場合は login_required エラーを返します。Red Hat Single Sign-On が認証リクエストのデフォルト IDP を決定する場合 (kc_idp_hint クエリーパラメーターを使用するか、レルムのデフォルト IDP を持つ場合)、prompt=none の認証リクエストをデフォルトの IDP に転送することができます。デフォルトの IDP は、そこにユーザーの認証をチェックします。すべての IDP が prompt=none のリクエストをサポートしているわけではないため、Red Hat Single Sign-On は、認証リクエストをリダイレクトする前に、このスイッチを使用してデフォルトの IDP がパラメーターをサポートすることを示します。

    ユーザーが IDP で認証されていない場合、クライアントは login_required エラーを受け取ります。ユーザーが IDP で認証されている場合は、Red Hat Single Sign-On がユーザーの対話を求める認証ページを表示する必要があると、クライアントは interaction_required エラーを受け取る場合があります。この認証には、必要なアクション (パスワードの変更など)、合意画面、first broker login フローまたは post broker login フローで表示が設定された画面が含まれます。

    Validate Signatures

    Red Hat Single Sign-On がこの IDP によって署名された外部 ID トークンの署名を検証するかどうかを指定します。ON の場合、Red Hat Single Sign-On は外部の OIDC IDP の公開鍵を知っている必要があります。パフォーマンス上の目的で、Red Hat Single Sign-On は外部の OIDC アイデンティティープロバイダーの公開鍵をキャッシュします。アイデンティティープロバイダーの秘密鍵が危険にさらされた場合は、キーを更新し、キーのキャッシュをクリアします。詳細は、キャッシュの消去 セクションを参照してください。

    Use JWKS URL

    このスイッチは、Validate SignaturesON の場合に適用されます。Use JWKS URLON の場合、Red Hat Single Sign-On は IDP の公開鍵を JWKS URL からダウンロードします。アイデンティティープロバイダーが新しいキーペアを生成すると、新しいキーがダウンロードされます。OFF の場合、Red Hat Single Sign-On はデータベースからの公開鍵 (または証明書) を使用します。そのため、IDP キーペアが変更された場合は、新しいキーを Red Hat Single Sign-On データベースにもインポートします。

    JWKS URL

    IDP JWK キーの場所をポイントする URL。詳細は、JWK の仕様 を参照してください。外部 Red Hat Single Sign-On を IDP として使用する場合、仲介された Red Hat Single Sign-On が http://broker-keycloak:8180 で実行されていて、そのレルムが test の場合、http://broker-keycloak:8180/auth/realms/test/protocol/openid-connect/certs などの URL を使用できます。

    Validating Public Key

    Red Hat Single Sign-On が外部 IDP 署名の検証に使用する PEM 形式の公開鍵。このキーは、Use JWKS URLOFF の場合に適用されます。

    Validating Public Key Id

    この設定は、Use JWKS URLOFF の場合に適用されます。この設定は、公開鍵の ID を PEM 形式で指定します。キーからキー ID を計算する標準的な方法がないため、外部 アイデンティティープロバイダーは Red Hat Single Sign-On が使用するアルゴリズムとは異なるアルゴリズムを使用できます。このフィールドの値が指定されていない場合、Red Hat Single Sign-On は、外部 IDP によって送信されるキー ID に関係なく、すべてのリクエストに検証用の公開鍵を使用します。ON の場合、このフィールドの値がプロバイダーからの署名を検証するために Red Hat Single Sign-On によって使用されるキー ID となり、IDP によって指定されたキー ID と一致する必要があります。

OpenID Provider Metadata を参照する URL またはファイルを指定して、この設定データをすべてインポートできます。Red Hat Single Sign-On 外部 IDP に接続する場合は、<root>/auth/realms/{realm-name}/.well-known/openid-configuration から IDP 設定をインポートできます。このリンクは、IDP に関するメタデータを記述する JSON ドキュメントです。