Cloud-native API Gateway se integra con el sistema de autenticación de su empresa mediante el protocolo OpenID Connect (OIDC). De esta forma, proporciona autenticación y autorización centralizadas para los servicios internos. Esto elimina las integraciones repetitivas por servicio, habilita el inicio de sesión único (SSO) y permite una configuración flexible de las políticas de seguridad.
Requisitos previos
Debe contar con un servidor de autorización unificado que sea compatible con el protocolo OIDC estándar.
Contexto
Como punto de entrada del acceso externo a los servicios internos, la puerta de enlace de API autentica y autoriza las solicitudes entrantes para proteger los servicios de backend. Cloud-native API Gateway se integra con su sistema de autenticación autogestionado mediante el protocolo OIDC. Así, habilita la autenticación unificada para todos los servicios conectados sin necesidad de integrarlos uno por uno.
Autenticación OIDC
OIDC es un protocolo de autenticación que permite a las aplicaciones de terceros verificar la identidad de los usuarios finales a través de un proveedor de identidades. Está basado en OAuth 2.0 y añade un ID Token: un JSON Web Token (JWT) autónomo y a prueba de manipulaciones. Este token contiene información básica sobre la identidad del usuario y se transmite de forma segura a las aplicaciones de terceros para su verificación.
Un flujo típico de OIDC involucra los cuatro roles siguientes:
client: aplicación que proporciona servicios directamente al usuario final.
authorization server: proveedor de OpenID que emite ID Tokens a las aplicaciones de terceros para la autenticación.
business server: servidor que proporciona los servicios empresariales.
end user: propietario del recurso que otorga acceso a su información.
El flujo de trabajo es el siguiente:
El client envía una solicitud de autenticación al authorization server.
El end user otorga la autorización en la página de autenticación. Por lo general, inicia sesión con un nombre de usuario y una contraseña.
El authorization server valida la solicitud de autenticación y devuelve un código de autorización al client.
El client envía una solicitud a un endpoint de devolución de llamada en el business server e incluye el código de autorización.
El business server solicita un token al authorization server. La solicitud incluye el código de autorización, el ID de cliente y el secreto de cliente.
El authorization server valida la solicitud y devuelve un ID Token.
Una vez completada la autenticación correctamente, el business server devuelve el ID Token al client.
El client realiza una solicitud empresarial que incluye el ID Token.
El business server valida el ID Token y devuelve una respuesta empresarial.
Flujo de autenticación OIDC de la puerta de enlace
En el flujo de OIDC anterior, cada business server (como un servicio de usuarios o de pedidos) debe implementar su propia lógica de autenticación e integrarse con el authorization server. Cloud-native API Gateway centraliza este proceso en la puerta de enlace, lo que elimina el código de autenticación en cada servicio.
El flujo de trabajo es el siguiente:
El client envía una solicitud de autenticación a la puerta de enlace.
La puerta de enlace envía una solicitud de autenticación al authorization server.
El authorization server devuelve un código a la puerta de enlace.
La puerta de enlace devuelve el código al client.
El client envía una solicitud de devolución de llamada con el código a la puerta de enlace.
La puerta de enlace intercambia el código por un token con el authorization server.
El authorization server devuelve un ID Token a la puerta de enlace.
La puerta de enlace devuelve una respuesta de autenticación exitosa al client y establece una cookie.
El client inicia una solicitud empresarial que lleva la cookie, y la puerta de enlace verifica el token.
La puerta de enlace reenvía la solicitud empresarial con el ID Token al servicio empresarial.
La respuesta del business server se devuelve al client a través de la puerta de enlace.
Durante este proceso, Cloud-native API Gateway valida cada solicitud. Las solicitudes no válidas provocan una redirección a la página de inicio de sesión, donde la puerta de enlace actúa como proxy del authorization server para gestionar la autenticación. De este modo, el authorization server resulta transparente para los business servers de backend.
Crear una regla de autenticación y autorización
Inicie sesión en la consola de API Gateway.
En el panel de navegación izquierdo, haga clic en . En la barra de navegación superior, seleccione una región.
En la página Instance, haga clic en el nombre de la instancia de puerta de enlace de destino.
En el panel de navegación izquierdo, elija .
-
En la esquina superior izquierda de la página, haga clic en Create Authentication. Configure los parámetros de autenticación de la puerta de enlace y haga clic en OK.
A continuación se describen los parámetros de la autenticación OIDC.
Parámetro
Descripción
Enable
Especifica si se habilita la autenticación para la instancia de Cloud-native API Gateway.
Authentication Name
Nombre personalizado de la regla de autenticación.
Authentication Type
Seleccione OIDC.
Domain Name
Nombre de dominio al que se aplica la regla de autenticación.
Issuer
URL del emisor del authorization server.
Redirect URL
URL a la que se redirige al end user después de una autorización correcta. Esta URL debe coincidir con la configurada en su proveedor de identidades OIDC.
ImportanteLa URL debe tener el formato
http(s)://yourdomain/pathy la ruta debe ser/oauth2/callback.Client ID
ID de cliente de su aplicación registrada en el proveedor de identidades.
Client secret
Secreto de cliente de su aplicación registrada en el proveedor de identidades.
Cookie domain
Dominio de la cookie de sesión. Una vez autenticado el end user, la cookie se envía a este dominio para mantener la sesión iniciada. Por ejemplo, si establece el dominio de la cookie en
a.example.com, la cookie se enviará al dominioa.example.com. Si lo establece en.example.com, la cookie se enviará a todos los subdominios deexample.com.Cookie secret
Secreto utilizado para firmar digitalmente la cookie de sesión y evitar que se manipule.
Scope
Especifique los alcances de autorización. Puede agregar varios alcances separados por punto y coma (;).
Authorization
Seleccione el modo de autorización. Puede elegir entre Whitelist Mode o Blacklist Mode.
Lista blanca: las solicitudes dirigidas a los hosts y rutas incluidos en la lista blanca pueden omitir la autenticación. Todas las demás la requieren.
Lista negra: solo las solicitudes dirigidas a los hosts y rutas de la lista negra requieren autenticación. El resto puede pasar sin ella.
Haga clic en Rule Condition para establecer los nombres de dominio y las rutas de la solicitud.
Domain Name: host de la solicitud.
Path: ruta de la API solicitada.
Detalles de autenticación y autorización
Inicie sesión en la consola de API Gateway.
En el panel de navegación izquierdo, haga clic en . En la barra de navegación superior, seleccione una región.
En la página Instance, haga clic en el nombre de la instancia de puerta de enlace de destino.
En el panel de navegación izquierdo, elija .
-
En la página Global Authentication, haga clic en el nombre de una regla de autenticación o en Description dentro de la columna Actions. Allí podrá consultar la Authentication Configuration y la Authorization Information actuales.
La página de detalles contiene tres secciones. Basic Information muestra el nombre y el origen. Authentication Configuration presenta campos como issuer, client ID, Cookie domain, redirect URL, client secret y scope. Authorization Information indica el modo de autorización actual (lista blanca o lista negra). Varias condiciones de regla tienen una relación OR, mientras que varios elementos de coincidencia dentro de una misma condición de regla mantienen una relación AND.
En la sección Authorization Information, puede hacer clic en Create Authorization. En el cuadro de diálogo que aparece, introduzca un Request Domain Name y una Request Path, seleccione un Match Mode y luego haga clic en OK para agregar una nueva regla de autorización.
Comprobar el resultado
Regrese a la página Global Authentication. Si la regla que creó aparece en la lista, significa que se creó correctamente.
Operaciones relacionadas
También puede gestionar las reglas de autenticación de la puerta de enlace de las siguientes maneras:
Habilitar una regla de autenticación: en la página Global Authentication, busque la regla de autenticación de destino y haga clic en Enable dentro de la columna Actions.
Deshabilitar una regla de autenticación: en la página Global Authentication, busque la regla de autenticación de destino y haga clic en Close dentro de la columna Actions.
Editar una regla de autenticación: en la página Global Authentication, busque la regla de autenticación de destino y haga clic en Edit dentro de la columna Actions.
Eliminar una regla de autenticación: en la página Global Authentication, busque la regla de autenticación de destino y haga clic en Delete dentro de la columna Actions.
Debe deshabilitar una regla de autenticación antes de eliminarla.
Documentación relacionada
Para conocer otros mecanismos de autenticación, consulte Global Authentication.