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

De SIU
Saltar a: navegación, buscar
m (formato)
Línea 4: Línea 4:
  
 
[https://gitlab.com Gitlab] es una herramienta para el desarrollo colaborativo basado en Git. Se puede integrarlo con autenticación vía SAML, [https://docs.gitlab.com/ce/integration/saml.html con varias opciones].
 
[https://gitlab.com Gitlab] es una herramienta para el desarrollo colaborativo basado en Git. Se puede integrarlo con autenticación vía SAML, [https://docs.gitlab.com/ce/integration/saml.html con varias opciones].
 +
 +
== Requerimientos ==
 +
Será necesario contar con:
 +
* la url del Gitlab, en este ejemplo <code><nowiki>https://gitlab.unx.edu.ar</nowiki></code>
 +
* la url del IdP, en este ejemplo <code><nowiki>https://idp.unx.edu.ar</nowiki></code>
 +
* el identificador disponible para la aplicación, en este ejemplo <code>unx-gitlab_1</code>
 +
* el certificado público del IdP, en este ejemplo <code>-----BEGIN CERTIFICATE-----\n ...... \n-----END CERTIFICATE-----</code>
  
 
== Ajustes en SIU-Araí: Usuarios ==
 
== Ajustes en SIU-Araí: Usuarios ==
  
 
=== Creación de la aplicación Gitlab en Usuarios ===
 
=== Creación de la aplicación Gitlab en Usuarios ===
1. Ir a Aplicaciones
+
# Ir a Aplicaciones
 
+
# Completar el formulario con los siguientes datos
2. Completar el formulario con los siguientes datos
+
#* appUniqueId: 'unx-gitlab_1' (recordar es la misma que se pone en idp.yml)
 
+
#* url: '<nowiki>https://gitlab.unx.edu.ar'</nowiki>
   * appUniqueId: 'unx-gitlab_1' (recordar es la misma que se pone en idp.yml)
+
#* etiqueta: 'Gitlab'
 
+
#* versión: 10
   * Url: 'https://gitlab.unx<nowiki/>.edu.ar'
+
# 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.
 
 
   * 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 ===
 
=== Definición de Gitlab como SP ===
Se debe editar el archivo <code>/ruta/arai-usuarios/config/idp.yml</code>. Hay que tener cuidado al editar este archivo porque el formato yaml es estricto. Si se escapa un TAB se rompe.
+
Se debe editar el archivo <code>/ruta/arai-usuarios/config/idp.yml</code>. Hay que tener cuidado al editar este archivo porque el formato yaml es estricto. Si se escapa un TAB se rompe.<source lang="yaml" enclose="div"> 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
  
custom:
+
</source>
 
 
'<nowiki>https://gitlabtest.siu.edu.ar'</nowiki>: # esta clave es la que se pone el 'issuer' de la conf de gitlab
 
 
 
AssertionConsumerService: 'https://gitlab.unx<nowiki/>.edu.ar/users/auth/saml/callback'
 
 
 
appUniqueId: '''unx-gitlab_1'''
 
  
 
== Ajustes en Gitlab ==
 
== Ajustes en Gitlab ==
  
 
=== Activar autenticación SAML ===
 
=== Activar autenticación SAML ===
Se debe editar el archivo <code>/etc/gitlab/gitlab.rb</code>y activar el servicio omniauth para SAML y adecuar la configuración del IDP.
+
Se debe editar el archivo <code>/etc/gitlab/gitlab.rb</code>y activar el servicio omniauth para SAML y adecuar la configuración del IDP.<source lang="ruby" enclose="div"> gitlab_rails['omniauth_enabled'] = true
 
 
 gitlab_rails['omniauth_enabled'] = true
 
 
 gitlab_rails['omniauth_allow_single_sign_on'] = ['saml']
 
 gitlab_rails['omniauth_allow_single_sign_on'] = ['saml']
 
 
 gitlab_rails['omniauth_block_auto_created_users'] = false
 
 gitlab_rails['omniauth_block_auto_created_users'] = false
 
 
 gitlab_rails['omniauth_auto_link_saml_user'] = true 
 
 gitlab_rails['omniauth_auto_link_saml_user'] = true 
 
 
 gitlab_rails['omniauth_providers'] = [
 
 gitlab_rails['omniauth_providers'] = [
 
 
    {
 
    {
 
 
      "name" => "saml",
 
      "name" => "saml",
 
 
       args: {
 
       args: {
 
+
               assertion_consumer_service_url: 'https://gitlab.unx.edu.ar/users/auth/saml/callback',
               assertion_consumer_service_url: '<nowiki>https://gitlab.unx.edu.ar/users/auth/saml/callback'</nowiki>,
 
 
 
 
               idp_cert: "-----BEGIN CERTIFICATE-----\n ...... \n-----END CERTIFICATE-----",
 
               idp_cert: "-----BEGIN CERTIFICATE-----\n ...... \n-----END CERTIFICATE-----",
 
+
               idp_sso_target_url: 'https://idp.unx.edu.ar/saml2/idp/SSOService.php',
               idp_sso_target_url: '<nowiki>https://idp.unx.edu.ar/saml2/idp/SSOService.php'</nowiki>,
+
               issuer: 'https://gitlab.unx.edu.ar',
 
+
               name_identifier_format: 'urn:oasis:names:tc:SAML:2.0:nameid-format:persistent'
               issuer: '<nowiki>https://gitlab.unx.edu.ar'</nowiki>,
 
 
 
               name_identifier_format: '<nowiki>urn:oasis:names:tc:SAML:2.0:nameid-format:persistent'</nowiki>
 
 
 
 
             }
 
             }
 
 
    }
 
    }
 
 
  ]
 
  ]
 +
</source> <blockquote>Nota: <code>idp_cert</code>contiene el certificado público del IdP. Se debe concatenar los saltos de linea y expresarlos textualmente con <code>\n</code>.</blockquote>
  
 
=== Cargar nueva configuració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:
 
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

Revisión del 12:32 25 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
  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