Integración de Moodle con Shibboleth

1. Pasos previos:

1.1 Instalación de Shibboleth SP

Referencias:

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".

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

Ref:
https://moodle.org/auth/shibboleth/README.txt