9.6. SAML v2.0 アイデンティティープロバイダー
Red Hat build of Keycloak は、SAML v2.0 プロトコルに基づいてアイデンティティープロバイダーを仲介できます。
手順
- メニューで Identity Providers をクリックします。
Add providerリストからSAML v2.0を選択します。アイデンティティープロバイダーの追加
- 初期設定オプションを入力します。設定オプションの詳細は、一般的な IDP 設定 を参照してください。
| 設定 | 説明 |
|---|---|
| Service Provider Entity ID |
リモートアイデンティティープロバイダーがこのサービスプロバイダーからのリクエストを識別するために使用する SAML エンティティー ID。デフォルトでは、この設定はレルムベース URL |
| Identity Provider Entity ID | 受信した SAML アサーションの発行者を検証するために使用されるエンティティー ID。空の場合、発行者の検証は実行されません。 |
| Single Sign-On Service URL | 認証プロセスを開始する SAML エンドポイント。SAML IDP が IDP エンティティー記述子を公開する場合、このフィールドの値はそこで指定されます。 |
| アーティファクトサービス URL | SAML アーティファクト解決エンドポイント。SAML IDP が IDP エンティティー記述子を公開する場合、このフィールドの値はそこで指定されます。 |
| Single Logout Service URL | SAML ログアウトエンドポイント。SAML IDP が IDP エンティティー記述子を公開する場合、このフィールドの値はそこで指定されます。 |
| Backchannel Logout | SAML IDP がバックチャネルのログアウトに対応している場合は、このスイッチを ON に切り替えます。 |
| NameID Policy Format |
名前識別子の形式に対応する URI 参照。Red Hat build of Keycloak は、デフォルトでこれを |
| Principal Type | 外部ユーザー ID の特定および追跡に使用される SAML アサーションの一部を指定します。Subject NameID または SAML 属性のいずれかを指定できます (名前または分かりやすい名前のいずれか)。Subject NameID の値は、'urn:oasis:names:tc:SAML:2.0:nameid-format:transient' NameID Policy Format の値と共に設定することはできません。 |
| Principal Attribute | Principal type が空欄でない場合は、このフィールドで識別する属性の名前 ("Attribute [Name]") または分かりやすい名前 ("Attribute [Friendly Name]") を指定します。 |
| Allow create | 外部アイデンティティープロバイダーがプリンシパルを表す新しい識別子を作成するのを許可します。 |
| HTTP-POST Binding Response | 外部 IDP によって送信される SAML リクエストに応答する SAML バインディングを制御します。OFF の場合、Red Hat build of Keycloak は Redirect Binding を使用します。 |
| ARTIFACT Binding Response | 外部 IDP によって送信される SAML リクエストに応答する SAML バインディングを制御します。OFF の場合、Red Hat build of Keycloak は HTTP-POST Binding Response 設定を評価します。 |
| HTTP-POST Binding for AuthnRequest | 外部 IDP からの認証を要求するときに SAML バインディングを制御します。OFF の場合、Red Hat build of Keycloak は Redirect Binding を使用します。 |
| Want AuthnRequests Signed | ON の場合、Red Hat build of Keycloak はレルムのキーペアを使用して、外部 SAML IDP に送信される要求トに署名します。 |
| Want Assertions Signed | このサービスプロバイダーが署名付きアサーションを期待しているかどうかを示します。 |
| Want Assertions Encrypted | このサービスプロバイダーが暗号化されたアサーションを期待しているかどうかを示します。 |
| Signature Algorithm |
Want AuthnRequests Signed が ON の場合に、使用する署名アルゴリズム。 |
| Encryption Algorithm | SAML ドキュメント、アサーション、または ID の暗号化のために SAML IDP によって使用される暗号化アルゴリズム。SAML ドキュメント部分の復号化に対応する復号化キーは、この設定されたアルゴリズムに基づいて選択され、暗号化 (ENC) の使用にレルムキーで使用できる必要があります。アルゴリズムが設定されていない場合は、サポートされているアルゴリズムが許可され、SAML ドキュメント自体で指定されているアルゴリズムに基づいて復号キーが選択されます。 |
| SAML Signature Key Name |
POST バインディングを使用して送信された署名付き SAML ドキュメントには、 |
| Force Authentication | ユーザーがすでにログインしている場合でも、ユーザーは外部の IDP に認証情報を入力する必要があります。 |
| Validate Signature | ON の場合、レルムには SAML リクエストおよびデジタル署名する外部 IDP からの応答が必要です。 |
| Metadata descriptor URL |
アイデンティティープロバイダーが |
| Use metadata descriptor URL |
ON の場合、署名を検証するための証明書が
このオプションが OFF の場合、 |
| Validating X509 Certificates |
|
| Sign Service Provider Metadata | ON の場合、Red Hat build of Keycloak はレルムのキーペアを使用して SAML Service Provider Metadata descriptor に署名します。 |
| Pass subject |
Red Hat build of Keycloak が、 |
| 属性消費サービスインデックス | リモート IDP に要求する属性セットを識別します。Red Hat build of Keycloak は、ID プロバイダー設定でマップされた属性を自動生成された SP メタデータドキュメントに自動的に追加します。 |
| サービス名を使用している属性 | 自動生成される SP メタデータドキュメントでアドバタイズされる属性セットの説明的な名前。 |
外部 IDP の SAML IDP エンティティー記述子をポイントする URL またはファイルを指定することで、すべての設定データをインポートできます。Red Hat build of Keycloak の外部 IDP に接続する場合は、URL <root>/realms/{realm-name}/protocol/saml/descriptor から IDP 設定をインポートできます。このリンクは、IDP に関するメタデータを記述する XML ドキュメントです。接続先の外部 SAML IDP のエンティティー記述子をポイントする URL または XML ファイルを指定することで、このすべての設定データをインポートすることもできます。
9.6.1. 特定の AuthnContexts の要求 リンクのコピーリンクがクリップボードにコピーされました!
アイデンティティープロバイダーは、クライアントがユーザーアイデンティティーを検証する認証方法の制約を指定するのを容易にします。たとえば、MFA、Kerberos 認証、またはセキュリティー要件を要求します。これらの制約は、特定の AuthnContext 条件を使用します。クライアントは 1 つまたは複数の条件を要求し、アイデンティティープロバイダーがどの程度要求された AuthnContext と一致しなければならないか (完全に、または他の同等の条件を満たしながら) を指定できます。
Requested AuthnContext Constraints セクションの ClassRefs または DeclRefs を追加して、サービスプロバイダーが必要とする条件をリストにして設定できます。通常、ClassRefs または DeclRefs のいずれかを指定する必要があるため、どの値がサポートされるかをアイデンティティープロバイダーのドキュメントで確認してください。ClassRefs または DeclRefs が存在しない場合、アイデンティティープロバイダーは追加の制約を適用しません。
| 設定 | 説明 |
|---|---|
| Comparison |
アイデンティティープロバイダーがコンテキスト要件を評価するために使用する方法。設定可能な値は、 |
| AuthnContext ClassRefs | 必要な基準を記述する AuthnContext ClassRefs。 |
| AuthnContext DeclRefs | 必要な基準を記述する AuthnContext DeclRefs。 |
9.6.2. SP 記述子 リンクのコピーリンクがクリップボードにコピーされました!
プロバイダーの SAML SP メタデータにアクセスする場合は、アイデンティティープロバイダー設定で Endpoints 項目を探します。これには、サービスプロバイダーの SAML エンティティー記述子を生成する SAML 2.0 Service Provider Metadata のリンクが含まれます。記述子をダウンロードするか、その URL をコピーして、それをリモートの ID プロバイダーにインポートすることができます。
このメタデータは、以下の URL で一般に公開されています。
http[s]://{host:port}/realms/{realm-name}/broker/{broker-alias}/endpoint/descriptor
記述子にアクセスする前に設定変更を保存するようにしてください。
9.6.3. SAML リクエストのサブジェクトの送信 リンクのコピーリンクがクリップボードにコピーされました!
デフォルトでは、SAML アイデンティティープロバイダーをポイントするソーシャルボタンは、ユーザーを以下のログイン URL にリダイレクトします。
http[s]://{host:port}/realms/${realm-name}/broker/{broker-alias}/login
この URL に login_hint という名前のクエリーパラメーターを追加すると、パラメーターの値が Subject 属性として SAML リクエストに追加されます。このクエリーパラメーターが空の場合、Red Hat build of Keycloak はリクエストにサブジェクトを追加しません。
"Pass subject" オプションを有効にして SAML リクエストのサブジェクトを送信します。