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

De SIU
Saltar a: navegación, buscar
m
(limitaciones)
 
Línea 56: Línea 56:
 
Dependiendo del tipo de instalación realizada, tendremos que reconfigurar o reiniciar Gitlab. Si hemos instalado vía el paquete ''omnibus'' se debería ejecutar:
 
Dependiendo del tipo de instalación realizada, tendremos que reconfigurar o reiniciar Gitlab. Si hemos instalado vía el paquete ''omnibus'' se debería ejecutar:
 
  sudo gitlab-ctl reconfigure
 
  sudo gitlab-ctl reconfigure
 +
 +
== Limitaciones conocidas ==
 +
# 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.

Revisión actual del 07:33 26 abr 2018

Siu-arai.png

Integrando Gitlab

Gitlab es una herramienta para el desarrollo colaborativo basado en Git. Se puede integrarlo con autenticación vía SAML, con varias opciones.

Requerimientos

Será necesario contar con:

  • la url del Gitlab, en este ejemplo https://gitlab.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-gitlab_1
  • el certificado público del IdP, en este ejemplo -----BEGIN CERTIFICATE-----\n ...... \n-----END CERTIFICATE-----

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-gitlab_1' (recordar es la misma que se pone en idp.yml)
    • url: 'https://gitlab.unx.edu.ar'
    • etiqueta: 'Gitlab'
    • 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 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.
custom:
    'https://gitlab.unx.edu.ar'
: # esta clave es la que se pone el 'issuer' de la conf de gitlab
        AssertionConsumerService
: 'https://gitlab.unx.edu.ar/users/auth/saml/callback'
        appUniqueId
: unx-gitlab_1

Ajustes en Gitlab

Activar autenticación SAML

Se debe editar el archivo /etc/gitlab/gitlab.rby activar el servicio omniauth para SAML y adecuar la configuración del IDP.
 gitlab_rails['omniauth_enabled'] = true
 gitlab_rails['omniauth_allow_single_sign_on'] = ['saml']
 gitlab_rails['omniauth_block_auto_created_users'] = false
 gitlab_rails['omniauth_auto_link_saml_user'] = true 
 gitlab_rails['omniauth_providers'] = [
    {
      "name" => "saml",
       args: {
               assertion_consumer_service_url: 'https://gitlab.unx.edu.ar/users/auth/saml/callback',
               idp_cert: "-----BEGIN CERTIFICATE-----\n ...... \n-----END CERTIFICATE-----",
               idp_sso_target_url: 'https://idp.unx.edu.ar/saml2/idp/SSOService.php',
               issuer: 'https://gitlab.unx.edu.ar',
               name_identifier_format: 'urn:oasis:names:tc:SAML:2.0:nameid-format:persistent'
             }
    }
  ]
 
Nota: idp_certcontiene el certificado público del IdP. Se debe concatenar los saltos de linea y expresarlos textualmente con \n.

Cargar nueva configuración

Dependiendo del tipo de instalación realizada, tendremos que reconfigurar o reiniciar Gitlab. Si hemos instalado vía el paquete omnibus se debería ejecutar:

sudo gitlab-ctl reconfigure

Limitaciones conocidas

  1. Single Logout. No está soportado en Gitlab aún.
  2. 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.