Cloud-native Gateway se integra con OpenID Connect (OIDC) para proporcionar autenticación y autorización centralizadas en sus servicios internos. Esto elimina las integraciones repetitivas por servicio, habilita el inicio de sesión único (SSO) y ofrece configuraciones flexibles de políticas de seguridad.
Requisitos previos
Debe contar con un servicio de autenticación unificada compatible con el protocolo estándar OIDC.
Contexto
Como punto de control para el acceso externo, una puerta de enlace debe autenticar las solicitudes entrantes para proteger los servicios internos. Por lo general, las empresas mantienen un sistema de autenticación unificado. Cloud-native Gateway se conecta a estos sistemas mediante el protocolo OIDC y proporciona autenticación unificada para todos los servicios conectados, sin necesidad de que cada servicio se integre de forma individual.
Autenticación OIDC
OIDC es una capa de identidad basada en OAuth 2.0. Permite que aplicaciones de terceros se conecten a un proveedor de identidad y obtengan información del usuario de manera segura. OIDC extiende OAuth 2.0 con un ID Token, un JSON Web Token (JWT) que encapsula la información básica de identidad del usuario en un formato autónomo y a prueba de manipulaciones, lo cual facilita su transmisión segura y verificación.
En OIDC se formalizan los siguientes roles:
Cliente: aplicación que proporciona servicios directamente al usuario.
Servidor de autorización: proveedor de OpenID; es decir, un servidor de autorización que emite ID Tokens para la autenticación.
Servidor de negocio: servidor que aloja los recursos o servicios protegidos.
Usuario: propietario del recurso que otorga el acceso.
El flujo de trabajo es el siguiente:
El cliente envía una solicitud de autenticación al servidor de autorización.
El usuario confirma la autorización en la página de autenticación, generalmente al iniciar sesión con nombre de usuario y contraseña.
El servidor de autorización valida la solicitud y devuelve un código de autorización al cliente.
Se redirige al usuario al endpoint de callback del cliente, donde se recibe el código de autorización.
El cliente solicita un token al servidor de autorización y envía el código de autorización, el ID de cliente y el secreto de cliente.
El servidor de autorización valida la solicitud y devuelve un ID Token.
Tras autenticarse correctamente, el cliente recibe el ID Token y puede continuar con solicitudes autenticadas.
El cliente realiza una solicitud al servidor de negocio e incluye el ID Token.
El servidor de negocio valida el ID Token y devuelve una respuesta.
Flujo de autenticación OIDC con Cloud-native Gateway
En el flujo estándar de OIDC, cada servicio de negocio (como un servicio de usuarios o de pedidos) debe implementar su propia lógica de autenticación. La función de autenticación OIDC de Cloud-native Gateway centraliza esta lógica en el nivel de la puerta de enlace, lo que elimina la integración individual por servicio.
El flujo de trabajo es el siguiente:
El cliente envía una solicitud de autenticación a la puerta de enlace.
La puerta de enlace envía una solicitud de autenticación al servidor de autorización.
El servidor de autorización devuelve un código a la puerta de enlace.
La puerta de enlace devuelve el código al cliente.
El cliente envía una solicitud de callback con el código a la puerta de enlace.
La puerta de enlace canjea el código por un token ante el servidor de autorización.
El servidor de autorización devuelve un ID Token a la puerta de enlace.
La puerta de enlace devuelve una respuesta de autenticación exitosa al cliente y establece una cookie.
El cliente inicia una solicitud de negocio que incluye la cookie, y la puerta de enlace verifica el token.
La puerta de enlace reenvía la solicitud de negocio con el ID Token al servicio de negocio.
La respuesta del servidor de negocio se devuelve al cliente a través de la puerta de enlace.
Durante todo este proceso, Cloud-native Gateway valida las solicitudes. Si una solicitud no es válida, la puerta de enlace redirige al usuario a una página de inicio de sesión y gestiona la autenticación con el servidor de autorización como proxy. Este proceso es transparente para los servicios de backend.
Crear una regla de autenticación
Inicie sesión en la consola de MSE.
En el panel de navegación izquierdo, elija Cloud-native Gateway > Gateways. En la barra de navegación superior, seleccione una región.
En la página Gateways, haga clic en el ID de la puerta de enlace.
En el panel de navegación izquierdo, elija Security Management > Global Authentication.
-
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 luego haga clic en OK.
La siguiente tabla describe los parámetros de autenticación OIDC para Cloud-native Gateway.
Parámetro
Descripción
Authentication Name
Nombre personalizado para la regla de autenticación.
Authentication Type
Seleccione OIDC.
Issuer
URI del emisor de su servidor de autorización.
Redirect URL
URL a la que se redirige al usuario tras una autorización exitosa. Esta URL debe coincidir con la registrada en su proveedor de identidad OIDC.
ImportanteLa URL debe tener el formato
http(s)://yourdomain/path. La ruta debe ser/oauth2/callback.Client ID
ID de cliente de su aplicación registrada en el proveedor de identidad.
Client secret
Secreto de cliente de su aplicación registrada en el proveedor de identidad.
Cookie domain
Dominio de la cookie. Tras autenticarse correctamente, la cookie se envía al dominio especificado para mantener el estado de sesión. Por ejemplo, si establece
Cookie-domain=a.example.com, la cookie se envía al dominio a.example.com. Si estableceCookie-domain=.example.com, la cookie se envía a todos los subdominios de example.com.Scope
Alcances de autorización solicitados. Use punto y coma (
;) para separar varios alcances.Grant
Modo de autorización. Los modos compatibles son Whitelist y Blacklist.
Whitelist: las solicitudes que coinciden con los hosts y rutas de la lista blanca omiten la autenticación. Todas las demás solicitudes requieren autenticación.
Blacklist: las solicitudes que coinciden con los hosts y rutas de la lista negra requieren autenticación. Se accede directamente a todas las demás solicitudes.
Haga clic en + Rule condition para configurar el dominio y la ruta de la solicitud.
Domain Name: nombre de dominio solicitado u host.
Path: ruta de API solicitada.
Crear una ruta de autenticación
Después de crear la regla de autenticación, debe crear una ruta relacionada. Para obtener más información, consulte Create a route.
Configure los parámetros de la ruta de la siguiente manera:
-
Domain Name: seleccione el dominio de la Redirect URL que configuró en la regla de autenticación. Si no hay ningún dominio configurado, puede seleccionar *.
ImportanteSi utiliza HTTPS, debe configurar y asociar un dominio.
Path: seleccione Prefix Match e introduzca
/oauth2.Destination Service: seleccione oauth2-proxy.
Consultar detalles de autenticación
Inicie sesión en la consola de MSE.
En el panel de navegación izquierdo, elija Cloud-native Gateway > Gateways. En la barra de navegación superior, seleccione una región.
En la página Gateways, haga clic en el ID de la puerta de enlace.
En el panel de navegación izquierdo, elija Security Management > Global Authentication.
-
En la página Global Authentication, haga clic en el nombre de una regla de autenticación o en Details dentro de la columna Actions para consultar la Authentication Configuration actual y gestionar la Authorization Information.
La página de detalles de autenticación tiene tres secciones: Basic Information muestra el nombre y el origen. Authentication Configuration muestra campos como Issuer, Redirect URL, Client ID, Client secret, Cookie domain y Scope. Authorization Information muestra el modo de autorización, como el modo de lista blanca. Puede hacer clic en Create authorization information para agregar reglas de coincidencia de dominio y ruta de solicitud. Varias condiciones de regla tienen una relación OR.
En la sección Authorization Information, haga clic en Add Authorization Information. 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 los resultados
Regrese a la página Global Authentication. Si la nueva regla de autenticación aparece en la lista, se creó correctamente.
Operaciones relacionadas
También puede realizar las siguientes operaciones para gestionar sus reglas de autenticación:
Habilitar una regla de autenticación: en la página Global Authentication, busque la regla deseada y haga clic en Enable dentro de la columna Actions. Esto activa la regla.
Deshabilitar una regla de autenticación: en la página Global Authentication, busque la regla deseada y haga clic en Close dentro de la columna Actions. Esto desactiva la regla.
Editar una regla de autenticación: en la página Global Authentication, busque la regla deseada y haga clic en Edit dentro de la columna Actions para modificar su configuración.
Eliminar una regla de autenticación: en la página Global Authentication, busque la regla deseada y haga clic en Delete dentro de la columna Actions para eliminarla permanentemente.
Debe deshabilitar una regla de autenticación antes de poder eliminarla.
Temas relacionados
Para otros mecanismos de autenticación, consulte Global Authentication.