Diferencia entre revisiones de «SIU-Arai/Integracion/Gitlab»
(se crea la pagina Gitlab) |
(limitaciones) |
||
(No se muestran 3 ediciones intermedias del mismo usuario) | |||
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 | |
− | + | #* í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 === | === 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 | |
− | custom: | + | AssertionConsumerService: 'https://gitlab.unx.edu.ar/users/auth/saml/callback' |
− | + | appUniqueId: unx-gitlab_1 | |
− | ' | ||
− | |||
− | AssertionConsumerService: 'https://gitlab.unx | ||
− | + | </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 | ||
+ | |||
+ | == 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](/wiki/images/d/d7/Siu-arai.png)
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
- í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. 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
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.