9.5. OpenID Connect v1.0 アイデンティティープロバイダー
Red Hat Single Sign-On は、OpenID Connect プロトコルに基づいてアイデンティティープロバイダーのブローカーとして機能します。ユーザーを認証しアクセスを認可するには、これらのアイデンティティープロバイダー (IDP) は、仕様によって定義された Authorization Code Flow をサポートする必要があります。
手順
- メニューで Identity Providers をクリックします。
Add provider
リストからOpenID Connect v1.0
を選択します。アイデンティティープロバイダーの追加
初期設定オプションを入力します。設定オプションの詳細については、一般的な 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
外部 ボールト からのクライアントシークレット。このシークレットは、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 Signatures
が ON の場合に適用されます。Use JWKS URL が ON の場合、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 URL
が OFF の場合に適用されます。Validating Public Key Id
この設定は、Use JWKS URL が OFF の場合に適用されます。この設定は、公開鍵の 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 ドキュメントです。