Note:

Uso de Microsoft Entra ID para proteger OCI API Gateway mediante OAuth y OpenID Connect

Introducción

Oracle Cloud Infrastructure (OCI) API Gateway es un servicio totalmente gestionado sin servidor en OCI que se puede utilizar para proteger puntos finales de API y aplicaciones web. Proporciona muchas funcionalidades de seguridad, como limitación de frecuencia, aplicación de autorización, enrutamiento dinámico, aplicación de SSL, etc. Hemos visto muchas solicitudes procedentes de nuestros clientes que se preguntan cómo se pueden utilizar los tokens OAuth de Microsoft Entra ID para proteger las API que se ejecutan detrás de OCI API Gateway o cómo podemos aprovechar los tokens de Microsoft Entra ID para autenticarnos en OCI API Gateway. Para obtener más información sobre la autenticación del gateway de API de OCI, consulte Validación de tokens para agregar autenticación y autorización a despliegues de API.

Objetivos

Requisitos

Tarea 1: Configuración del ID de Microsoft Entra como proveedor de identidad OAuth (IdP)

En el lado de Microsoft Entra ID, necesitamos configurar dos aplicaciones cliente en Microsoft Entra ID: una que se utilizará para autenticarse en Microsoft Entra ID, otra aplicación cliente Se utilizará para exponer una API en Microsoft Entra ID y recuperaremos un token para esta API expuesta utilizando el ID de cliente, secreto de la primera aplicación a través de Postman. Examinaremos este token y utilizaremos el público (aud) y los campos de emisor que se van a importar en la configuración de OCI API Gateway.

Para crear y configurar las dos aplicaciones cliente en Microsoft Entra ID, siga estos pasos:

  1. Para crear la primera aplicación, abra el portal de Microsoft Entra ID, haga clic en Registros de aplicación y Nuevo registro para registrar una nueva aplicación.

  2. Introduzca la siguiente información y haga clic en Registrar:

    • Nombre: introduzca el nombre de la aplicación.
    • Tipos de cuenta soportados: seleccione Cuentas solo en este directorio organizativo (solo directorio por defecto: inquilino único).

    Imagen 1

  3. Haga clic en Exponer una API para exponerla a las aplicaciones cliente agregando el URI de ID de aplicación y haga clic en Agregar un ámbito para agregar el ámbito. Para este tutorial, hemos proporcionado valores de prueba como se muestra en las siguientes imágenes para exponer una API y agregar un ámbito.

    Al registrar la API web y exponerla a través de ámbitos, asignar un rol de aplicación, puede introducir acceso basado en permisos a sus recursos a usuarios autorizados y aplicaciones cliente que acceden a su API.

    Nota: Anote el URI de ID de aplicación, que se utilizará más adelante al obtener un token del ID de Microsoft Entra.

    Imagen 2

    Imagen 3

  4. Haga clic en Roles de aplicación para agregar un rol de aplicación y eso es todo para la primera aplicación.

    Imagen 4

  5. Para crear la segunda aplicación, abra el portal de Microsoft Entra ID, haga clic en Registros de aplicación y Nuevo registro para registrar una nueva aplicación.

  6. Introduzca la siguiente información y haga clic en Registrar:

    • Nombre: introduzca el nombre de la aplicación.
    • Tipos de cuenta soportados: seleccione Cuentas solo en este directorio organizativo (solo directorio por defecto: inquilino único).

    Imagen 6

  7. Anote el ID de aplicación (cliente), ya que lo utilizaremos como credencial en la API de generación de token para obtener un token para la primera aplicación cliente expuesta como API.

    Imagen 5

  8. Haga clic en Certificados y secretos, Nuevo secreto de cliente, introduzca la siguiente información y, a continuación, haga clic en Agregar.

    • Descripción: introduzca una descripción de secreto breve.
    • Caduca: seleccione la caducidad. Por defecto, la caducidad del secreto está definida en seis meses.

    Imagen 7

    Nota: Anote el secreto copiando el campo de valor.

    El secreto se combinará con el ID de aplicación (cliente) de arriba.

    Imagen 8

  9. Haga clic en Permisos de API y en Agregar permiso para Api_App. En la sección Seleccionar una API, seleccione API que utiliza mi organización y seleccione la API que se ha expuesto al configurar la primera aplicación.

    Imagen 9

    Imagen 10

  10. Seleccione Permiso de aplicación y el permiso expuesto y, a continuación, haga clic en Agregar permisos.

    Imagen 11

    Imagen 12

  11. Haga clic en Visión general, Puntos finales y copie la URL del punto final del token OAuth 2.0 (v1), que se utilizará para la emisión de tokens JWT.

    Imagen 13

  12. En Puntos finales, tomaremos la conocida URL de punto final OpenID que contiene el URI de JWKS remoto.

    Imagen 14

