A partir de la versión 2.8.92, Semaphore admite la autenticación mediante OpenID. En este artículo, exploraremos cómo configurar Ansible Semaphore para autenticar usuarios a través de GitLab.

Configurar la autenticación mediante OpenID comienza por configurar el proveedor en sí, en nuestro caso, GitLab.

1. Crear una aplicación en GitLab

Para habilitar la autenticación a través de GitLab, necesitas crear una aplicación en la configuración de tu cuenta de GitLab.

  1. Ve a la sección Aplicaciones en la configuración de tu cuenta de GitLab: https://gitlab.com/-/profile/applications
  2. Rellena los campos requeridos:
    • URL de redirección: http://localhost:3000/api/auth/oidc/gitlab/redirect.
    • Alcances: openid, profile, email.

    gitlab app create

  3. Después de hacer clic en Guardar aplicación verás la siguiente pantalla:
  4. gitlab app config
  5. Copia y guarda la clave secreta en algún lugar (se necesitará para configurar Semaphore) y haz clic en Continuar.
  6. Aplicación lista.
  7. gitlab app list

2. Agrega la configuración de OpenID al archivo de configuración de Semaphore

Como sabes, la configuración de Semaphore se almacena en el archivo de configuración (normalmente config.json) en formato JSON.

Debemos añadir la siguiente configuración para que Semaphore sepa cómo usar GitLab como proveedor OpenID:

"oidc_providers": {
   "gitlab": {
       "display_name": "GitLab",
       "provider_url": "https://gitlab.com",
       "client_id": "Application ID",
       "client_secret": "Secret",
       "redirect_url": "http://localhost:4000/api/auth/oidc/gitlab/redirect"
   }
}

3. Inicia Semaphore con autenticación OpenID/GitLab

Después de guardar los cambios en el archivo de configuración, inicia o reinicia Semaphore con los nuevos ajustes.

Verás un nuevo botón "GitLab" en la página de inicio de sesión de Semaphore.

semaphore login screen