キーの使用方法の適用ポリシー

キーの使用方法の適用ポリシーは、X.509 証明書が Gateway によってどのように使用されるかを指示する XML コードです。 このポリシーはデフォルトでは有効ですが、より緩やかな使用方法を提供するようにオーバーライドされている場合は無視されます。
gateway83
キーの使用方法の適用ポリシーは、X.509 証明書が
Layer7 API Gateway
によってどのように使用されるかを指示する XML コードです。 このポリシーはデフォルトでは有効ですが、より緩やかな使用方法を提供するようにオーバーライドされている場合は無視されます。
Gateway と一緒に提供されているデフォルトの適用ポリシーは、ほとんどのシナリオで適切ですが、特定の適用ニーズがある場合、カスタマイズされたバージョンでオーバーライドできます。
キーの使用方法の適用ポリシーの作成は上級技術ユーザ向けです。
目次
カスタマイズされたキーの使用方法の適用ポリシーを使用する方法
  1. クラスタ全体のプロパティの管理([
    Manage Cluster-Wide Properties
    ])タスクにアクセスします。
  2. 新しいキーの使用方法の適用ポリシーを
    pkix.keyUsagePolicy
    クラスタ プロパティに追加します。 カスタマイズをはじめるのに役立つように、サンプル テンプレートが以下に記載されています。
  3. Gateway を再起動します。
認識されているアクション名
Gateway は、以下のキーの使用方法アクティビティ名を認識します。
アクション
説明
注意事項
verifyXml
公開鍵を使用して、署名された XML を検証します
encryptXml
秘密鍵用に、公開鍵を使用して XML を暗号化します
sslServerRemote
リモートのサーバ証明書を使用するハンドシェイクを許可します
クライアントは、送信 SSL 接続中にこの確認を実行します。
sslClientRemote
リモートのクライアント証明書を使用するハンドシェイクを許可します
サーバは、受信 SSL 接続中にこの確認を実行します。
verifyClientCert
この証明書によって署名された証明書を確認します
証明書チェーンの検証中に確認が実行されます。
verifyCrl
この証明書によって署名された証明書失効リストを確認します
認証時および SSL 送信時に、Gateway の CertValidationProcessor によって確認が実行されます。
decryptXml
秘密鍵を使用して暗号化された XML を、公開鍵を使用して復号化します
このアクションは非常に特殊なものです。 Gateway は、通常の使用ではこれを行いません。
signXml
公開鍵を使用して XML に署名します
このアクションは非常に特殊なものです。 Gateway は、通常の使用ではこれを行いません。
適用ポリシーのサンプル テンプレート
以下のサンプル テンプレートを使用して、カスタマイズをはじめるのに役立てることができます。 詳細については、埋め込まれているコメントを参照してください。
<keyusagepolicy xmlns="http://www.layer7tech.com/ws/keyusage"> <!-- A permit rule without an action applies to every action --> <permit><req>anyExtendedKeyUsage</req></permit><!-- A permit rule without requirements always succeeds --> <permit action="signXml"/> <permit action="decryptXml"/> <!-- Multiple permit rules may be specified for an activity.At least one permit rule must succeed. --> <permit action="verifyXml"><req>digitalSignature</req></permit> <permit action="verifyXml"><req>nonRepudiation</req></permit> <!-- Multiple requirements may be specified for a permit rule. All requirements must match for that permit rule to succeed. --> <permit action="sslClientRemote"><req>digitalSignature</req><req>keyEncipherment</req></permit> <permit action="sslClientRemote"><req>nonRepudiation</req><req>keyEncipherment</req></permit> <!-- An ext. key usage requirement may use a dotted-decimal OID. --> <permit action="sslClientRemote"><req>1.3.6.1.5.5.7.3.2</req></permit> <permit action="encryptXml"><req>keyEncipherment</req></permit> <permit action="sslServerRemote"><req>keyEncipherment</req></permit> <permit action="sslServerRemote"><req>keyAgreement</req></permit> <permit action="sslServerRemote"><req>id-kp-serverAuth</req></permit> <permit action="verifyClientCert"><req>keyCertSign</req></permit> <permit action="verifyCrl"><req>cRLSign</req></permit> </keyusagepolicy>
アクション内で「OR」ロジックの許可を作成するには、以下の構文を使用します。
<!-- key_usage_value_1 or key_usage_value_2 is required for permission of action_value --> <permit action="action_value"><req>key_usage_value_1></req></permit> <permit action="action_value"><req>key_usage_value_2></req></permit>
アクション内で「AND」ロジックの許可を作成するには、以下の構文を使用します。
<!-- both key_usage_value_1 and key_usage_value_2 are required for permission of action_value --> <permit action="action_value"><req>key_usage_value_1></req><req>key_usage_value_2></req></permit>
サンプル テンプレートの注意事項
  • エンフォーサは、どのクリティカルな拡張が存在するかに応じて、ポリシー全体を 0、1、または 2 回確認します。
    • 証明書にクリティカルな KeyUsage もクリティカルな ExtKeyUsage もない場合、エンフォーサは常にアクティビティを許可します。
    • クリティカルな KeyUsage がある場合、エンフォーサはポリシーを最初から最後までスキャンして、一致する KeyUsage 許可ルールを探します。 1 つも見つからずに最後のポリシーまで達した場合、そのポリシーは拒否されます。 許可ルールは、それが全面的な許可である場合、または以下の標準の KeyUsage ビット名のいずれかに対する要件を持つ場合、KeyUsage に属します。
cRLSign
dataEncipherment
decipherOnly
digitalSignature
encipherOnly
keyAgreement
keyCertSign
keyEncipherment
nonRepudiation
    • クリティカルな ExtKeyUsage がある場合、エンフォーサはポリシーを最初から最後までスキャンして、一致する ExtKeyUsage 許可ルールを探します。 1 つも見つからずに最後のポリシーまで達した場合、そのアクティビティは拒否されます。 許可ルールは、それが全面的な許可である場合、またはドットで区切られた 10 進数の OID 文字列に対する要件を持つ場合、または認識されている ExtKeyUsage 名のいずれかに対する 要件を持つ場合、ExtKeyUsage に属します。
any
anyExtendedKeyUsage
id-kp-clientAuth
id-kp-codeSigning
id-kp-emailProtection
id-kp-ipsecEndSystem
id-kp-ipsecTunnel
id-kp-ipsecUser
id-kp-OCSPSigning
id-kp-serverAuth
id-kp-smartcardlogon
id-kp-timeStamping
id-pkix-ocsp-nocheck
  • 要件を持たないアクティビティの許可ルールは、そのアクティビティに対する全面的な許可です。
  • 許可ルールのすべての要件で KeyUsage 内の対応するビットが設定されている場合、KeyUsage は許可ルールに一致します。
  • 許可ルールのすべての要件で ExtKeyUsage 内に対応する OID がある場合、ExtKeyUsage は許可ルールに一致します。
  • 同じ <permit> 要素内に KeyUsage 要件と ExtKeyUsage 要件が混在している単一の許可ルールは、その要件すべてに一致できる KeyUsage または ExtKeyUsage はないため、一致することはありません。 このようなルールは、おそらく誤りです。