A partire dalla versione 2.8.92, Semaphore supporta l'autenticazione tramite OpenID. In questo articolo vedremo 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, devi creare un'applicazione nelle impostazioni del tuo account GitLab.

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

    creazione app GitLab

  3. Dopo aver cliccato su Save application vedrai la seguente schermata:
  4. configurazione app GitLab
  5. Copia e salva la chiave segreta da qualche parte (ti servirà per configurare Semaphore) e clicca su Continue.
  6. Applicazione pronta.
  7. elenco app GitLab

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

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

Dobbiamo aggiungere le seguenti impostazioni in modo che Semaphore sappia come utilizzare GitLab come provider 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. Avvia Semaphore con l'autenticazione OpenID/GitLab

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

Nella pagina di login di Semaphore troverai un nuovo pulsante "GitLab".

schermata di accesso di Semaphore