Note:
- Este tutorial requiere acceso a Oracle Cloud. Para registrarse en una cuenta gratuita, consulte Introducción a la capa gratuita de Oracle Cloud Infrastructure.
- Utiliza valores de ejemplo para credenciales, arrendamiento y compartimentos de Oracle Cloud Infrastructure. Al completar el laboratorio, sustituya estos valores por otros específicos de su entorno en la nube.
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
- Integre OCI API Gateway y Microsoft Entra ID mediante OAuth y OpenID Connect (OIDC). Veremos cómo podemos utilizar el token de ID de Microsoft Entra para autenticarnos con OCI API Gateway de forma segura.
Requisitos
-
Acceso a los arrendamientos de OCI y Microsoft Entra ID.
-
Un token web JSON (JWT) de Microsoft Entra ID, este JWT se puede recuperar mediante Postman, curl o cualquier otro cliente de API.
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:
-
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.
-
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).
-
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.
-
Haga clic en Roles de aplicación para agregar un rol de aplicación y eso es todo para la primera aplicación.
-
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.
-
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).
-
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.
-
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.
Nota: Anote el secreto copiando el campo de valor.
El secreto se combinará con el ID de aplicación (cliente) de arriba.
-
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. -
Seleccione Permiso de aplicación y el permiso expuesto y, a continuación, haga clic en Agregar permisos.
-
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.
-
En Puntos finales, tomaremos la conocida URL de punto final OpenID que contiene el URI de JWKS remoto.
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:
- Emisor de JWT: se puede obtener del campo token -
iss
en el token. - Públicos permitidos de JWT: también se obtiene del campo token -
aud
del token. - URI de JWKS remoto: está disponible en el documento OpenID Connect Metadata. Este es el URI de JWKS remoto:
https://login.microsoftonline.com/{tenant-id}/discovery/v2.0/keys
.
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
.
Ahora, podemos decodificar el token de JWT para obtener algunos valores como el emisor permitido de JWT y el público permitido de JWT.
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
-
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
.
- Tipo de autenticación:
-
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ónaud
obtenido en la tarea 1. -
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.
-
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.
-
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.
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.
El despliegue de OCI API Gateway ahora está protegido con el ID de Microsoft Entra.
Enlaces relacionados
Agradecimientos
- Autor: Aqib Javid Bhat (ingeniero sénior en la nube)
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.
Use Microsoft Entra ID to Secure OCI API Gateway Using OAuth and OpenID Connect
F94677-01
March 2024