Hemos terminado con la parte de Microsoft Entra ID y ahora avanzamos hacia la configuración del gateway de API de OCI. Sin embargo, antes de configurar el gateway de API en OCI, recopilaremos los detalles necesarios de JWT y openid-configuration de Microsoft Entra ID mediante Postman. Tendremos que recopilar los siguientes detalles:

Obtenga un token de acceso de Microsoft Entra ID mediante Postman. Tenga en cuenta el valor de ámbito, debe ser el URI de ID de aplicación creado en la sección Exponer una API de Api_App y agregue /.default al final, como se muestra en la siguiente imagen.

Utilice Postman para recuperar el token de JWT del ID de Microsoft Entra. Introduzca la URL de API de token https://login.microsoftonline.com/{tenant-id}/oauth2/token, al sustituir {tenant-id} por su ID de inquilino de Azure. Envíe una solicitud y copie el valor access_token.

Imagen 15

Ahora, podemos decodificar el token de JWT para obtener algunos valores como el emisor permitido de JWT y el público permitido de JWT.

Imagen 16

Utilizaremos el token web JSON (JWT) emitido por Microsoft Entra ID para la respuesta de stock configurada en OCI API Gateway.

Tarea 2: Configuración de un gateway de API de OCI

  1. Vaya a OCI API Gateway y, en la sección Autenticación, seleccione Autenticación única e introduzca la siguiente información.

    • Tipo de autenticación: OAuth 2.0/ OpenID Connect.
    • Ubicación del token: Header.
    • Nombre de cabecera de token de JWT: Authorization.
    • Esquema de autenticación: Bearer.

    Imagen 17

  2. En la sección Validación de JWT adicional, defina los emisores y públicos permitidos. Dado que hemos utilizado la API de token v1, los emisores permitidos se deben definir en https://sts.windows.net/{tenant-id}/. Sustituya {tenant-id} por su ID de inquilino de Azure. Los públicos permitidos deben contener el valor de reclamación aud obtenido en la tarea 1.

    Imagen 18

  3. En la sección Tipo de validación, introduzca el URI de JWKS que ha obtenido del punto final conocido de Microsoft Entra ID OpenID.

    Imagen 19

  4. Para crear una ruta, introduzca la siguiente información y haga clic en Siguiente.

    • Ruta: defina una ruta.
    • Métodos: seleccione un método.
    • Seleccione Agregar un único backend.
    • Tipo de backend: seleccione Respuesta de stock.
    • Código de estado: introduzca el código de estado.
    • Cuerpo: defina un cuerpo simple.

    Nota: Por motivos de simplicidad, estamos exponiendo una respuesta de stock como tipo de backend para API Gateway. Normalmente se trata de una API protegida mediante API Gateway, pero la configuración de la autenticación OIDC de Microsoft Entra ID es similar.

    Imagen 20

  5. En la sección Revisar, revise el despliegue y haga clic en Crear. Espere a que el despliegue tenga el estado Active y copie la URL de punto final.

    Imagen 21

Utilice Postman para probar el punto final de API seguro. Introduzca el punto final y sufíjalo con la ruta de acceso. Agregue la cabecera Autorización, utilice el esquema Portador y pegue el token de JWT obtenido del ID de Microsoft Entra.

Imagen 22

El despliegue de OCI API Gateway ahora está protegido con el ID de Microsoft Entra.

Agradecimientos

Más recursos de aprendizaje

Explore otros laboratorios en docs.oracle.com/learn o acceda a más contenido de aprendizaje gratuito en el canal YouTube de Oracle Learning. Además, visite education.oracle.com/learning-explorer para convertirse en Oracle Learning Explorer.

Para obtener documentación sobre el producto, visite Oracle Help Center.