SAML Web シングル・サインオン (SSO) トラスト・アソシエーション・インターセプター (TAI) のカスタム・プロパティー
以下の表は、Security Assertion Markup Language (SAML) トラスト・アソシエーション・インターセプター (TAI) のカスタム・プロパティーをリストしたものです。 これらのプロパティーは、管理コンソールを使用して、SAML TAI のカスタム・プロパティー・パネルで定義することができます。
考えられる各シングル・サインオン (SSO) サービス・プロバイダー (SP) パートナーを特定する固有のプロパティー名を割り当てるために、sso_<id> がそのプロパティー名に埋め込まれ、各 SSO パートナーと関連付けられたプロパティーのグループ化に使用されます。 sso_<id> には、SSO サービス・プロバイダー・パートナーごとに通し番号が付けられます。
- グローバル・プロパティー - これらのプロパティーは、SAML TAI 用に構成されているすべての SSO パートナーに適用可能です。
- IdP プロパティー - これらのプロパティーは、SAML TAI 用に構成されている ID プロバイダーに適用可能です。 各 ID プロバイダー・パートナーを特定する固有のプロパティー名を割り当てるために、idp<id> がプロパティー名に埋め込まれ、各 SSO IdP パートナーと関連付けられたプロパティーのグループ化に使用されます。
- サービス・プロバイダー・プロパティー - これらのプロパティーはサービス・プロバイダーに適用可能なプロパティーで、固有の sso_<id> のもとで SSO サービス・プロバイダー・パートナーごとにグループ化されます。
次の表では、SAML TAI のカスタム・プロパティーのうちグローバル・プロパティーについて説明します。
プロパティー名 | 値 | 説明 |
---|---|---|
targetUrl | 任意の URL 値を指定することができます。 | このプロパティーは sso_<id>.sp.targetUrl によってオーバーライドされます。 これは、IdP から RelayState を受け取っていない場合に、SAMLResponse の妥当性検査が成功した後に使用するデフォルトのターゲット URL になります。 |
useRelayStateForTarget | 以下のいずれかの値を指定することができます。
|
このプロパティーは sso_<id>.sp.useRelayStateForTarget よってオーバーライドされます。 これは、RelayState をターゲット URL として使用するかどうかを示すために使用されます。 |
allowedClockSkew | 任意の正数を指定することができます。 デフォルトは 3 分です。 | このプロパティーは sso_<id>.sp.allowedClockSkew によってオーバーライドされます。 これは、SAML トークンの妥当性検査時に許容クロック・スキューを指定するために使用されます。 |
enforceTaiCookie | 以下のいずれかの値を指定することができます。
|
このプロパティーは sso_<id>.sp.enforceTaiCookie よってオーバーライドされます。 これは、SSO パートナー用に作成されたサブジェクトに LTPA Cookie がマップされるかどうかを SAML TAI が確認する必要があるかどうかを示すために使用されます。 |
preventReplayAttackScope | このプロパティーにはデフォルトはありません。以下の値を指定できます。
|
デフォルトで、SAML TAI はリプレイ・アタックを避けるために、分散キャッシュを使用して SAML アサーション ID を保管します。このプロパティーを server に設定すると、SAML TAI は代わりにローカル・キャッシュを使用します。 |
replayAttackTimeWindow | 任意の整数値を指定することができます。 デフォルト値は 30 です。 | このプロパティーは、TAI がまったく同じ SAML トークンを何分以内に 2 つ受け取った場合に 2 番目の要求を拒否するかを指定します。 sso_<id>.sp. preventReplayAttack も参照してください。 |
retryOnceAfterTrustFailure | 以下のいずれかの値を指定することができます。
|
トラスト検証が失敗した後にランタイムがトラストストアを再ロードできるようにするには、このプロパティーを true に設定します。これにより、アプリケーション・サーバー実行中にトラストストアが新しい IdP 証明書で更新されることが許可されます。 |
redirectToIdPonServerSide | 以下のいずれかの値を指定することができます。
|
このプロパティーは、sso_<id>.sp. redirectToIdPonServerSide によってオーバーライドされます。このプロパティーを使用して、TAI を IdP 自体にリダイレクトすることを示します。クライアント・サイド・リダイレクトを実行するには、このプロパティーを false に設定します。URL フラグメントがリダイレクトで失われている場合は、このプロパティーを false に設定します。それにより、TAI がクライアント・サイド・リダイレクトを実行します。 |
次の表では、SAML TAI のカスタム・プロパティーのうち IdP プロパティーについて説明します。
プロパティー名 | 値 | 説明 |
---|---|---|
sso_<id>.idp_<id>.SingleSignOnUrl | 任意の URL 値を指定することができます。 | このカスタム・プロパティーは、IdP の SSO サービスの URL を指定します。 |
sso_<id>.idp_<id>.allowedIssuerDN | このカスタム・プロパティーに、デフォルト値はありません。 | このカスタム・プロパティーは、IdP によって送信される SAML トークンに署名することが許可される証明書のサブジェクト DN を指定します。 この証明書によって署名されていない SAML トークンは拒否されます。このプロパティーが指定される場合、 sso_<id>.sp.wantAssertionSigned カスタム・プロパティーは true でなければなりません。IdP の署名者証明書の代わりに、トラストストア内に署名者証明書の発行者がある場合、このプロパティーを使用してください。これによって、すべての署名者証明書が同じ発行者によって発行されることを許可することが防止されます。 |
sso_<id>.idp_<id>.allowedIssuerName | このカスタム・プロパティーに、デフォルト値はありません。 | このカスタム・プロパティーは、SAML トークン内の <saml:Issuer> 発行者エレメントの値を指定します。 SAML トークン内の発行者がこの値と一致しなければ、IdP から送られてきた SAML トークンは拒否されます。 |
次の表では、SAML TAI のカスタム・プロパティーのうちサービス・プロバイダー・プロパティーについて説明します。
プロパティー名 | 値 | 説明 |
---|---|---|
sso_<id>.sp.acsUrl | このプロパティーに、デフォルト値はありません。以下のいずれかの値を指定することができます。
|
これは、各 sso_<id> で唯一の必須プロパティーです。
ACS またビジネス・アプリケーションの URL を指定します。 SAML ワークフロー用に同様のエントリー・ポイントを複数持つ必要がある場合は、このプロパティー用の特定の URI パターン・ストリングではなく、ストリングの末尾にワイルドカードが付いた URL を指定することができます。以下に例を示します。
|
sso_<id>.sp.cookiegroup | このプロパティーに、デフォルト値はありません。 | このプロパティーは、構成済み SAML SSO パートナーの LTPA Cookie に追加されるタグを指定します。Web 要求を LTPA Cookie と共に受信した場合、その LTPA Cookie は、タグがこの値と一致している場合のみ有効です |
sso_<id>.sp.EntityID | デフォルトでは、このプロパティーは sso_<id>.sp.aclUrl の値に設定されます。 | このプロパティーは、SAML アサーションで AudienceRestriction を検証するために使用されます。 |
sso_<id>.sp.targetUrl | このプロパティーに、デフォルト値はありません。 | このプロパティーはターゲット・アプリケーションの URL を指定します。 これは、クライアント要求に RelayState が存在しないときに使用されます。 |
sso_<id>.sp.useRelayStateForTarget | 以下のいずれかの値を指定することができます。
|
このプロパティーは、クライアント要求で受け取った RelayState 値をターゲット・アプリケーションの URL として使用するかどうかを指定します。 このプロパティーが false に設定された場合は、sso_<id>.sp.targetUrl プロパティーがターゲット・アプリケーションの URL として使用されます。 |
sso_<id>.sp.login.error.page | このプロパティーに、デフォルト値はありません。 | このプロパティーは、認証されなかったクライアント要求のリダイレクト先であるエラー・ページ、 IdP ログイン・ページ、またはカスタム・マッピング・クラスを指定します。 このカスタム・プロパティーにカスタム・マッピング・クラスが指定されている場合は、カスタム・クラスを含む .jar ファイルを (WAS_HOME)/lib ディレクトリーまたは (WAS_HOME)/lib/ext ディレクトリーに入れる必要があります。 |
sso_<id>.sp.acsErrorPage | このプロパティーに、デフォルト値はありません。 | このプロパティーは、sso_<id>.sp.login.error.page をオーバーライドするために使用されます。 |
sso_<id>.sp.allowedClockSkew | このプロパティーに、デフォルト値はありません。 | このプロパティーは、IdP から送られてきた SAML トークンのトークン有効期限に加算される時間 (分数) を指定します。 |
sso_<id>.sp.trustStore | このプロパティーに、デフォルト値はありません。 | このプロパティーは、SAML 署名を検証するためのトラストストアを指定します。 これは、管理対象鍵ストアの名前を指定します。 |
sso_<id>.sp.trustAnySigner | 以下のいずれかの値を指定することができます。
|
このプロパティーは、信頼性検証用に SAML トークンの署名者証明書が検証されるかどうかを指定します。このプロパティーが true に設定された場合は、どの署名者証明書も信頼されることになります。 |
sso_<id>.sp.keyStore | このプロパティーは、EncryptedAssertion を受け取って処理するために必要であり、デフォルト値はありません。 | このプロパティーは、暗号化された SAML アサーションを暗号化解除するための秘密鍵が入っている管理対象鍵ストアの名前を指定します。 例:
|
sso_<id>.sp.keyName | このプロパティーは、EncryptedAssertion を受け取って処理するために必要であり、デフォルト値はありません。 | このプロパティーは、SAML アサーションを暗号化解除するための鍵名を指定します。 |
sso_<id>.sp.keyPassword | このプロパティーは、EncryptedAssertion を受け取って処理するために必要であり、デフォルト値はありません。 | このプロパティーは、SAML アサーションを暗号化解除するための鍵パスワードを指定します。 |
sso_<id>.sp.keyAlias | このプロパティーは、EncryptedAssertion を受け取って処理するために必要であり、デフォルト値はありません。 | このプロパティーは、SAML アサーションを暗号化解除するための鍵別名を指定します。 |
sso_<id>.sp.wantAssertionsSigned | 以下のいずれかの値を指定することができます。
|
このプロパティーが false に設定された場合は、SAML アサーションに署名する必要がないので、署名の検証は行われません。 |
sso_<id>.sp.preserveRequestState | 以下のいずれかの値を指定することができます。
|
サービス・プロバイダーがクライアント要求を IdP ログインにリダイレクトしたとき、このプロパティーは、クライアント状態を保存して、クライアント要求の完了後に復元する必要があるかどうかを指定します。 |
sso_<id>.sp.enforceTaiCookie | 以下のいずれかの値を指定することができます。
|
このプロパティーは、SSO パートナー用に作成されたサブジェクトに LTPA Cookie がマップされるかどうかを SAML TAI が確認する必要があるかどうかを示すために使用されます。 |
sso_<id>.sp.realmName | これは、任意のストリング値とすることができます。 デフォルトでは、このプロパティーは SAML 発行者名に設定されます。 | このプロパティーは任意の SAML 属性を指定するもので、realmNameRange と対で使用されます。 この属性の値はサブジェクト・レルムとして使用されます。 このレルムは、realmNameRange によって指定されたレルムのリストに存在しなければ拒否されます。 |
sso_<id>.sp.realmNameRange | このプロパティーにはデフォルト値がありません。 | このプロパティーは許容されるレルム名のリストを指定するもので、realmName と対で使用されます。 sso_<id>.sp.realmName の説明を参照してください。 |
sso_<id>.sp.retryOnceAfterTrustFailure | 以下のいずれかの値を指定することができます。
|
トラスト検証が失敗した後にランタイムがトラストストアを再ロードできるようにするには、このプロパティーを true に設定します。これにより、アプリケーション・サーバー実行中にトラストストアが新しい IdP 証明書で更新されることが許可されます。 |
sso_<id>.sp.principalName | これは、任意のストリング値とすることができます。 デフォルトでは、このプロパティーはサブジェクト NameID に設定されます。 | このプロパティーは任意の SAML 属性を指定します。 この属性の値はサブジェクト・プリンシパルとして使用されます。 |
sso_<id>.sp.uniqueId | これは、任意のストリング値とすることができます。 デフォルトでは、このプロパティーはサブジェクト NameID に設定されます。 | このプロパティーは任意の SAML 属性を指定します。 この属性の値はサブジェクト uniqueId として使用されます。 |
sso_<id>.sp.groupName | このプロパティーに、デフォルト値はありません。 | このプロパティーは任意の SAML 属性を指定します。 この属性の値はサブジェクト内のグループとして使用されます。 |
sso_<id>.sp.defaultRealm | 以下のいずれかの値を指定することができます。
|
このカスタム・プロパティーは、SAML アサーションの Issuer と NameQualifier のどちらをデフォルト・レルムとして使用するかを指定します。 |
sso_<id>.sp.useRealm | このプロパティーに、デフォルト値はありません。 | このプロパティーはレルム名を指定するもので、デフォルト・レルムをオーバーライドするために使用されます。 このプロパティーは realmName プロパティーもオーバーライドします。 |
sso_<id>.sp.idMap | 以下のいずれかの値を指定することができます。
|
このプロパティーは、SAML トークンがサブジェクトにどのようにマップされるかを指定します。 |
sso_<id>.sp.groupMap | 以下のいずれかの値を指定することができます。
|
このプロパティーは IDAssertion と一緒に使用され、SAML トークンがグループにどのようにマップされるかを指定します。 |
sso_<id>.sp.userMapImpl | このプロパティーに、デフォルト値はありません。 | このプロパティーは、カスタム・ユーザー・マッピング・モジュール・クラスの名前を指定します。
これは、SAML トークン内のユーザー ID をローカル・ユーザー・レジストリーに存在する別のユーザー ID にマップするために使用されます。 カスタム・マッピング・クラスは、com.ibm.wsspi.security.web.saml.UserMapping インターフェースを実装する必要があります。カスタム・クラスを含む .jar ファイルは、(WAS_HOME)/lib ディレクトリーまたは (WAS_HOME)/lib/ext ディレクトリーのいずれかに入れる必要があります。 |
sso_<id>.sp.X509PATH | このプロパティーに、デフォルト値はありません。 | このプロパティーは、SAML 署名の検証で使用される中間証明書用の証明書ストアを指定します。 |
sso_<id>.sp.CRLPATH | このプロパティーに、デフォルト値はありません。 | このプロパティーは、SAML 署名の検証で使用される証明書失効リスト用の証明書ストアを指定します。 |
sso_<id>.sp.filter | このプロパティーに、デフォルト値はありません。 | このプロパティーは、HTTP 要求を SAML Web SSO パートナーに対して選択するかどうかを決定する、HTTP 要求と照合される条件を指定するために使用されます。 このプロパティーについて詳しくは、『SAML TAI フィルター・プロパティー』セクションを参照してください。 |
sso_<id>.sp.preventReplayAttack | 以下のいずれかの値を指定することができます。
|
このプロパティーは、SAML TAI がクライアント要求での 2 つの同一 SAML トークンの送信を防止するかどうかを指定するために使用されます。このプロパティーはグローバル・プロパティー replayAttackTimeWindow と対で使用されます。 |
sso_<id>.sp.preventReplayAttackScope | このプロパティーにはデフォルトはありません。以下の値を指定できます。
|
デフォルトで、SAML TAI はリプレイ・アタックを避けるために、分散キャッシュを使用して SAML アサーション ID を保管します。このプロパティーを server に設定すると、SAML TAI は代わりにローカル・キャッシュを使用します。 |
sso_<id>.sp.trustedAlias | このプロパティーに、デフォルト値はありません。 | このプロパティーが指定された場合は、この別名によって指定された鍵のみが SAML アサーション内の署名の検証に使用されます。 SAMLResponse の着信 SAML アサーション内の署名に KeyInfo エレメントが含まれていない場合は、KeyInfo エレメントを解決するためにこのプロパティーを指定します。 |
sso_<id>.sp.redirectToIdPonServerSide | 以下のいずれかの値を指定することができます。
|
このプロパティーを使用して、TAI を IdP 自体にリダイレクトすることを示します。URL フラグメントがリダイレクトで失われている場合は、このプロパティーを false に設定します。それにより、TAI がクライアント・サイド・リダイレクトを実行します。 |
SAML TAI フィルター・プロパティー
sp.filter SAML TAI フィルター・プロパティーは、クライアントが IdP への認証なしで、保護されているサービス・プロバイダー・アプリケーションを直接呼び出すときに使用されます。 通常、このフィルター・プロパティーは、認証されなかったクライアント要求を sp.login.error.page プロパティーで指定された URL アドレスにリダイレクトするために、sp.login.error.page プロパティーと対で使用されます。 sp.filter プロパティーは、SAMLResponse には適用されません。SAMLResponse 内の要求 URL は、sp.acsURL に照らして評価されます。
- 入力 (必須) - 入力エレメントは通常は HTTP ヘッダー名を指定するものですが、request-url および remote-address を特別なエレメントとして使用することもできます。
- 演算子 - 演算子エレメントには次のいずれかの値を指定します。==、!=、%=、^=、<、および >
- 比較値 - このエレメントは通常はストリングを指定するものですが、IP アドレス範囲を使用することもできます。
これらの条件は、比較値で指定されている順番に従って、左から右へ向かって評価されます。 HTTP 要求で、SSO サービス・プロバイダー・パートナーによって指定されたすべてのフィルター条件が満たされると、その SSO サービス・プロバイダー・パートナーがその HTTP 要求のために選択されます。
入力エレメントが HTTP 要求から抽出する HTTP 要求ヘッダー・フィールドを特定すると、そのフィールドの値が演算子の指定に従ってフィルター・プロパティーに指定されている値と比較されます。 入力エレメントによって特定されたヘッダー・フィールドが HTTP 要求に存在しなければ、条件は満たされていないとみなされます。 標準 HTTP 要求ヘッダー・フィールドならどれでもフィルター条件の入力エレメントとして使用することができます。 有効なヘッダーのリストについては、HTTP 仕様を参照してください。
- request-url - この入力の比較値は、クライアント・アプリケーションが要求を行うために使用する URL アドレスと比較されます。
- remote-address - この入力の比較値は、HTTP 要求を送ったクライアント・アプリケーションの TCP/IP アドレスと比較されます。
例
sso_1.sp.filter=From==samluser@xyz.com
この場合は、samluser@xyz.com という値を持つ HTTP ヘッダー・フィールド From がクライアント要求に含まれていると、SAML TAI はこの sso_1 フィルターの SSO サービス・プロバイダー・パートナーをクライアント要求の処理のために選択します。sso_2.sp.filter=request-url%=ivtlanding.jsp
この場合は、クライアントが呼び出すターゲット・アプリケーションの URL にストリング ivtlanding.jsp が含まれていると、SAML TAI はこの sso_2 フィルターの SSO パートナーをクライアント要求の処理のために選択します。sso_3.sp.filter=applicationNames==DefaultApplication
この場合は、クライアント・アプリケーションが呼び出すターゲット・アプリケーションの名前が DefaultApplication であると、SAML TAI はこの sso_3 フィルターの SSO パートナーをクライアント要求の処理のために選択します。オペレーター | 条件 | 例 |
---|---|---|
== | この演算子は完全一致を指定します。 入力エレメントが比較値に等しくなければなりません。 | From==jones@my.company.com |
%= | この演算子は部分一致を指定します。 入力エレメントが比較値を包含します。 | user-agent%=IE 6request-url%=company.com/urlApp1 |
^= | 入力エレメントが比較値の 1 つを包含します。 これは | 演算子と結合できる唯一の演算子です。 | request-url^=urlApp1|urlApp2| urlApp3 |
!= | 入力エレメントが比較値を包含しません。 | request-url!=test105 |
> | 入力エレメントが比較値より大です。 | remote-address>192.168.255.130 |
< | 入力エレメントが比較値より小です。 | remote-address<192.168.255.135 |
; | 論理 AND 演算子 | request-url!=test105;From==jones@my.company.com5 |