Diferencia entre revisiones de «SIU-Arai/Integracion/Moodle»

De SIU
Saltar a: navegación, buscar
(Ajustes en Moodle)
(ajustes doc para moodle)
Línea 48: Línea 48:
  
 
=== Instalar el plugin ===
 
=== Instalar el plugin ===
Para instalar plugins en Moodle ver la [https://docs.moodle.org/35/en/Installing_plugins#Installing_manually_at_the_server documentación] (la forma cambia según la versión).
+
Para instalar plugins en Moodle ver la [https://docs.moodle.org/35/en/Installing_plugins#Installing_manually_at_the_server documentación] (la forma cambia según la versión). El plugin sugerido es https://moodle.org/plugins/auth_saml2
  
=== Fingerprint SSL ===
 
Si no queremos cargar todo el certificado podemos calcularle el fingerprint
 
'''Dentro del server del idp''' buscamos el certificado y lo calculamos
 
<code>openssl x509 -noout -fingerprint -sha1 -inform pem -in /srv/certs/idp.crt</code>
 
 
=== Activar autenticación SAML ===
 
=== Activar autenticación SAML ===
Una vez instalado editamos /usr/share/redmine/config/initializers/saml.rb
+
Una vez instalado el plugin, activar el módulo SAML2 que está en '''Administración del sitio -> Extensiones -> Identificación'''. A continuación se muestra un ejemplo de configuración:
<source lang="ruby" enclose="div">
+
[[Archivo:Moodle-saml-1.png|no|miniaturadeimagen|424x424px|Carga de metadatos del IDP e identificación del punto de acceso en la pantalla de login.]]
Redmine::OmniAuthSAML::Base.configure do |config|
+
En la primera parte lo más importante es cargar los metadatos en formato XML que nos entrega el IDP.
  config.saml = {
+
[[Archivo:Moodle-saml-2.png|no|miniaturadeimagen|426x426px|Configuración del formato de intercambio del atributo en el protocolo SAML.]]
    :assertion_consumer_service_url => "https://redmine.siu.edu.ar/redmine/auth/saml/callback", # The redmine application hostname
+
En la segunda parte, es necesario especificar el formato del atributo identificador del usuario.
    :issuer                        => "https://redmine.siu.edu.ar/saml/metadata",                # The issuer name
+
[[Archivo:Moodle-saml-3.png|no|miniaturadeimagen|426x426px|Configuración para autenticar a todos los usuarios vía SAML, así como aprovisionar automáticamente las cuentas al ingresar a Moodle.]]
    :idp_sso_target_url            => "https://idp3.siu.edu.ar/saml2/idp/SSOService.php", # SSO login endpoint
+
En la tercera parte, se indica contra que atributo del IDP se mapea las cuentas locales del moodle y si se tienen que crear o autoaprovisionar las cuentas en moodle al momento del primer ingreso del usuario. Esta suele ser la opción mas simple para un sitio de aula virtual ofrecido a todos los usuarios que están presentes en SIU-Araí: Usuarios.
    :idp_cert_fingerprint          => "C9:9F:99:5B:4D:78:D5:7E:72:4E:E9:76:B0:D0:5F:16:23:A9:3C:50", # SSO ssl certificate fingerprint
 
    :name_identifier_format        => "urn:oasis:names:tc:SAML:2.0:nameid-format:persistent",
 
    :signout_url                    => "https://idp3.siu.edu.ar/saml2/idp/SingleLogoutService.php?ReturnTo=",
 
    :idp_slo_target_url            => "https://idp3.siu.edu.ar/saml2/idp/SingleLogoutService.php",
 
    :name_identifier_value          => "uniqueIdentifier", # Which redmine field is used as name_identifier_value for SAML logout
 
    :attribute_mapping              => {
 
    # How will we map attributes from SSO to redmine attributes
 
      :login      => 'extra.raw_info.uniqueIdentifier',
 
      :firstname => 'extra.raw_info.cn',
 
      :lastname  => 'extra.raw_info.sn',
 
      :mail      => 'extra.raw_info.mail'
 
    }
 
  }
 
 
 
  config.on_login do |omniauth_hash, user|
 
    # Implement any hook you want here
 
    # File.open("/tmp/redmine.log", 'w') { |file| file.write(omniauth_hash) }
 
  end
 
end
 
 
 
</source>
 
  
 +
Opcionalmente, es posible controlar la forma en que se mapea la información existente en el IDP con la que se carga en Moodle. Por ejemplo, es posible indicar que el atributo email del usuario de Moodle puede ser leído desde el atributo <code>mail</code>  existente en el IDP (que es también información que se proporciona en un token SAML). Además es posible controlar en que momento se crea y/o actualiza dicha información en Moodle.
 
== Limitaciones conocidas ==
 
== Limitaciones conocidas ==
# Además de conectar vía SAML, el usuario tendrá que establecer una password local en Redmine para checkoutear/commitear. Una opción es configurar el provider LDAP para que la cuenta en Redmine tenga múltiple identidades (SAML, LDAP, local) y con esto utilice su clave mediante autenticación LDAP.
+
# Limitar la pantalla de ingreso o login del Moodle para que sólamente opere con usuarios existentes en el IDP. Por ahora es posible hacer el ingreso con un usuario creado de forma manual en el mismo Moodle.

Revisión del 14:55 30 oct 2018

Siu-arai.png

Integrando Moodle

Moodle es una herramienta para la gestión de Aulas Virtuales. Para autenticar con saml usamos este plugin https://moodle.org/plugins/auth_saml2.

Requerimientos

Será necesario contar con:

  • Moodle 2.7 or higher
  • la url del Moodle, en este ejemplo https://moodle.unx.edu.ar
  • la url del IdP, en este ejemplo https://idp.unx.edu.ar
  • el identificador disponible para la aplicación, en este ejemplo unx-moodle_1
  • el fingerprint del certificado del idp (es el certificado interno que usa arai, no el del navegador)

Ajustes en SIU-Araí: Usuarios

Creación de la aplicación Gitlab en Usuarios

  1. Ir a Aplicaciones
  2. Completar el formulario con los siguientes datos
    • appUniqueId: 'unx-moodle_1' (recordar es la misma que se pone en idp.yml)
    • url: 'https://moodle.unx.edu.ar'
    • etiqueta: 'Moodle'
    • versión: 10
    • ícono: (elegir un logo .png, se mostrará en el menú)
  3. Opcional. Activar la opción filtrar por grupo y luego agregar un grupo existente, como devs al filtro. Esto hace que sólo la gente que pertenezca a este grupo pueda acceder a la aplicación.

Definición de Moodle como SP

Se debe editar el archivo /ruta/arai-usuarios/config/idp.yml. Hay que tener cuidado al editar este archivo porque el formato yaml es estricto. Si se escapa un TAB se rompe.

Así se agrega el SP al IdP

   service_provider:
        custom
:
             'https://moodle.unx.edu.ar/saml/metadata'
:
                 AssertionConsumerService
: 'https://moodle.unx.edu.ar/redmine/auth/saml/callback'
                 SingleLogoutService
: 'https://moodle.unx.edu.ar/redmine/logout'
                 appUniqueId
: unx-moodle_1


Opcionalmente, se puede elegir un template específico para la página del login si el usuario accede directamente a la url de Moodle:

   templates_login:
        definition
:
            usage
:
                unx-moodle_1
: login-especifico

Ajustes en Moodle

Instalar el plugin

Para instalar plugins en Moodle ver la documentación (la forma cambia según la versión). El plugin sugerido es https://moodle.org/plugins/auth_saml2

Activar autenticación SAML

Una vez instalado el plugin, activar el módulo SAML2 que está en Administración del sitio -> Extensiones -> Identificación. A continuación se muestra un ejemplo de configuración:

Carga de metadatos del IDP e identificación del punto de acceso en la pantalla de login.

En la primera parte lo más importante es cargar los metadatos en formato XML que nos entrega el IDP.

Configuración del formato de intercambio del atributo en el protocolo SAML.

En la segunda parte, es necesario especificar el formato del atributo identificador del usuario.

Configuración para autenticar a todos los usuarios vía SAML, así como aprovisionar automáticamente las cuentas al ingresar a Moodle.

En la tercera parte, se indica contra que atributo del IDP se mapea las cuentas locales del moodle y si se tienen que crear o autoaprovisionar las cuentas en moodle al momento del primer ingreso del usuario. Esta suele ser la opción mas simple para un sitio de aula virtual ofrecido a todos los usuarios que están presentes en SIU-Araí: Usuarios.

Opcionalmente, es posible controlar la forma en que se mapea la información existente en el IDP con la que se carga en Moodle. Por ejemplo, es posible indicar que el atributo email del usuario de Moodle puede ser leído desde el atributo mail existente en el IDP (que es también información que se proporciona en un token SAML). Además es posible controlar en que momento se crea y/o actualiza dicha información en Moodle.

Limitaciones conocidas

  1. Limitar la pantalla de ingreso o login del Moodle para que sólamente opere con usuarios existentes en el IDP. Por ahora es posible hacer el ingreso con un usuario creado de forma manual en el mismo Moodle.