Merci pour vos commentaires

Ce article a été traduit automatiquement. (Clause de non responsabilité)

Utiliser les API pour gérer la sécurité des API

Vous pouvez accéder aux API pour créer, configurer et déployer une sécurité d’API.

Remarque :

pour comprendre comment utiliser les API de sécurité des API pour configurer la fonctionnalité, consultez la documentation de l’API Nitro.

Étapes URL de la ressource
  1 Création d’une définition d’API https://adm.cloud.com/{customerid}/apisec/nitro/v1/config/apidefs
  2 Ajouter un proxy d’API https://adm.cloud.com/apiproxies
  3 Déployer une instance d’API à l’aide du proxy d’API https://adm.cloud.com/apiproxies/{customerid}/deployments
  4 Ajouter des stratégies d’API https://adm.cloud.com/{customerid}/apisec/nitro/v1/config/policies/{id}

Chaque stratégie d’API possède un objet différent config_spec. Il s’agit d’un objet opaque qui contient un dictionnaire JSON permettant de configurer un policytype avec des valeurs spécifiques.

Dans cet objet, vous pouvez sélectionner une ressource d’API et ses méthodes à l’aide des options suivantes :

  • api-resource-paths - Spécifiez les chemins de ressources d’API et les méthodes qui sont définis dans une définition d’API.

    Exemple :

    { "endpoints": ["/pet", "/pet/findByStatus", "/pet/findByTags"], "get": true, "post": false, "put": false, "delete": false }
  • custom-rules - Spécifiez les chemins de ressources d’API personnalisés et les méthodes qui peuvent ne pas exister dans une définition d’API.

    Exemple :

    { "endpoints": ["/pet/categories", "/pet/findByName"], "get": true, "post": false, "put": false, "delete": false }

Avec cette configuration, la stratégie filtre les demandes de trafic entrant qui correspondent aux chemins de ressources d’API spécifiés.

Pour plus d’informations sur config_spec de chaque type de stratégie, consultez des exemples d’API pour les types de stratégie.

Exemples d’API pour les types de stratégies

Cette section décrit les types de stratégies d’API pris en charge et leur configuration :

Limite de taux

Voici un exemple de configuration pour le type de stratégie Ratelimit. Spécifiez la configuration suivante dans l’objet config_spec :

{ "policytype": "Ratelimit", "config_spec": { "api-resource-paths": { "endpoints": ["/pet", "/pet/findByStatus", "/pet/findByTags"], "get": true, "post": false, "put": false, "delete": false }, "custom-rules": {}, "threshold": "10", "timeslice": "20000", "limittype": "BURSTY", "api-respondertype": "DROP", "header_name": "x-api-key", "per_client_ip": true }, "order_index": 1, "policy_name": "ratelimit_policy" }

Pour plus d’informations sur chaque attribut, consultez la section Stratégie de limite de débit.

OAuth

Voici un exemple de configuration d’API pour le type de stratégie JWT Auth validation. Spécifiez la configuration suivante dans l’objet config_spec :

{ "policytype": "JWT Auth Validation", "config_spec": { "api-resource-paths": { "endpoints": ["/pet", "/pet/findByStatus", "/pet/findByTags"], "get": true, "post": true, "put": false, "delete": false }, "custom-rules": {}, "jwks-uri": "https://uri.petstore.com", "issuer": "https://issuer.petstore.com", "audience": "petstore", "introspect-uri": "https://introspect.uri.com", "clientid": "client", "clientsecret": "clientsecret", "claims-to-save": ["scope", "scope2"], "allowed-algorithms": { "hs256": true, "rs256": true, "rs512": true } }, "order_index": 2, "policy_name": "Jwt_auth_policy" }

Pour plus d’informations sur chaque attribut, consultez la stratégie OAuth

Authentification basique

Voici un exemple de configuration d’API pour le type de stratégie BasicAuth :

{ "config_spec": { "api-resource-paths": { "delete": false, "endpoints": ["/pet", "/pet/findByStatus", "/pet/findByTags"], "get": true, "post": true, "put": false }, "custom-rules": {} }, "order_index": 3, "policy_name": "Auth_BaSIC", "policytype": "BasicAuth" }

Pour plus d’informations sur chaque attribut, consultez la section Stratégie d’authentification de base.

Aucune authentification

Voici un exemple de configuration d’API pour le type de stratégie NoAuth :

{ "config_spec": { "api-resource-paths": { "delete": false, "endpoints": ["/pet", "/pet/findByStatus", "/pet/findByTags"], "get": true, "post": false, "put": false }, "custom-rules": {} }, "order_index": 4, "policy_name": "no_auth_policy", "policytype": "NoAuth" }

Bot

Voici un exemple de configuration d’API pour le type de stratégie Bot :

{ "config_spec": { "api-resource-paths": { "delete": false, "endpoints": ["/pet", "/pet/findByStatus", "/pet/findByTags"], "get": false, "post": false, "put": false }, "bot-prof-name": "apisec_test_profile", "custom-rules": {} }, "order_index": 5, "policy_name": "bot_policy", "policytype": "Bot" }

