Transferencia de tokens a funciones de autorizador para agregar autenticación y autorización a despliegues de API

Descubra cómo utilizar funciones de autorizador de un solo argumento y tokens de acceso para agregar funciones de autenticación y autorización a gateways de API con el servicio de gateway de API.

Puede agregar la funcionalidad de autenticación y autorización a un gateway de API haciendo que el gateway de API transfiera un token de acceso de varios argumentos o de un solo argumento incluido en una solicitud a una función de autorizador desplegada en OCI Functions para su validación (como se describe en este tema). También puede hacer que el gateway de API valide los tokens incluidos en una solicitud (como se describe en Validación de tokens para agregar autenticación y autorización a despliegues de API).

Puede agregar la funcionalidad de autenticación y autorización a los gateways de API escribiendo una función de autorizador que:

  • Procese atributos de solicitud para verificar la identidad de un cliente de API con un proveedor de identidad.
  • Determina las operaciones que puede realizar el cliente de API.
  • Devuelve las operaciones que puede realizar el cliente de API como una lista de "ámbitos de acceso" (un "ámbito de acceso" es una cadena arbitraria utilizada para determinar el acceso).
  • Opcionalmente, devuelve un par clave-valor para que lo utilice el despliegue de API. Por ejemplo, como una variable de contexto para su uso en una definición de backend HTTP (consulte Agregación de variables de contexto a políticas y definiciones de backend HTTP).

En función de la funcionalidad que necesite, puede escribir:

  • (Recomendado) Función de autorizador de varios argumentos que acepta un token de acceso de varios argumentos definido por el usuario que comprende uno o más elementos de una solicitud (consulte Creación de una función de autorizador de varios argumentos (recomendado)). Tenga en cuenta que las funciones de autorizador de varios argumentos pueden aceptar tokens de acceso único incluidos en una cabecera de solicitud o un parámetro de consulta.
  • Una función de autorizador de un argumento que acepta un token de acceso de un argumento que comprende un valor único contenido en una cabecera de solicitud o un parámetro de consulta en una solicitud (consulte Creación de una función de autorizador de un argumento).

El uso de una función de autorizador de varios argumentos (en lugar de un solo argumento) permite a un gateway de API realizar una autenticación basada en solicitudes más detallada. Una función de autorizador de varios argumentos puede consultar servicios de decisión y agentes de política con atributos del token de acceso y con otros elementos de solicitud como parámetros de consulta, nombre de host y subdominio.

Nota

Oracle recomienda el uso de funciones de autorizador de varios argumentos en lugar de funciones de autorizador de un solo argumento debido a su versatilidad adicional. Las funciones de autorizador de argumentos únicos se proporcionaron en versiones anteriores y siguen siendo compatibles. Sin embargo, dado que las funciones de autorizador de varios argumentos también pueden aceptar tokens de acceso de un solo argumento incluidos en las cabeceras de solicitud y el parámetro de consulta, no hay razón para crear nuevas funciones de autorizador de un solo argumento. Además, se prevé que las funciones de autorizador de argumentos únicos queden en desuso en futuras versiones.

Una vez escrita la función de autorizador, puede desplegarla en OCI Functions (consulte Despliegue de una función de autorizador).

Para ver un Tutorial de desarrollador relacionado que contenga una función de autorizador de un solo argumento de ejemplo, consulte la sección sobre funciones: validar una clave de API con API Gateway.

Tras desplegar la función de autorizador, puede activar la autenticación y autorización para un despliegue de API, mediante la inclusión de dos tipos diferentes de política de solicitud en la especificación de despliegue de API:

  • Una política de solicitud de autenticación para todo el despliegue de API en la que se especifica:
    • El OCID de la función de autorizador que desplegó en OCI Functions y que realizará la autenticación y autorización.
    • Los atributos de solicitud que se transferirán a la función de autorizador.
    • Si un cliente de API no autenticado puede acceder a rutas en el despliegue de API.
  • Una política de solicitud de autorización para cada ruta que especifica las operaciones que puede realizar un cliente de API, según los ámbitos de acceso del cliente de API devueltos por la función de autorizador.

Puede agregar políticas de solicitud de autorización y autenticación a una especificación de despliegue de API mediante las siguientes opciones:

  • Uso de la Consola.
  • Edición de un archivo JSON.
Consejo

Para ayudar a solucionar problemas con la función de autorizador, considere agregar un log de ejecución al despliegue de API, con su nivel de log definido en Info (consulte Agregación de registro a despliegues de API).

Para ver detalles en los archivos log relacionados con autenticación y autorización, busque customAuth.