Ab Version 2.8.92 unterstützt Semaphore die Authentifizierung per OpenID. In diesem Artikel zeigen wir, wie Sie Ansible Semaphore so einrichten, dass Benutzer sich über GitLab authentifizieren können.

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

1. Erstellen Sie eine Anwendung in GitLab

Um die Authentifizierung über GitLab zu ermöglichen, müssen Sie in den Kontoeinstellungen von GitLab eine Anwendung erstellen.

  1. Gehen Sie zum Abschnitt 'Applications' 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 Save application 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 Continue.
  6. Anwendung bereit.
  7. gitlab app list

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

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

Fügen Sie folgende Einstellungen hinzu, damit Semaphore weiß, wie GitLab als OpenID-Provider verwendet werden kann:

"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. Starten Sie Semaphore mit OpenID-/GitLab-Authentifizierung

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

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

semaphore login screen