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

Dernière publication : Oct 02, 2026
Vous pouvez accéder aux API pour créer, configurer et déployer une sécurité des 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éer 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 config_spec différent. C'est un objet opaque qui contient un dictionnaire JSON pour configurer un policytype avec des valeurs spécifiques.
Dans cet objet, vous pouvez sélectionner une ressource API et ses méthodes à l'aide des options suivantes :
  • api-resource-paths - Spécifiez les chemins et méthodes de ressources API 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 et méthodes de ressources API personnalisés qui pourraient 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 requêtes de trafic entrantes qui correspondent aux chemins de ressources API spécifiés.
Pour plus d'informations sur config_spec de chaque type de stratégie, consultez Exemples d'API pour les types de stratégies.

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 :

Limitation de débit

Voici un exemple de configuration pour le type de politique 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 Politique de limitation de débit.

OAuth

Voici un exemple de configuration d'API pour le type de politique 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 Politique OAuth

Authentification de base

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 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 Stratégie Bot.

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 Stratégie WAF.

Réécriture d'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 Stratégie de réécriture d'en-tête.

Réécriture du chemin URI

Voici un exemple de configuration d'API pour le type de stratégie de réécriture du chemin 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 politique de réécriture de chemin d'URI.

Autorisation

Voici un exemple de configuration d'API pour le type de politique 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 politique d'autorisation.

Refuser

Voici un exemple de configuration d'API pour le type de politique 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 règle de refus.