グローバル ポリシーのフラグメント

グローバル ポリシーは、システムのすべてのサービス ポリシーの前後に必ず適用されるポリシー フラグメントです。 監査またはログ記録のような、ポリシー ロジックをすべてのサービス ポリシーに手動で追加することが難しいグローバル動作を設定するために使用できます。
gateway94
グローバル ポリシーは、システムのすべてのサービス ポリシーの前後に必ず適用されるポリシー フラグメントです。 監査またはログ記録のような、ポリシー ロジックをすべてのサービス ポリシーに手動で追加することが難しいグローバル動作を設定するために使用できます。
グローバル ポリシーは、整合性を維持し、発生する可能性があるエラーを削減します。これは、特定の結果を達成するために管理者が手動でポリシー フラグメントをすべてのサービス ポリシーに漏れなく挿入する必要がなくなるためです(このシナリオでは、Policy Manager は管理者がポリシー フラグメントを追加し忘れたインスタンスを検出できません)。
「Administrator」ロールを持ったユーザのみがグローバル ポリシーを作成または削除できます。 「Administrator」または「Manage Web Service」ロールを持つユーザが、グローバル ポリシーを編集できます。 「Administrator」、「Operator」または「Manage Web Service」ロールで、グローバル ポリシーの読み取りが可能です。
ユーザのグローバル ポリシーを慎重に計画することが重要です。 これらのポリシーの不注意な使用は、サービス リクエストが失敗し、診断が困難になる原因となります。
グローバル ポリシーのタイプ
以下のタイプのグローバル ポリシーが使用可能です(ポリシー プロパティ内の[Policy Tag]フィールドから選択可):
  • message-received:
    このタイプのポリシーはメッセージの受信時(ただしサービスの解決前)に実行されます。
  • pre-security:
    このタイプのポリシーは、リクエスト内の最初のセキュリティが処理される前に実行されます。 メッセージにセキュリティがなくても、このポリシーは実行されます。
このポリシー タイプに関するその他の注意事項: ターゲット サービスが確定される前でも「pre-security」グローバル ポリシーを実行できます。これは、サービスを解決するためにメッセージの復号化が必要な場合があるためです。 その結果、対応する「post-security」が実行されなくても、「pre-security」ポリシーが実行される場合が考えられます。 たとえば、「pre-security」ポリシーが実行されたが、サービスの解決に失敗したシナリオを考えます。 これが発生する場合、解決の失敗時に実行可能な唯一のポリシーは「message-completed」ポリシーです。
  • pre-service:
    このタイプのポリシーは、サービス ポリシーの実行前に実行されます。
  • post-service:
    このタイプのポリシーは、サービス ポリシーの実行後に実行されます。
  • post-security:
    このタイプのポリシーは、応答に対するセキュリティの処理後に実行されます。 このポリシーは、セキュリティ処理が不要な場合でも実行されます。
  • message-completed:
    このタイプのポリシーは、メッセージ処理の終了時に実行されます。 このポリシーは、サービス ポリシーが失敗した場合、例外が発生した場合、サービスを解決できなかった場合、またはサービス ポリシーの完了を妨害するその他の条件下でも実行されます。
各タイプの 1 つのポリシーのみが許可されます。
グローバル ポリシーの評価の仕組み
グローバル ポリシーは、上記の「グローバル ポリシーのタイプ」で示された順序で評価されます。 ただし、すべての場合で、評価されないグローバル ポリシーが存在する可能性があります。 サービスが解決されない場合、以下のグローバル ポリシーのみが実行されます。
  • message-received ポリシー
  • pre-security ポリシー(サービスの解決中にセキュリティ処理が必要な場合のみ、つまり暗号化されたメッセージ本体に対して)
  • message-completed ポリシー
これらのタイプのグローバル ポリシーは、サービスが解決されなくても実行される必要があり、応答メッセージがあると仮定するべきではありません。 そのため、たとえば WSDL 操作アサーションは、これらのポリシーで使用されるべきではありません。
ポリシー処理が例外またはポリシー偽造エラーのために失敗した場合、以下のグローバル ポリシーが実行されます。
  • message-received ポリシー
  • pre-security ポリシー
  • pre-service ポリシー
  • message-completed ポリシー
