-
-
Konfigurieren der Anwendungsauthentifizierung, Autorisierung und Überwachung
-
-
Konfiguration einer fortschrittlichen Richtlinieninfrastruktur
-
Regeln für Namen in Identifikatoren, die in Richtlinien verwendet werden
-
Konfigurieren und binden Sie Richtlinien mit dem Policy Manager
-
Rufen Sie ein Richtlinienlabel oder eine virtuelle Server-Richtlinienbank auf oder entfernen Sie sie
-
Konfigurieren und binden Sie Richtlinien mit dem Policy Manager
-
-
Erweiterte Richtlinienausdrücke konfigurieren: Erste Schritte
-
Erweiterte Richtlinienausdrücke: Arbeiten mit Datum, Uhrzeit und Zahlen
-
Erweiterte Richtlinienausdrücke: Analysieren von HTTP-, TCP- und UDP-Daten
-
Ausdrücke zur Identifizierung des Protokolls in einem eingehenden IP-Paket
-
Ausdrücke für HTTP-Statuscodes und numerische HTTP-Nutzdaten außer Datumsangaben
-
Operationen für HTTP-, HTML- und XML-Codierung und „sichere“ Zeichen
-
Ausdrücke zum Auswerten einer DNS-Nachricht und Identifizieren ihres Trägerprotokolls
-
Erweiterte Richtlinienausdrücke: Analysieren von SSL-Zertifikaten
-
Erweiterte Richtlinienausdrücke: IP- und MAC-Adressen, Durchsatz, VLAN-IDs
-
Erweiterte Richtlinienausdrücke: Stream-Analytics-Funktionen
-
Erweiterte Richtlinienausdrücke mithilfe der API-Spezifikation
-
Zusammenfassende Beispiele für fortgeschrittene politische Ausdrücke
-
Tutorial-Beispiele für erweiterte Richtlinien für das Umschreiben
-
-
-
Verhalten des Content-Length-Headers in einer Rewrite-Richtlinie
-
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!
Erweiterte Richtlinienausdrücke mithilfe der API-Spezifikation
Sie können einheitliche API-Spezifikationen auf die Importseite der Web App Firewall importieren und dann mithilfe der API-Spezifikationen einen erweiterten Richtlinienausdruck erstellen. Sie können die entsprechenden Aktionen für den eingehenden API-Verkehr basierend auf den Ausdrücken konfigurieren. Eine API-Spezifikation enthält den Endpunkt, das Schema und die Parameter. Der eingehende API-Verkehr kann vom Typ gRPC oder REST sein.
Sie können den Ausdruck http.req.api
verwenden, um die Endpunkte in den eingehenden Anfragen zu identifizieren, die in der API-Spezifikation definiert sind.
Syntax:
http.req.api (“API_Spec_Name”)
Beispiel:
set responder policy reject -rule !"http.req.api(\"myspec\").endpoint(\"POST"\",\"/v1/pet/\")
Das System lehnt den gesamten Datenverkehr ab, wenn der Datenverkehr nicht mit den in der API-Spezifikation angegebenen Endpunkten übereinstimmt.
Erweiterter Richtlinienausdruck für das API-Schema
Mithilfe der folgenden Operationen können Sie erweiterte Richtlinienausdrücke für die API erstellen:
Voraussetzungen.
Importieren Sie die API-Spezifikationsdatei mithilfe der Importoption in der Web App Firewall.
Weitere Informationen finden Sie unter Importe.
Ausdruck zum Abgleichen des Datenverkehrs nach der HTTP-Methode
Verwenden Sie eine HTTP-Zeichenfolgenmethode, um passende APIs einzuschränken. Diese Zeichenfolge kann eine oder mehrere HTTP-Methoden enthalten, getrennt durch“|„oder kann einen Platzhalter (*) enthalten. Wenn mehr als eine Methode angegeben wird, wird der Ausdruck zu einer ODER-Bedingung zwischen den Methoden ausgewertet. GET|PUT|DELETE gleicht beispielsweise eine eingehende Anfrage mit der HTTP-Methode GET OR PUT OR DELETE ab.
Beispiel:
-
Einzelne HTTP-Methode
http.req.api("petstore").method("POST").text("id").eq("1")
-
Mehrfache Methode
http.req.api("petstore").method("GET|DELETE").exists
Ausdruck zum Abgleichen des Datenverkehrs nach URL
PATH (URL-Zeichenfolge) wird verwendet, um die Endpunkte abzugleichen, die Platzhalter enthalten. Das einzelne Sternchen (*) entspricht einem einzelnen Segment, während das doppelte Sternchen (**) allen möglichen Segmenten entspricht, denen das doppelte Sternchen vorangestellt ist.
Beispiel:
-
http.api("petstore").path("/v1/pets/*/find")
Es gleicht den eingehenden Verkehr nur mit/v1/pets/*/find
-
http.api("petstore").path("/v1/pets/**")
Es entspricht allen Endpunkten, beginnend mit/v1/pets
Ausdruck zum Abgleichen des Datenverkehrs nach API-Namen
Verwenden Sie den Ausdruck APINAME (Namenszeichenfolge), um den passenden Datenverkehr nach API-Namen einzuschränken. Sie können die API-Namenszeichenfolge auch verwenden, indem Sie den Befehl show ausführen, wie im folgenden Beispiel gezeigt:
show api spec gspec
Name: gspec
File: gfile
Type: OAS
<!--NeedCopy-->
-
operation ID
dient als Endpunktname, wenn der Dateityp OAS ist.Beispiel: Um den eingehenden Datenverkehr für den Endpunkt aus dem folgenden OAS zu validieren:
Vorgangs-ID: adexchangebuyer.accounts.list
Verwenden Sie den folgenden Richtlinienausdruck:
http.req.api("schema").apiname("adexchangebuyer.accounts.list").exists
-
service name
undrpc name
dienen als Endpunktname, wenn der Dateityp Proto ist.Im folgenden Beispiel ist echoService.echo der Endpunkt: service echoService { rpc Echo (Echoreq) returns (echoResp) { option (google.api.http) = {get: „ /v1/ {name=messages/*}“};}}
Greifen Sie auf Werte aus der API-Spezifikation zu
Sie können auf die Felder in den API-Spezifikationen über Name, Pfad, Abfrageparameter, JSON-Text oder gRPC-Body zugreifen. Verwenden Sie PI-Ausdrücke, um den Typ des Parameters zu definieren. Die folgenden Typen werden unterstützt:
- num — Ein ganzzahliger Wert.
- ulong — Ein langer Integer-Wert.
- bool - Ein boolescher Wert.
- double - Ein doppelter Wert.
- text - Eine Zeichenfolge beliebiger Länge.
Beispiel: Verwenden Sie den folgenden Ausdruck, um den eingehenden Datenverkehr mithilfe eines numerischen Parameters zu überprüfen, der dem Wert eins entspricht:
http. req.api("petstore.proto"). APIName ("TestPet").NUM("test_num1").eq(1)
Greifen Sie auf den Wert aus den wiederholten Feldern zu
Um auf wiederholte Objekte in APIs zuzugreifen, verwenden Sie den zweiten Parameter als sich wiederholenden Index. Ein Zugriff außerhalb des Arrays führt zu einem undefinierten Wert.
Beispiel:
Um das fünfte Tag im Endpunkt ‘FindPets’ abzurufen, verwenden Sie:
http.req.api("petstore.proto", "FindPets').TEXT( "tags", 5 ).contains("mytag")
Um das fünfte Tag in der Zeichenfolge mit wiederholten Tags abzurufen, verwenden Sie:
/v1/pets?tags=1&tags=2&tags=3&tags=4&tags=mytag&tags=6
Greifen Sie auf Werte aus den verschachtelten Objekten zu
Objekte können in andere Objekte verschachtelt werden. Derselbe Feldname kann in verschachtelten Objekten im selben Dokument vorkommen. Der vollständige Zugriffsname muss jedoch weiterhin eindeutig sein. Um auf verschachtelte Felder zuzugreifen, verketten Sie die Feldnamen mit einem“. „(Punkt) als Trennzeichen.
Beispiel: Verwenden Sie kennel.location.state, um California aus dem folgenden JSON abzurufen.
{ „Zwinger“: { „Standort“: { „Bundesstaat“: „Kalifornien“ }} }
Ausdruck
http. req.api("petstore.proto", "TestPet").text( "kennel.location.state" ).contains("California")
Zugriff auf den Wert mithilfe eines Objektausdrucks
Der Object () -Ausdruck wird beim Zugriff auf Unterfelder wiederholter Objekte verwendet. Wenn zwei oder mehr Objekte mit unterschiedlichen Werten konfiguriert sind, können Sie einen Ausdruck erstellen, um das Objekt für einen Wert zu validieren. Im folgenden JSON-Text hat das Objekt „foo“ beispielsweise zwei Werte, nämlich eins und keinen. { „foo“: [ { „bar“: „eins“ }, { „bar“: „keiner“ } ] }
Um den Wert mit keinem zu vergleichen, können Sie den Ausdruck wie folgt konfigurieren:
HTTP. req.api("schema").object("foo",1).text("bar").eq("none")
Teilen
Teilen
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.