13.2. SAML クライアントの作成
Red Hat build of Keycloak は、登録済みアプリケーション向けに SAML 2.0 をサポートしています。POST およびリダイレクトバインディングがサポートされます。クライアント署名の検証を要求することもできます。サーバー署名や暗号化応答も可能です。
手順
- メニューで Clients をクリックします。
- Create client をクリックして、Create client ページに移動します。
Client type を SAML に設定します。
Create client
- クライアントの クライアント ID を入力します。これは通常 URL であり、アプリケーションによって送信される SAML リクエストの issuer 値になります。
- Save をクリックします。このアクションにより、クライアントが作成され、Settings タブが表示されます。
次のセクションでは、このタブの各設定を説明します。
13.2.1. Settings タブ リンクのコピーリンクがクリップボードにコピーされました!
Settings タブには、このクライアントを設定するための多くのオプションが含まれています。
クライアントの設定
13.2.1.1. 一般設定 リンクのコピーリンクがクリップボードにコピーされました!
- Client ID
- OIDC リクエストおよび Red Hat build of Keycloak データベースでクライアントを識別するために使用される英数字の ID 文字列です。この値は、AuthNRequests で送信される発行者の値と一致する必要があります。Red Hat build of Keycloak は、Authn SAML 要求から発行者をプルし、この値によってクライアントと照合します。
- 名前
- Red Hat build of Keycloak UI 画面に表示されるクライアントの名前。名前をローカライズするには、代替文字列値を設定します。たとえば、${myapp} などの文字列値です。詳細は、サーバー開発者ガイド を参照してください。
- 説明
- クライアントの説明。この設定はローカライズすることもできます。
- Always Display in Console
- このユーザーがアクティブなセッションを持っていない場合でも、常にこのクライアントをアカウントコンソールにリストします。
13.2.1.2. Access Settings リンクのコピーリンクがクリップボードにコピーされました!
- Root URL
- Red Hat build of Keycloak が設定された相対 URL を使用する場合、この値は URL の先頭に付加されます。
- Home URL
- Red Hat build of Keycloak をクライアントにリンクする必要がある場合は、この URL が使用されます。
- Valid Redirect URIs
- URL パターンに入力し、+ 記号をクリックして追加します。- 記号をクリックして削除します。Save をクリックして変更を保存します。ワイルドカードの値は URL の最後にのみ使用できます。(例: http://host.com/*$$)。このフィールドは、正確な SAML エンドポイントが登録されておらず、Red Hat build of Keycloak がリクエストから Assertion Consumer URL をプルする場合に使用されます。
- IDP-Initiated SSO URL name
- IDP Initiated SSO を実行するときにクライアントを参照する URL フラグメント名。これを空のままにすると、IDP Initiated SSO が無効になります。ブラウザーから参照する URL は server-root/realms/{realm-name}/protocol/saml/clients/{client-url-name} です。
- IDP Initiated SSO Relay State
- IDP Initiated SSO を行いたい場合に、SAML リクエストで送信するリレー状態。
- Master SAML Processing URL
この URL はすべての SAML 要求に使用され、応答は SP に転送されます。これは、Assertion Consumer Service URL および Single Logout Service URL として使用されます。
ログイン要求に Assertion Consumer Service URL が含まれる場合には、これらのログイン要求が優先されます。この URL は、登録された Valid Redirect URI パターンで妥当性を検証する必要があります。
13.2.1.3. SAML 機能 リンクのコピーリンクがクリップボードにコピーされました!
- Name ID Format
- サブジェクトの名前 ID 形式。この形式は、要求に名前 ID ポリシーが指定されていない場合や、Force Name ID Format 属性が ON に設定されている場合に使用されます。
- Force Name ID Format
- 要求に名前 ID ポリシーがある場合は無視し、管理コンソールで設定された値を Name ID Format で使用されます。
- Force POST Binding
- デフォルトでは、Red Hat build of Keycloak は、元の要求の最初の SAML バインディングを使用して応答します。Force POST Binding を有効にすると、Red Hat build of Keycloak は元の要求がリダイレクトバインディングを使用した場合でも SAML POST バインディングを使用して応答します。
- Force artifact binding
- 有効にすると、SAML ARTIFACT バインディングシステムを通じて応答メッセージがクライアントに返されます。
- Include AuthnStatement
- SAML ログイン応答は、使用される認証方法 (パスワードなど) と、ログインのタイムスタンプおよびセッションの有効期限を指定できます。Include AuthnStatement は、AuthnStatement 要素がログイン応答に含まれるように、デフォルトで有効になっています。これを OFF に設定すると、クライアントが最大セッションの長さを判別できなくなるので、期限切れにならないクライアントセッションが作成できます。
- Include OneTimeUse Condition
- 有効にすると、ログイン応答に OneTimeUse 条件が含まれます。
- Optimize REDIRECT signing key lookup
ON に設定すると、SAML プロトコルメッセージには Red Hat build of Keycloak ネイティブの拡張が含まれます。この拡張には、署名キー ID のヒントが含まれています。SP は、鍵を使用した署名の検証を試みる代わりに、署名検証の拡張を使用します。
このオプションは、署名がクエリーパラメーターで転送され、この情報は署名情報では見つからない REDIRECT バインディングに適用されます。これは、キー ID が常にドキュメント署名に含まれる POST バインディングメッセージとは対照的です。
このオプションは、Red Hat build of Keycloak サーバーとアダプターが IDP および SP を提供する場合に使用されます。このオプションは、Sign Documents がオンの場合にのみ関連します。
- Allow ECP Flow
- true の場合、このアプリケーションは認証に SAML ECP プロファイルを使用できます。
13.2.1.4. 署名と暗号化 リンクのコピーリンクがクリップボードにコピーされました!
- サインインドキュメント
- ON に設定すると、Red Hat build of Keycloak はレルム秘密鍵を使用してドキュメントに署名します。
- アサーションへの署名
- アサーションは署名され、SAML XML Auth 応答に組み込まれます。
- Signature Algorithm
-
SAML ドキュメントの署名に使用されるアルゴリズム。
SHA1ベースのアルゴリズムは非推奨となっており、将来のリリースでは削除される可能性があることに注意してください。*_SHA1の代わりに、よりセキュアなアルゴリズムを使用することを推奨します。また、*_SHA1アルゴリズムでは、SAML クライアントが Java 17 以降で実行されている場合、署名の検証が機能しません。 - SAML Signature Key Name
POST バインディングを使用して送信される署名付き SAML ドキュメントには、KeyName 要素に署名キーの ID が含まれています。このアクションは、SAML 署名キー名 のオプションを使用して制御できます。このオプションは、Keyname の内容を制御します。
- KEY_ID: KeyName にはキー ID が含まれます。このオプションはデフォルトのオプションです。
- CERT_SUBJECT: KeyName には、レルムキーに対応する証明書のサブジェクトが含まれます。このオプションは、Microsoft Active Directory Federation Services で必要です。
- NONE: KeyName ヒントは、SAML メッセージから完全に省略されます。
- Canonicalization Method
- XML 署名の正規化メソッド。
- Metadata descriptor URL
-
クライアントが
SPSSODescriptorメタデータを公開する外部 URL。この URL は、Use metadata descriptor URL が有効になっている場合に、クライアント証明書をダウンロードするために使用されます。 - Use metadata descriptor URL
ON の場合、署名を検証するための証明書 (Keys タブで Client signature required オプションが有効になっている場合) とアサーションを暗号化するための証明書 (同じタブの Encrypt assertions) が
Metadata descriptor URLから自動的にダウンロードされ、Red Hat build of Keycloak 内にキャッシュされます。署名を検証するために特定の証明書が要求され (通常はPOSTバインディング内)、それがキャッシュ内に存在しない場合、証明書は URL から自動的に更新されます。すべての証明書で署名の検証が要求された場合 (REDIRECTバインディング)、またはいずれかのキーで暗号化が要求された場合、更新は最大キャッシュ時間の経過後にのみ実行されます。この最大時間は、記述子自体にあるcacheDuration属性やvalidUntil属性で指定するか、またはキャッシュプロバイダーが定義します。キャッシュの動作の詳細は、すべてのプロバイダー設定ガイドの public-key-storage spi を参照してください。オプションが OFF の場合、Keys タブでそれぞれのスイッチをアクティブにすると、キーが生成またはインポートされます。
- Encryption algorithm
-
クライアントに使用する暗号化アルゴリズム。定義されていない場合のデフォルト値は
AES_256_GCMです。 - Key transport algorithm
-
クライアントが暗号化に使用する秘密鍵を暗号化するために使用する鍵転送アルゴリズム。定義されていない場合のデフォルト値は
RSA-OAEP-11です。 - Digest method for RSA-OAEP
-
鍵転送アルゴリズムとして RSA-OAEP を選択した場合に使用するダイジェスト方式。Key transport algorithm が RSA-OAEP アルゴリズムに設定されている場合にのみ使用できます。定義されていない場合のデフォルト値は
SHA-256です。 - Mask generation function
-
鍵転送アルゴリズムとして
RSA-OAEP-11を選択した場合に使用するマスク生成関数。Key transport algorithm がRSA-OAEP-11アルゴリズムに設定されている場合にのみ使用できます。定義されていない場合はデフォルト値はmgf1sha256です。
暗号化オプションは、Keys タブで Encrypt Assertions オプションが有効になっている場合にのみ使用できます。SAML/XML 暗号化の詳細は、XML Encryption Syntax and Processing 仕様を参照してください。
13.2.1.5. ログイン設定 リンクのコピーリンクがクリップボードにコピーされました!
- Login theme
- ログイン、OTP、許可登録、およびパスワードを忘れたページに使用するテーマ。
- Consent required
有効にすると、ユーザーはクライアントアクセスに同意する必要があります。
ブラウザーログインを実行するクライアント側のクライアントの場合。クライアント側のクライアントでシークレットを安全に保つことができないため、正しいリダイレクト URI を設定してアクセスを制限することが重要です。
- Display client on screen
このスイッチは、Consent Required が Off の場合に適用されます。
Off
同意画面には、設定されたクライアントスコープに対応する同意のみが含まれます。
On
同意画面には、このクライアント自体に関する項目も 1 つあります。
- Client consent screen text
- Consent required と Display client on screen が有効になっている場合に適用されます。このクライアントの権限に関する同意画面に表示されるテキストが含まれます。
13.2.1.6. ログアウト設定 リンクのコピーリンクがクリップボードにコピーされました!
- Front channel logout
- Front Channel Logout が有効になっている場合、アプリケーションのログアウトにはブラウザーのリダイレクトが必要です。たとえば、アプリケーションでは Cookie をリセットする必要がありますが、リダイレクトでのみ実行可能です。Front Channel Logout が無効な場合、Keycloak はバックグラウンドの SAML 要求を呼び出して、アプリケーションからログアウトします。