Pour plus d’informations sur chaque attribut, consultez la section Stratégie relative aux robots.

WAF

Voici un exemple de configuration d’API pour le type de stratégie WAF :

{ "config_spec": { "api-resource-paths": { "delete": false, "endpoints": ["/pet", "/pet/findByStatus", "/pet/findByTags"], "get": false, "post": false, "put": false }, "waf-prof-name": "apisec_waf_profile", "custom-rules": {} }, "order_index": 6, "policy_name": "waf_policy", "policytype": "WAF" }

Pour plus d’informations sur chaque attribut, consultez la stratégie WAF.

Réécriture de l’en-tête

Voici un exemple de configuration d’API pour le type de stratégie de réécriture d’en-tête. Spécifiez cette configuration dans l’objet config_spec :

{ "policytype": "Header Rewrite", "config_spec": { "api-resource-paths": { "endpoints": ["/pet", "/pet/findByStatus", "/pet/findByTags"], "get": true, "post": true, "put": false, "delete": false }, "custom-rules": {}, "rewrite-policy-header-field-name": "org", "rewrite-policy-header-field-val": "Citrix", "rewrite-policy-header-field-new-val": "Citrite" }, "order_index": 7, "policy_name": "header_rewrite_pol" }

Pour plus d’informations sur chaque attribut, consultez la stratégie de réécriture des en-têtes.

Réécriture du chemin URI

Voici un exemple de configuration d’API pour le type de stratégie de réécriture des chemins d’URI :

{ "config_spec": { "api-resource-paths": { "endpoints": ["/store/order", "/store/inventory"], "delete": false, "get": true, "post": true, "patch": false, "put": false }, "custom-rules": { "delete": false, "endpoints": [], "get": false, "post": false, "patch": false, "put": true }, "path-rewrite-params": [ { "insert-segment-position": "beginning", "new-path-value": "v3", "old-path-value": "v2", "action-type": "replace path segment" }, { "insert-segment-position": "beginning", "new-path-value": "begin", "action-type": "insert path segment" }, { "insert-segment-position": "end", "new-path-value": "end", "action-type": "insert path segment" }, { "insert-segment-position": "before", "new-path-value": "before", "old-path-value": "store", "action-type": "insert path segment" }, { "insert-segment-position": "after", "new-path-value": "after", "old-path-value": "store", "action-type": "insert path segment" } ] }, "order_index": 24, "policy_name": "eats_uripathrewrite", "policytype": "URI Path Rewrite” }

Pour plus d’informations sur chaque attribut, consultez la stratégie de réécriture des chemins d’URI.

Authorization

Voici un exemple de configuration d’API pour le type de stratégie Authorization. Spécifiez la configuration suivante dans l’objet config_spec :

{ "policytype": "Authorization", "config_spec": { "api-resource-paths": { "endpoints": ["/pet", "/pet/findByStatus", "/pet/findByTags"], "get": true, "post": true, "put": false, "delete": false }, "custom-rules": {}, "claims": [{ "name": "scope", "values": ["value1", "value2"] }] }, "order_index": 8, "policy_name": "authorization" }

Pour plus d’informations sur chaque attribut, consultez la section Stratégie d’autorisation.

Deny

Voici un exemple de configuration d’API pour le type de stratégie Deny. Spécifiez la configuration suivante dans l’objet config_spec :

{ "policytype": "Deny", "config_spec": { "api-resource-paths": { "endpoints": ["/pet", "/pet/findByStatus", "/pet/findByTags"], "get": true, "post": true, "put": false, "delete": false }, "custom-rules": {}, "api-denytype": "RESPONDWITH" }, "order_index": 9, "policy_name": "deny_policy" }

Dans api-denytype, vous pouvez spécifier l’une des valeurs suivantes :

  • RESPONDWITH
  • RESET

Pour plus d’informations sur chaque attribut, consultez la section Règle de refus.

La version officielle de ce document est en anglais. Certains contenus de la documentation Cloud Software Group ont été traduits de façon automatique à des fins pratiques uniquement. Cloud Software Group n'exerce aucun contrôle sur le contenu traduit de façon automatique, qui peut contenir des erreurs, des imprécisions ou un langage inapproprié. Aucune garantie, explicite ou implicite, n'est fournie quant à l'exactitude, la fiabilité, la pertinence ou la justesse de toute traduction effectuée depuis l'anglais d'origine vers une autre langue, ou quant à la conformité de votre produit ou service Cloud Software Group à tout contenu traduit de façon automatique, et toute garantie fournie en vertu du contrat de licence de l'utilisateur final ou des conditions d'utilisation des services applicables, ou de tout autre accord avec Cloud Software Group, quant à la conformité du produit ou service à toute documentation ne s'applique pas dans la mesure où cette documentation a été traduite de façon automatique. Cloud Software Group ne pourra être tenu responsable de tout dommage ou problème dû à l'utilisation de contenu traduit de façon automatique.
Utiliser les API pour gérer la sécurité des API