Gracias por los comentarios

Este artículo ha sido traducido automáticamente. (Aviso legal)

Utilice las API para gestionar la seguridad de las API

Puede acceder a las API para crear, configurar e implementar una seguridad de API.

Nota:

Para saber cómo usar las API de seguridad de las API para configurar la función, consulta 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 la API https://adm.cloud.com/apiproxies/{customerid}/deployments
  4 Agregar directivas de API https://adm.cloud.com/{customerid}/apisec/nitro/v1/config/policies/{id}

Cada directiva 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 mediante las siguientes opciones:

  • api-resource-paths - Especifique las rutas y los métodos de los recursos de la 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 los métodos de los recursos de la API personalizados que pueden 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 directiva filtra las solicitudes de tráfico entrantes que coinciden con las rutas de recursos de API especificadas.

Para obtener información sobre cada tipo de directiva config_spec, consulte los ejemplos de API para los tipos de directivas.

Ejemplos de API para tipos de directivas

En esta sección se describen los tipos de directivas de API compatibles y su configuración:

Límite de tarifa

A continuación se muestra un ejemplo de configuración para el tipo de directiva 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 Directiva de límites de tarifas.

OAuth

A continuación se muestra un ejemplo de configuración de API para el tipo de directiva 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, consulta la directiva de OAuth

Autenticación

A continuación se muestra un ejemplo de configuración de API para el tipo de directiva 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 Directiva de autenticación básica.

Sin autenticación

A continuación se muestra un ejemplo de configuración de API para el tipo de directiva 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

A continuación se muestra un ejemplo de configuración de API para el tipo de directiva 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 Directiva de bots.

WAF

A continuación se muestra un ejemplo de configuración de API para el tipo de directiva 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 la directiva de WAF.

Reescritura de encabezado

A continuación se muestra un ejemplo de configuración de API para el tipo de directiva de reescritura de encabezados. 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 Directiva de reescritura de encabezados.

Reescritura de ruta de URI

A continuación se muestra un ejemplo de configuración de API para el tipo de directiva de reescritura de rutas de 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 la directiva de reescritura de rutas de URI.

Autorización

A continuación se muestra un ejemplo de configuración de API para el tipo de directiva 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 Directiva de autorización.

Negar

A continuación se muestra un ejemplo de configuración de API para el tipo de directiva 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.

La versión oficial de este contenido está en inglés. Para mayor comodidad, parte del contenido de la documentación de Cloud Software Group solo tiene traducción automática. Cloud Software Group no puede controlar el contenido con traducción automática, que puede contener errores, imprecisiones o un lenguaje inadecuado. No se ofrece ninguna garantía, ni implícita ni explícita, en cuanto a la exactitud, la fiabilidad, la idoneidad o la precisión de las traducciones realizadas del original en inglés a cualquier otro idioma, o que su producto o servicio de Cloud Software Group se ajusten a cualquier contenido con traducción automática, y cualquier garantía provista bajo el contrato de licencia del usuario final o las condiciones de servicio, o cualquier otro contrato con Cloud Software Group, de que el producto o el servicio se ajusten a la documentación no se aplicará en cuanto dicha documentación se ha traducido automáticamente. Cloud Software Group no se hace responsable de los daños o los problemas que puedan surgir del uso del contenido traducido automáticamente.
Utilice las API para gestionar la seguridad de las API