SIU-Arai/Integracion/Redmine
Revisión del 10:36 28 may 2018 de Lmartini (discusión | contribuciones)
Sumario
Integrando Redmine
Redmine Redmine es una herramienta para la gestión de proyectos. Para autenticar con saml usamos este plugin [1].
Requerimientos
Será necesario contar con:
- Redmine 3.0 or higher
- la url del Redmine, en este ejemplo
https://redmine.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-redmine_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
- Ir a Aplicaciones
- Completar el formulario con los siguientes datos
- appUniqueId: 'unx-redmine_1' (recordar es la misma que se pone en idp.yml)
- url: 'https://redmine.unx.edu.ar'
- etiqueta: 'Redmine'
- versión: 10
- ícono: (elegir un logo .png, se mostrará en el menú)
- 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 Gitlab 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.usage:
siu-redmine_1.siu-redmine: siu
custom:
'https://redmine.siu.edu.ar/saml/metadata':
AssertionConsumerService: 'https://redmine.siu.edu.ar/redmine/auth/saml/callback'
SingleLogoutService: 'https://redmine.siu.edu.ar/redmine/logout'
appUniqueId: siu-redmine_1.siu-redmine
Ajustes en Redmine
Instalar el plugin
Para instalar plugins en redmine (la forma cambia según la versión) [2]
Fingerprint SSL
Si no queremos cargar todo el certificado podemos calcularle el fingerprint
Dentro del server del idp buscamos el certificado y lo calculamos
openssl x509 -noout -fingerprint -sha1 -inform pem -in /srv/certs/idp.crt
Activar autenticación SAML
Una vez instalado editamos /usr/share/redmine/config/initializers/saml.rb
Redmine::OmniAuthSAML::Base.configure do |config|
config.saml = { :assertion_consumer_service_url => "https://redmine.siu.edu.ar/redmine/auth/saml/callback", # The redmine application hostname :issuer => "https://redmine.siu.edu.ar/saml/metadata", # The issuer name :idp_sso_target_url => "https://idp3.siu.edu.ar/saml2/idp/SSOService.php", # SSO login endpoint :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
Limitaciones conocidas
- Single Logout. No está soportado en Gitlab aún.
- Además de conectar vía SAML, el usuario tendrá que establecer una password local en Gitlab para pull/push. Una opción es configurar el provider LDAP para que la cuenta en Gitlab tenga múltiple identidades (SAML, LDAP, local) y con esto utilice su clave mediante autenticación LDAP.