-
-
Personnaliser la configuration d'AppExpert
-
Configuration des services et des groupes de services pour une unité d'application
-
Configurer des points de terminaison publics pour une application
-
Configurer des groupes de persistance pour les unités d'application
-
Afficher les applications AppExpert et configurer les entités à l'aide du visualiseur d'applications
-
Configuration de l'authentification, de l'autorisation et de l'audit des applications
-
-
Configurer l'infrastructure de stratégie avancée
-
Règles pour les noms dans les identificateurs utilisés dans les stratégies
-
Configurer et lier des stratégies avec le gestionnaire de stratégies
-
Appeler ou supprimer une étiquette de stratégie ou une banque de stratégies de serveur virtuel
-
Configurer et lier des stratégies avec le gestionnaire de stratégies
-
-
Configurer une expression de stratégie avancée : pour démarrer
-
Expressions de stratégie avancées : utilisation de dates, d'heures et de chiffres
-
Expressions de stratégie avancées : analyse des données HTTP, TCP et UDP
-
Expressions de stratégie avancées : analyse des certificats SSL
-
Expressions de stratégie avancées : adresses IP et MAC, débit, identifiants VLAN
-
Expressions stratégies avancées : fonctions d'analyse des flux
-
Expressions de stratégie avancées utilisant la spécification de l'API
-
Exemples didacticiels de stratégies avancées pour la réécriture
-
-
-
Comportement de l'en-tête Content-length dans une stratégie de réécriture
-
Réécrire les exemples d'actions et de stratégies
-
Exemple 1 : supprimer les anciens en-têtes X-Forwarded-For et Client-IP
-
Exemple 3 : baliser les connexions sécurisées et non sécurisées
-
Exemple 6 : Migrer les règles du module de réécriture Apache
-
Exemple 8 : rediriger les requêtes vers le serveur interrogé
-
Exemple 11 : chiffrement RSA basé sur des règles sans remplissage
-
-
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!
Expressions de politique avancées utilisant la spécification de l’API
Vous pouvez importer des spécifications d’API unifiées sur la page d’importation de Web App Firewall, puis créer une expression de stratégie avancée à l’aide des spécifications de l’API. Vous pouvez configurer les actions appropriées pour le trafic d’API entrant en fonction des expressions. Une spécification d’API contient le point de terminaison, le schéma et les paramètres. Le trafic API entrant peut être de type gRPC ou REST.
Vous pouvez utiliser l’ http.req.api
expression pour identifier les points finaux dans les demandes entrantes définies dans la spécification de l’API.
Syntaxe :
http.req.api (“API_Spec_Name”)
Exemple :
set responder policy reject -rule !"http.req.api(\"myspec\").endpoint(\"POST"\",\"/v1/pet/\")
Le système rejette tout le trafic s’il ne correspond pas aux points de terminaison spécifiés dans la spécification de l’API.
Expression de stratégie avancée pour le schéma d’API
Vous pouvez créer des expressions de stratégie avancées pour l’API à l’aide des opérations suivantes :
Prérequis.
Importez le fichier de spécification de l’API à l’aide de l’option d’importation du Web App Firewall.
Pour plus d’informations, consultez la section Importations.
Expression permettant de faire correspondre le trafic par méthode HTTP
Utilisez une méthode de chaîne HTTP pour restreindre les API correspondantes. Cette chaîne peut contenir une ou plusieurs méthodes HTTP séparées par »|« ou peut contenir un caractère générique (*). Lorsque plusieurs méthodes sont spécifiées, l’expression renvoie à une condition OR entre les méthodes. Par exemple, GET|PUT|DELETE associe une requête entrante à la méthode HTTP GET OR PUT OR DELETE.
Exemple :
-
Méthode HTTP unique
http.req.api("petstore").method("POST").text("id").eq("1")
-
Méthode multiple
http.req.api("petstore").method("GET|DELETE").exists
Expression permettant de faire correspondre le trafic par URL
PATH (chaîne d’URL) est utilisé pour faire correspondre les points de terminaison qui incluent des caractères génériques. L’astérisque simple (*) correspond à un seul segment tandis que le double astérisque (**) correspond à tous les segments possibles préfixés avant le double astérisque.
Exemple :
-
http.api("petstore").path("/v1/pets/*/find")
Correspond au trafic entrant uniquement avec/v1/pets/*/find
-
http.api("petstore").path("/v1/pets/**")
Correspond à tous les terminaux, en commençant par/v1/pets
Expression permettant de faire correspondre le trafic par nom d’API
Utilisez l’expression APINAME (chaîne de nom) pour restreindre le trafic correspondant par nom d’API. Vous pouvez également utiliser la chaîne du nom de l’API en exécutant la commande show comme illustré dans l’exemple suivant :
show api spec gspec
Name: gspec
File: gfile
Type: OAS
<!--NeedCopy-->
-
Le
operation ID
sert de nom du point de terminaison si le type de fichier est OAS.Exemple : Pour valider le trafic entrant par rapport au point de terminaison à partir de l’OAS suivant :
ID d’opération : adexchangebuyer.accounts.list
Utilisez l’expression de stratégie suivante :
http.req.api("schema").apiname("adexchangebuyer.accounts.list").exists
-
service name
etrpc name
sert de nom du point de terminaison si le type de fichier est proto.Dans l’exemple suivant, EchoService.Echo est le point de terminaison : service EchoService { rpc Echo(EchoReq) returns (EchoResp) { option (google.api.http) = { get: “/v1/{name=messages/*}” }; } }
Accédez aux valeurs de la spécification de l’API
Vous pouvez accéder aux champs des spécifications de l’API par nom, chemin, paramètres de requête, corps JSON ou corps gRPC. Pour définir le type du paramètre, utilisez des expressions PI. Les types suivants sont pris en charge :
- num - Une valeur entière.
- ulong - Une valeur entière longue.
- bool - Une valeur booléenne.
- double : valeur double.
- texte : chaîne de n’importe quelle longueur.
Exemple : Pour valider le trafic entrant à l’aide d’un paramètre numérique correspondant à la valeur 1, utilisez l’expression suivante :
http. req.api("petstore.proto"). APIName ("TestPet").NUM("test_num1").eq(1)
Accédez à la valeur des champs répétés
Pour accéder à des objets répétés dans les API, utilisez le second paramètre comme index répétitif. L’accès à l’extérieur du tableau entraîne une valeur indéfinie.
Exemple :
Pour récupérer la cinquième balise dans le terminal « FindPets », utilisez :
http.req.api("petstore.proto", "FindPets').TEXT( "tags", 5 ).contains("mytag")
Pour récupérer la cinquième balise de la chaîne de balises répétées, utilisez :
/v1/pets?tags=1&tags=2&tags=3&tags=4&tags=mytag&tags=6
Accédez aux valeurs des objets imbriqués
Les objets peuvent être imbriqués dans d’autres objets. Le même nom de champ peut apparaître dans les objets imbriqués d’un même document. Toutefois, le nom d’accès complet doit toujours être unique. Pour accéder aux champs imbriqués, concaténez les noms des champs avec un ». « (point) comme séparateur.
Exemple : utilisez kennel.location.state pour récupérer la Californie à partir du JSON suivant.
{ “kennel” : { “location” : { “state” : “California” } } }
Expression
http. req.api("petstore.proto", "TestPet").text( "kennel.location.state" ).contains("California")
Accéder à la valeur à l’aide d’une expression d’objet
L’expression Object() est utilisée lors de l’accès aux sous-zones d’objets répétés. Si deux objets ou plus sont configurés avec des valeurs différentes, vous pouvez créer une expression pour valider l’objet spécifique à une valeur. Par exemple, dans le corps JSON suivant, l’objet « foo » possède deux valeurs, à savoir une et aucune. { “foo” : [ { “bar” : “one” }, { “bar” : “none” } ] }
Pour comparer la valeur à aucune, vous pouvez configurer l’expression comme suit :
HTTP. req.api("schema").object("foo",1).text("bar").eq("none")
Partager
Partager
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.