Diferencia entre revisiones de «SIU-Arai/Integracion/Redmine»
Línea 8: | Línea 8: | ||
= Integrando Redmine = | = Integrando Redmine = | ||
− | [https://www.redmine.org/ Redmine] Redmine es una herramienta para la gestión de proyectos. | + | [https://www.redmine.org/ Redmine] Redmine es una herramienta para la gestión de proyectos. Para autenticar con saml usamos este plugin [https://github.com/chrodriguez/redmine_omniauth_saml]. |
== Requerimientos == | == Requerimientos == | ||
Línea 44: | Línea 44: | ||
=== Instalar el plugin === | === Instalar el plugin === | ||
− | + | Para instalar plugins en redmine (la forma cambia según la versión) | |
− | [ | + | [https://github.com/chrodriguez/redmine_omniauth_saml] |
+ | |||
+ | === 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 | ||
+ | <code> | ||
+ | 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 | ||
− | + | </code> | |
− | |||
− | |||
− | |||
== Limitaciones conocidas == | == Limitaciones conocidas == | ||
# Single Logout. No está soportado en Gitlab [https://gitlab.com/gitlab-org/gitlab-ce/issues/17344 aún]. | # Single Logout. No está soportado en Gitlab [https://gitlab.com/gitlab-org/gitlab-ce/issues/17344 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. | # 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. |
Revisión del 10:36 28 may 2018
COPIA LUC, NO DAR PELOTA COPIA LUC, NO DAR PELOTA COPIA LUC, NO DAR PELOTA
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.