Gateway は、エラーの発生時またはポリシーの失敗時にグローバル ポリシーの評価を停止します。ただし、常に実行される message-completed ポリシーは除きます。
アサーションが含まれないグローバル ポリシーまたは含まれるアサーションがすべて無効であるグローバル ポリシーは常に成功します。
グローバル ポリシーとサービス ポリシーの関連
グローバル ポリシーはサービス ポリシーと以下を共有しています。
  • リクエスト/応答メッセージ
  • メッセージ コンテキスト マッピング
  • 監査/エラー設定
  • 認証の詳細
  • 組み込みコンテキスト変数(実行しているポリシーに対してローカルであるその他のすべての変数)
グローバル ポリシー内のアサーションのルーティングは、ルーティング遅延またはサービス ポリシーの URL に影響しません。
グローバル ポリシーのポリシー ステータスは、サービスの全体的なステータスに影響します。グローバル ポリシーの失敗は、メッセージ処理の「ポリシー偽造」エラーの原因となります。
SOAP Fault の詳細には、グローバル ポリシーの詳細が含まれません。
監査シンク ポリシーが設定されると、このポリシーはサービス ポリシーおよびすべてのグローバル ポリシーの完了後に実行されます。
グローバル ポリシーを構築する場合、任意のポリシー フラグメントを使用できます。
互換性のあるアサーション
以下のアサーションがグローバル ポリシーでの使用に関してテストされ認定されます。
  • Add Audit Detail アサーション
  • Add Comment to Policy アサーション
  • All Assertions Must Evaluate to True アサーション
  • Apply Rate Limit アサーション
  • At Least One Assertion Must Evaluate to True アサーション
  • Audit Messages in Policy アサーション
  • Capture Identity of Requestor アサーション
  • Compare Expression アサーション
  • Continue Processing アサーション
  • Customize Error Response アサーション
  • Customize SOAP Fault Response アサーション
  • Export Variables from Fragment アサーション
    注:
    構文
    ${request.shared.<exported_variable_name>}
    を使用して、エクスポートされた変数を必ず参照してください。)
  • Include Policy Fragment アサーション
  • Limit Availability to Time/Days アサーション
  • Limit Message Size アサーション
  • Resolve Service アサーション
  • Restrict Access to IP Address Range アサーション
  • Send Email アサーション
  • Send SNMP Trap アサーション
  • Set Context Variable アサーション
  • Stop Processing アサーション
警告:
上にリスト表示されていないその他のアサーションは、動作する可能性はありますが、CA Technologies によってサポートされていません。 副次的な影響が大きいグローバル ポリシー内のアサーションの使用は避けてください。このようなアサーションは、サービス ポリシーのデバッグを非常に困難にする可能性があります。
グローバル ポリシーに対する制限
グローバル ポリシーが処理されない場合、以下のシナリオに注意してください。
  • Gateway が
    Layer7 API Gateway
    - XML VPN Client 用のポリシーを生成するとき、グローバル ポリシーは処理されません。
  • Gateway がサービス WSDL に添付される WS-SecurityPolicy ドキュメントを生成するとき、グローバル ポリシーは処理されません。
  • サービスに対してポリシー デバッグ追跡が有効である場合、グローバル ポリシーは含まれません。
  • サービス ポリシーがエクスポートされるときに、グローバル ポリシーは含まれません。
  • グローバル ポリシーはポリシーの移行に含まれません。
グローバル ポリシーの検証
ポリシー フラグメントの場合と同様に、グローバル ポリシーの編集時に Policy Manager に組み込まれたポリシー検証機能で提供されるサポートは限られています。
グローバル ポリシーが有効である場合、ポリシーの編集時に検証機能が予期しない警告を表示する可能性があります。これは検証機能がグローバル ポリシーの影響を認識しないためです。 たとえば、認証情報がグローバル ポリシーで収集された場合、それらの認証情報を使用するサービス ポリシーは、認証情報が収集されていないという検証機能の警告をトリガする可能性があります。 そのようなグローバル ポリシーの使用は推奨されません。