SIU-Arai/Integracion/Gitlab

De SIU
Revisión del 12:32 25 abr 2018 de Svier (discusión | contribuciones) (formato)
Saltar a: navegación, buscar
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
  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