Integración de Moodle con Shibboleth¶
1. Pasos previos:¶
1.1 Instalación de Shibboleth SP
Referencias:
- https://www.proyectos.udelar.edu.uy/redmine/projects/idp-pub/wiki/SPInstall
- https://www.switch.ch/aai/guides/sp/installation/
- https://wiki.shibboleth.net/confluence/display/SP3/Home
1.2 Configuración básica de Shibboleth sp, obtención de atributos, prueba con script PHP de test.
https://www.proyectos.udelar.edu.uy/redmine/projects/idp-pub/wiki/SPConfig
Para realizar una prueba, se puede crear un script php para verificar que quede protegido, y ver los atributos recibidos por el IdP.
Ver un ejemplo en la sección de "Integración de aplicaciones php" en:
https://www.proyectos.udelar.edu.uy/redmine/projects/idp-pub/wiki/IntegracionApp1
2. Configuración de Apache¶
Proteger el directorio moodle/auth/shibboleth/index.php con Shibboleth.
En Apache debe definirse una regla como la siguiente:
<Directory /path/to/moodle/auth/shibboleth/index.php> AuthType shibboleth ShibRequestSetting requireSession 1 Require valid-user </Directory>
Si se utiliza un reverse proxy debe agregarse: ShibUseHeaders On
3. Configuración de moodle¶
Ingresar en moodle como administrador, ir a la página de gestión de autenticación.
En moodle 3.8:
(Administración del sitio >> Extensiones >> Identificación >> Gestionar identificación)
Habilitar la opción Shibooleth, ir a configuración.
En los ejemplos siguientes se utiliza un reverse proxy, y por eso los atributos se propagan como headers y tienen el prefijo "HTTP_". Si no se usa un reverse proxy, los atributos están disponibles sin ese prefijo, por ejemplo, en vez de "HTTP_UDELARPERSONNOMBRE1" debe ponerse "udelarPersonNombre1".
- Nombre de usuario: HTTP_UID
- URL del manejador de salida del Proveedor de Servicios Shibboleth: https://<nombreservidor>.edu.uy/Shibboleth.sso/Logout
- URL alternativa de cierre de sesión: https://login.udelar.edu.uy/idp/profile/Logout
Mapeo de datos:
- Nombre:
- Mapeo de datos (Nombre): HTTP_UDELARPERSONNOMBRE1
- Actualizar local (Nombre): Al crearse
- Bloquear valor (Nombre): Bloqueado
- Apellido:
- Mapeo de datos (Apellido(s)): HTTP_UDELARPERSONAPELLIDO1
- Actualizar local (Apellido(s)): Al crearse
- Bloquear valor (Apellido(s)): Bloqueado
- Email:
- Mapeo de datos (Dirección de correo): HTTP_MAIL
- Actualizar local (Dirección de correo): Al crearse
- Bloquear valor (Dirección de correo): Desbloqueado