Usar las API para administrar la seguridad de las API

Last published : Oct 02, 2026
Puede acceder a las API para crear, configurar e implementar una seguridad de API.
Nota:
Para comprender cómo usar las API de seguridad de API para configurar la función, consulte la documentación de la API de Nitro.
Pasos URL del recurso
1 Crear una definición de API https://adm.cloud.com/{customerid}/apisec/nitro/v1/config/apidefs
2 Agregar un proxy de API https://adm.cloud.com/apiproxies
3 Implementar una instancia de API mediante el proxy de API https://adm.cloud.com/apiproxies/{customerid}/deployments
4 Añadir políticas de API https://adm.cloud.com/{customerid}/apisec/nitro/v1/config/policies/{id}
Cada política de API tiene un objeto config_spec diferente. Es un objeto opaco que contiene un diccionario JSON para configurar un policytype con valores específicos.
En este objeto, puede seleccionar un recurso de API y sus métodos utilizando las siguientes opciones:
  • api-resource-paths - Especifique las rutas y métodos de recursos de API que se definen en una definición de API.
    Ejemplo:
    {
    "endpoints": ["/pet", "/pet/findByStatus", "/pet/findByTags"],
       "get": true,
       "post": false,
       "put": false,
       "delete": false
    }
  • custom-rules - Especifique las rutas y métodos de recursos de API personalizados que podrían no existir en una definición de API.
    Ejemplo:
    {
    "endpoints": ["/pet/categories", "/pet/findByName"],
       "get": true,
       "post": false,
       "put": false,
       "delete": false
    }
Con esta configuración, la política filtra las solicitudes de tráfico entrantes que coinciden con las rutas de recursos de API especificadas.
Para obtener información sobre config_spec de cada tipo de política, consulte Ejemplos de API para tipos de políticas.

Ejemplos de API para tipos de políticas

Esta sección describe los tipos de políticas de API admitidos y su configuración:

Límite de frecuencia

A continuación se muestra una configuración de ejemplo para el tipo de política Ratelimit. Especifique la siguiente configuración en el objeto 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"
}
Para obtener más información sobre cada atributo, consulte Política de límite de frecuencia.

OAuth

A continuación se muestra una configuración de API de ejemplo para el tipo de política JWT Auth validation. Especifique la siguiente configuración en el objeto 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"
}
Para obtener más información sobre cada atributo, consulte Política de OAuth

Autenticación básica

La siguiente es una configuración de API de ejemplo para el tipo de política 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"
}
Para obtener más información sobre cada atributo, consulte Política de autenticación básica.

Sin autenticación

La siguiente es una configuración de API de ejemplo para el tipo de política 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

La siguiente es una configuración de API de ejemplo para el tipo de política 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"
}
Para obtener más información sobre cada atributo, consulte Política de bot.

WAF

La siguiente es una configuración de API de ejemplo para el tipo de política 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"
}
Para obtener más información sobre cada atributo, consulte Política WAF.

Reescritura de cabecera

La siguiente es una configuración de API de ejemplo para el tipo de política de reescritura de cabecera; especifique esta configuración en el objeto 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"
}
Para obtener más información sobre cada atributo, consulte Política de reescritura de cabecera.

Reescritura de ruta URI

La siguiente es una configuración de API de ejemplo para el tipo de política de reescritura de ruta 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”
}
Para obtener más información sobre cada atributo, consulte política de reescritura de ruta de URI.

Autorización

A continuación se muestra un ejemplo de configuración de API para el tipo de política Authorization. Especifique la siguiente configuración en el objeto 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"
}
Para obtener más información sobre cada atributo, consulte política de autorización.

Denegar

A continuación se muestra un ejemplo de configuración de API para el tipo de política Deny. Especifique la siguiente configuración en el objeto 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"
}
En api-denytype, puede especificar uno de los siguientes valores:
  • RESPONDWITH
  • RESET
Para obtener más información sobre cada atributo, consulte regla de denegación.