OAuth2
La autenticación OAuth2 se configura en config/authentication.yaml. Chamilo incluye soporte integrado para Azure AD, Keycloak, Facebook y cualquier proveedor genérico compatible con OAuth2.
Step 1 — Register Chamilo in your identity provider
Cree una aplicación en el panel de administración de su proveedor y establezca el URI de redirección en:
https://your-chamilo-url/connect/<provider>/checkDonde <provider> es azure, keycloak, facebook o el nombre que asigne a un proveedor genérico. Anote el Client ID y el Client Secret.
Step 2 — Configure authentication.yaml
Active el proveedor y proporcione sus credenciales. Todos los proveedores comparten estas claves comunes:
enabled
true para activarlo
title
Etiqueta que se muestra en el botón de inicio de sesión
client_id
Del proveedor de identidad
client_secret
Del proveedor de identidad
allow_create_new_users
Crear automáticamente una cuenta de Chamilo en el primer inicio de sesión
allow_update_user_info
Sincronizar los datos del usuario en cada inicio de sesión
force_as_login_method
Ocultar los demás métodos y mostrar únicamente el botón de este proveedor
force_redirect
Enviar a un visitante anónimo a este proveedor de forma automática, sin botón que pulsar
skip_force_redirect_in
Lista de fragmentos de URL que force_redirect deja intactos
Azure AD (Microsoft Entra ID)
Azure dispone de su propia página dedicada que cubre el registro de la aplicación, el mapeo de roles basado en grupos, la autenticación por certificado y los comandos de sincronización de aprovisionamiento de cuentas; consulte Azure Entra ID.
Keycloak
Generic OAuth2
Úselo para Google, GitLab o cualquier proveedor compatible con OAuth2:
El mapeo de campos (cómo se asignan los atributos del proveedor a firstname, lastname, email, etc. de Chamilo) y el mapeo de roles también son configurables. Consulte la wiki para la lista completa de claves de mapeo.
Optional — Send every visitor to the provider automatically
Dos claves controlan cuánto de la página de inicio de sesión sigue viendo un visitante. Son independientes y responden a necesidades distintas:
force_as_login_method: true
La página de inicio de sesión, reducida al botón de este proveedor. El visitante lo pulsa.
force_redirect: true
Ninguna página de inicio de sesión. El navegador va al proveedor por sí solo.
Use force_redirect cuando el proveedor de identidad posee todas las cuentas y el formulario de inicio de sesión local no tiene propósito:
Solo un proveedor puede forzar la redirección. Si varios la declaran, prevalece el primero que esté activado. LDAP no puede declararla, porque autentica a través del formulario local.
La redirección se aplica a una página que el navegador muestra, y a nada más. Estas peticiones permanecen siempre donde están:
Una llamada API, SCIM, MCP o XHR, que no puede seguir un intercambio pensado para un navegador.
Una imagen, una hoja de estilos o una descarga de archivo.
Cualquier escritura (POST, PUT, DELETE), porque un navegador reenvía una escritura redirigida como GET y descarta el cuerpo.
El propio intercambio del proveedor (
/connect/...) y/logout, que de lo contrario construirían un bucle infinito.Un visitante que ya tiene una sesión, incluida la cuenta anónima de un curso público.
Añada un fragmento de URL a skip_force_redirect_in por cada área pública que deba permanecer abierta, como un catálogo de cursos.
La vía de escape
Un proveedor inalcanzable bloquearía todas las cuentas, incluida la del administrador local. Añada skipForcedRedirect=1 a cualquier URL para llegar de todos modos al formulario de inicio de sesión local:
La elección permanece en la sesión, de modo que las páginas siguientes siguen mostrando el formulario. También cancela force_as_login_method para esa sesión, lo que vuelve a poner todos los métodos de inicio de sesión en la página. Para devolver la plataforma al proveedor, use ?skipForcedRedirect=0, o cierre la sesión del navegador.
El parámetro pertenece únicamente a force_redirect. Mientras ningún proveedor declare esa clave, el parámetro no hace nada en absoluto, y force_as_login_method conserva su único botón.
Conserve esta URL junto con sus notas de recuperación. Pruébela antes de activar force_redirect en producción.
Paso 3 — Vaciar la caché y probar
Cierre la sesión de Chamilo. El botón del proveedor configurado debería aparecer en la página de inicio de sesión. Pruebe con una cuenta dedicada antes de desplegarlo a todos los usuarios.
Consejos
Mantenga habilitado el formulario de inicio de sesión estándar para que los administradores puedan iniciar sesión siempre si OAuth2 presenta problemas. Si configura
force_redirect, aprenda en su lugar la URL?skipForcedRedirect=1: es la única forma de volver a ese formulario.La asignación de roles por defecto es estudiante; use la asignación de grupos (Azure) para promover usuarios a roles de profesor o administrador de forma automática — consulte Azure Entra ID para más detalles sobre ello y sobre cómo hacer coincidir usuarios entrantes con cuentas existentes.
Última actualización
¿Te fue útil?