Ab Version 2.8.92 unterstützt Semaphore die Authentifizierung über OpenID. In diesem Artikel werden wir untersuchen, wie man Ansible Semaphore einrichtet, um Benutzer über GitLab zu authentifizieren.

Die Konfiguration der Authentifizierung über OpenID beginnt mit der Einrichtung des Anbieters selbst, in unserem Fall GitLab.

1. Erstellen Sie eine Anwendung in GitLab

Um die Authentifizierung über GitLab zu aktivieren, müssen Sie eine Anwendung in den Einstellungen Ihres GitLab-Kontos erstellen.

  1. Gehen Sie zum Abschnitt Anwendungen in den Einstellungen Ihres GitLab-Kontos: https://gitlab.com/-/profile/applications
  2. Füllen Sie die erforderlichen Felder aus:
    • Redirect URL: http://localhost:3000/api/auth/oidc/gitlab/redirect.
    • Scopes: openid, profile, email.

    gitlab app create

  3. Nachdem Sie auf Application speichern geklickt haben, sehen Sie folgenden Bildschirm:
  4. gitlab app config
  5. Kopieren Sie den geheimen Schlüssel und speichern Sie ihn an einem sicheren Ort (er wird zur Konfiguration von Semaphore benötigt) und klicken Sie auf Weiter.
  6. Anwendung bereit.
  7. gitlab app list

2. Fügen Sie die OpenID-Einstellungen zur Konfigurationsdatei von Semaphore hinzu

Wie Sie wissen, werden die Semaphore-Einstellungen in der Konfigurationsdatei (normalerweise config.json) im JSON-Format gespeichert.

Wir müssen die folgenden Einstellungen hinzufügen, damit Semaphore weiß, wie es GitLab als OpenID-Anbieter verwenden kann:

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

3. Starten Sie Semaphore mit OpenID/GitLab-Authentifizierung

Nachdem Sie die Änderungen in der Konfigurationsdatei gespeichert haben, starten oder starten Sie Semaphore mit den neuen Einstellungen neu.

Sie finden einen neuen "GitLab"-Button auf der Anmeldeseite von Semaphore.

semaphore login screen