Diferencia entre revisiones de «SIU-Arai/Integracion/Gitlab»
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 === | ||
− | + | # Ir a Aplicaciones | |
− | + | # 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> | |
− | + | #* etiqueta: 'Gitlab' | |
− | + | #* versión: 10 | |
− | + | # 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 | ||
− | + | </source> | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
== 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_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: ' | ||
− | |||
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: ' | + | issuer: 'https://gitlab.unx.edu.ar', |
− | + | name_identifier_format: 'urn:oasis:names:tc:SAML:2.0:nameid-format:persistent' | |
− | issuer: ' | ||
− | |||
− | name_identifier_format: ' | ||
− | |||
} | } | ||
− | |||
} | } | ||
− | |||
] | ] | ||
+ | </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
Sumario
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
- Ir a Aplicaciones
- 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
- 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
'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.rb
y 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'
}
}
]
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_cert
contiene 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