A partire dalla versione 2.8.92, Semaphore supporta l'autenticazione tramite OpenID. In questo articolo esploreremo come configurare Ansible Semaphore per autenticare gli utenti tramite GitLab.

La configurazione dell'autenticazione tramite OpenID inizia con la configurazione del provider stesso, nel nostro caso, GitLab.

1. Crea un'applicazione in GitLab

Per abilitare l'autenticazione tramite GitLab, è necessario creare un'applicazione nelle impostazioni del proprio account GitLab.

  1. Vai alla sezione Applicazioni nelle impostazioni del tuo account GitLab: https://gitlab.com/-/profile/applications
  2. Compila i campi richiesti:
    • URL di reindirizzamento: http://localhost:3000/api/auth/oidc/gitlab/redirect.
    • Scopes: openid, profile, email.

    creazione app gitlab

  3. Dopo aver cliccato su Salva applicazione vedrai la seguente schermata:
  4. configurazione app gitlab
  5. Copia e salva la chiave segreta da qualche parte (sarà necessaria per configurare Semaphore) e clicca su Continua.
  6. Applicazione pronta.
  7. lista app gitlab

2. Aggiungi le impostazioni OpenID al file di configurazione di Semaphore

Come sai, le impostazioni di Semaphore sono memorizzate nel file di configurazione (di solito config.json) in formato JSON.

Dobbiamo aggiungere le seguenti impostazioni affinché Semaphore sappia come utilizzare GitLab come provider OpenID:

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

3. Avvia Semaphore con autenticazione OpenID/GitLab

Dopo aver salvato le modifiche nel file di configurazione, avvia o riavvia Semaphore con le nuove impostazioni.

Troverai un nuovo pulsante "GitLab" nella pagina di login di Semaphore.

schermata di accesso semaphore