Resultados de la búsqueda :
×
Cuando un usuario inicia sesión en un sitio Joomla mediante OAuth SSO, el proveedor de identidad envía un código de autorización a través del navegador. La aplicación intercambia ese código por un token de acceso. Esto funciona bien en la mayoría de los casos, pero existe un problema: si alguien logra interceptar el código de autorización antes de que llegue a la aplicación, puede usarlo para obtener un token de acceso.
PKCE (Proof Key for Code Exchange) lo impide. Antes de iniciar sesión, la aplicación genera un secreto aleatorio, envía una versión cifrada al proveedor de identidad y, a continuación, demuestra que posee el original al intercambiar el código por un token. Un código de autorización interceptado es inútil sin esa prueba, ya que solo la aplicación original la tiene.
La extensión miniOrange Joomla OAuth Client admite PKCE de forma nativa. Al activarla, se añade esta capa de seguridad a la configuración de SSO existente sin modificar la forma en que los usuarios inician sesión.
Para habilitar el inicio de sesión único (SSO) de OAuth protegido con PKCE en un sitio web Joomla, necesitará lo siguiente:
La mayoría de los sitios Joomla que utilizan OAuth SSO emplean el flujo de código de autorización predeterminado sin PKCE. Esto funciona bien en muchos casos, pero genera algunos riesgos reales que conviene conocer.
Los códigos de autorización se transmiten a través del navegador como parámetros de URL, lo que significa que pueden quedar registrados en el historial del navegador, los registros del servidor y las cabeceras de referencia. Existe un breve lapso de tiempo en el que quedan expuestos. Para las aplicaciones que no pueden almacenar de forma segura una clave secreta del cliente, como las aplicaciones de una sola página o los flujos de inicio de sesión único (SSO) basados en el navegador, el código de autorización se convierte en la única barrera entre la cuenta de un usuario y un atacante que haya logrado acceder a ella.
OAuth 2.1, que refleja las mejores prácticas de seguridad actuales, hace que el cifrado de clave pública (PKCE) sea obligatorio para todos los flujos de códigos de autorización. Cada vez se espera más que las organizaciones que trabajan para cumplir con estándares como SOC 2 o ISO 27001 implementen esta medida.
Sin PKCE, tampoco existe prueba criptográfica de que el cliente que completa el intercambio de tokens sea el mismo que inició el inicio de sesión. Esta deficiencia dificulta la realización de auditorías de seguridad rigurosas.
Configurar PKCE mediante la extensión del cliente OAuth de miniOrange es muy sencillo. A continuación, se explica cómo se realiza la configuración.
1. Habilitación de PKCE en la extensión: En la configuración del proveedor OAuth dentro de la extensión miniOrange, existe una opción específica para habilitar PKCE. Una vez activada, la extensión se encarga de todo automáticamente: genera un código de verificación aleatorio al inicio de cada inicio de sesión, crea un desafío con hash a partir de él y envía dicho desafío al proveedor de identidad como parte de la solicitud de autorización. Cuando se produce el intercambio de tokens, el verificador original se envía junto con el código de autorización para que el proveedor de identidad pueda confirmar que coinciden.
2. Elección del método de desafío de código: La extensión admite dos métodos: S256 y simple. S256 aplica una función hash SHA-256 al verificador de código antes de enviar el desafío, lo que significa que la clave secreta original nunca se transmite. El método simple envía el verificador directamente como desafío, lo que no ofrece una protección real. Para cualquier sitio Joomla en producción, S256 es la opción correcta, y la mayoría de los proveedores de identidad modernos lo admiten.
3. Actualización de la configuración del proveedor de identidad: En el lado del proveedor de identidad, el registro de la aplicación debe actualizarse para requerir PKCE. Esto generalmente implica marcar la aplicación como cliente público o habilitar la aplicación de PKCE en la configuración de la aplicación. Los pasos exactos varían según el proveedor. Es importante que se requiera PKCE a nivel del proveedor, ya que esto significa que cualquier intercambio de tokens intentado sin un verificador de código válido será rechazado, incluso si se capturó el código de autorización.
4. Prueba del flujo: Un inicio de sesión exitoso con PKCE habilitado se ve idéntico a un inicio de sesión SSO normal desde la perspectiva del usuario. Para confirmar que funciona, verifique que la URL de la solicitud de autorización incluya los parámetros code_challenge y code_challenge_method. Para probar la garantía de seguridad, intente reproducir un código de autorización capturado sin el verificador de código; el proveedor de identidad debería rechazar el intercambio de tokens con un error.
PKCE es una de las mejoras de seguridad más prácticas disponibles para el inicio de sesión único (SSO) de OAuth en Joomla, ya que resuelve un problema real sin generar inconvenientes para los usuarios. La experiencia de inicio de sesión se mantiene intacta, pero el código de autorización pierde su valor para quien lo intercepte. A medida que PKCE se convierte en el estándar para las implementaciones de OAuth, habilitarlo mediante la extensión miniOrange OAuth Client mantiene la configuración de SSO de Joomla alineada con las mejores prácticas actuales y facilita su defensa en una auditoría de seguridad.
Gracias por su respuesta. Nos pondremos en contacto con usted pronto.
Algo salió mal. Por favor envíe su consulta nuevamente
Índice