Flex Gateway新着情報
Governance新着情報
Monitoring API Manager他の設定を行わない限り、ポリシーはデフォルトでは API 全体に適用されます。ただし、条件に基づいてアクセスが制御されるポリシーの粒度レベルを追加して実装できます。この粒度のポリシーはリソースレベルポリシーと呼ばれます。
粒度のリソースレベルでは、ポリシーは条件に一致する要求のみに適用されます。 クロスオリジンリソース共有 (CORS) ポリシーを除くすべてのポリシーは、リソースレベルです。
Mule 4 では、リソースレベルポリシーは RAML API に加えて HTTP ベースの API もサポートします。 API 内のメソッド (数は無制限) に対して URI テンプレート正規表現を使用することで、複数の条件を適用してリソースや HTTP メソッドを絞り込むことができます。
リソースレベルのシナリオは多くの方法で使用できます。一例を紹介します。
特定のリソースにポリシーを適用する。
API のサブセットを保護する。
複数のリソースに異なる制限を設定する。
API に RAML または OAS 仕様が関連付けられている場合は、[Preview Resource Matching (リソース一致をプレビュー)] オプションを使用して、検索条件の影響を受けるリソースを決定できます。
リソースレベルポリシーは、Java 正規表現をサポートしています。たとえば、ワイルドカードを使用してポリシーを複数のリソースに適用できます。ポリシーを API に適用する場合は、適用対象のリソースを指定します。
リソースレベルポリシーを実装する場合は、以下の点に注意してください。
正規表現内で {userid} などのプレースホルダーを使用しないでください。
式でプレースホルダーを使用すると、プレースホルダーが実際のノードに一致しないため、失敗します。プレースホルダー例の {userid} では、ノードは次のようになります。
/api/users/671962fc-f076-4b19-bc38-45ba3a4e4095/permissions/1234
671962fc-f076-4b19-bc38-45ba3a4e4095 がユーザー ID です。
1234 は権限の ID です。
1 人のユーザーとすべてのリソースノードを表すリソース /api/users/{userid}
にポリシーを適用するには、次の式を使用します。
userid
は、1 人のユーザーとすべてのリソースノード /api/users/.*
を表します。
権限リソース /api/users/{userId/permissions}
と /api/users/{userid}/permissions/{permissionId}
のみにポリシーを適用するには、次の式を使用します。
/api/users/./permissions.