-
-
-
VMware ESX、Linux KVM、およびCitrix HypervisorでNetScaler ADC VPXのパフォーマンスを最適化する
-
-
-
-
-
API 仕様を使用した高度なポリシー表現
-
-
-
-
-
-
-
-
-
-
-
-
This content has been machine translated dynamically.
Dieser Inhalt ist eine maschinelle Übersetzung, die dynamisch erstellt wurde. (Haftungsausschluss)
Cet article a été traduit automatiquement de manière dynamique. (Clause de non responsabilité)
Este artículo lo ha traducido una máquina de forma dinámica. (Aviso legal)
此内容已经过机器动态翻译。 放弃
このコンテンツは動的に機械翻訳されています。免責事項
이 콘텐츠는 동적으로 기계 번역되었습니다. 책임 부인
Este texto foi traduzido automaticamente. (Aviso legal)
Questo contenuto è stato tradotto dinamicamente con traduzione automatica.(Esclusione di responsabilità))
This article has been machine translated.
Dieser Artikel wurde maschinell übersetzt. (Haftungsausschluss)
Ce article a été traduit automatiquement. (Clause de non responsabilité)
Este artículo ha sido traducido automáticamente. (Aviso legal)
この記事は機械翻訳されています.免責事項
이 기사는 기계 번역되었습니다.책임 부인
Este artigo foi traduzido automaticamente.(Aviso legal)
这篇文章已经过机器翻译.放弃
Questo articolo è stato tradotto automaticamente.(Esclusione di responsabilità))
Translation failed!
API 仕様を使用した高度なポリシー表現
Web App Firewall のインポートページに統一された API 仕様をインポートし、その API 仕様を使用して高度なポリシー式を作成できます。式に基づいて、着信 API トラフィックに適切なアクションを設定できます。 API 仕様には、エンドポイント、スキーマ、およびパラメータが含まれています。受信 API トラフィックのタイプは gRPC でも REST でもかまいません。
http.req.api
式を使用して、API 仕様で定義されている受信リクエストのエンドポイントを識別できます。
構文:
http.req.api (“API_Spec_Name”)
例:
set responder policy reject -rule !"http.req.api(\"myspec\").endpoint(\"POST"\",\"/v1/pet/\")
トラフィックが API 仕様で指定されているエンドポイントと一致しない場合、システムはすべてのトラフィックを拒否します。
API スキーマの高度なポリシー表現
次の操作を使用して、API の高度なポリシー式を作成できます:
前提条件。
Web App Firewall のインポートオプションを使用して API 仕様ファイルをインポートします。
詳細については、「 インポート」を参照してください。
HTTP メソッドでトラフィックを照合する式
HTTP 文字列メソッドを使用して、一致する API を制限します。この文字列には、”で区切られた 1 つ以上の HTTP メソッドを含めることができます。 | “またはワイルドカード (*) を含めることができます。複数のメソッドが指定されている場合、式はメソッド間の OR 条件として評価されます。 |
たとえば、GET、PUT、DELETE は、受信したリクエストを HTTP メソッド GET OR PUT または DELETE と照合します。
例:
-
単一の HTTP メソッド
http.req.api("petstore").method("POST").text("id").eq("1")
-
マルチメソッド
http.req.api("petstore").method("GET|DELETE").exists
URL でトラフィックを照合する式
PATH (URL 文字列) は、ワイルドカードを含むエンドポイントの照合に使用されます。1 つのアスタリスク (*) は 1 つのセグメントと一致し、2 つのアスタリスク (**) は 2 つのアスタリスクの前にプレフィックスが付いたすべてのセグメントと一致します。
例:
-
http.api("petstore").path("/v1/pets/*/find")
次の条件でのみ受信トラフィックを照合します。/v1/pets/*/find
-
http.api("petstore").path("/v1/pets/**")
以下で始まるすべてのエンドポイントにマッチします/v1/pets
API 名でトラフィックを照合する式
APINAME (名前文字列) 式を使用して、一致するトラフィックを API 名で制限します。次の例に示すように、show コマンドを実行して API 名の文字列を使用することもできます:
show api spec gspec
Name: gspec
File: gfile
Type: OAS
<!--NeedCopy-->
-
ファイルタイプが OAS の場合、
operation ID
がエンドポイント名になります。例:次の OAS からのエンドポイントに対して受信トラフィックを検証するには:
operationId: adexchangebuyer.accounts.list
次のポリシー表現を使用してください。
http.req.api("schema").apiname("adexchangebuyer.accounts.list").exists
-
ファイルタイプが proto の場合、
service name
とrpc name
がエンドポイント名になります。次の例では、EchoService.Echo がエンドポイントです。 サービスEchoService{rpc { rpc Echo(EchoReq) returns (EchoResp) { option (google.api.http) = { get: “/v1/{name=messages/*}” }; } }
API 仕様の値にアクセスする
API 仕様のフィールドには、名前、パス、クエリパラメータ、JSON 本文、または gRPC 本体でアクセスできます。パラメーターのタイプを定義するには、PI 式を使用します。次のタイプがサポートされています:
- num-整数値。
- ulong-長整数値。
- bool-ブーリアン値。
- double -ダブル値。
- text-任意の長さの文字列。
例: 値 1 と一致する数値パラメータを使用して受信トラフィックを検証するには、次の式を使用します:
http. req.api("petstore.proto"). APIName ("TestPet").NUM("test_num1").eq(1)
繰り返しフィールドの値にアクセスする
API で繰り返されるオブジェクトにアクセスするには、2 番目のパラメータを繰り返しインデックスとして使用します。 配列の外部にアクセスすると、値は未定義になります。
例:
「FindPets」エンドポイントの 5 番目のタグを取得するには、以下を使用します。
http.req.api("petstore.proto", "FindPets').TEXT( "tags", 5 ).contains("mytag")
繰り返されるタグ文字列の 5 番目のタグを取得するには、以下を使用します。
/v1/pets?tags=1&tags=2&tags=3&tags=4&tags=mytag&tags=6
ネストされたオブジェクトの値にアクセスする
オブジェクトは他のオブジェクトの中にネストできます。同じドキュメント内のネストされたオブジェクトに同じフィールド名があってもかまいません。ただし、フルアクセス名は引き続き一意である必要があります。 ネストされたフィールドにアクセスするには、フィールド名を「」で連結します。区切り文字としての”.”(ドット)。
例:kennel.location.state を使用して、次の JSON からカリフォルニアを取得します。
{ 「犬小屋」: { 「場所」: { 「州」:「カリフォルニア」 } }
式
http. req.api("petstore.proto", "TestPet").text( "kennel.location.state" ).contains("California")
オブジェクト式を使用して値にアクセスする
Object () 式は、繰り返されるオブジェクトのサブフィールドにアクセスするときに使用されます。異なる値で構成されたオブジェクトが 2 つ以上ある場合は、式を作成して 1 つの値に固有のオブジェクトを検証できます。 たとえば、次の JSON 本文では、オブジェクト「foo」には 1 つと「なし」の 2 つの値があります。 { “foo” : [ { “bar” : “one” }, { “bar” : “none” } ] }
値を「なし」と比較するには、式を次のように構成できます:
HTTP. req.api("schema").object("foo",1).text("bar").eq("none")
共有
共有
この記事の概要
This Preview product documentation is Cloud Software Group Confidential.
You agree to hold this documentation confidential pursuant to the terms of your Cloud Software Group Beta/Tech Preview Agreement.
The development, release and timing of any features or functionality described in the Preview documentation remains at our sole discretion and are subject to change without notice or consultation.
The documentation is for informational purposes only and is not a commitment, promise or legal obligation to deliver any material, code or functionality and should not be relied upon in making Cloud Software Group product purchase decisions.
If you do not agree, select I DO NOT AGREE to exit.