GitLab: Login über Drittanbieter konfigurieren

Um Benutzern einen möglichst einfachen Login und damit eine gleichzeitige Erstellung eines Benutzerkontos zu bieten, ist ein Drittanbieter-Login zu empfehlen. Hier gibt es viele verschiedene Anbieter großer Webseiten, deren Benutzerkonten genutzt werden können. Auch GitLab besitzt seit geraumer Zeit standardmäßig die Möglichkeit, Logins über Drittanbieter zu konfigurieren.

Hierbei funktioniert das immer über eine ID bzw. einen Key (Schlüssel) sowie über ein „Secret“ bzw. Geheimcode. Diese Codes muss man bei den jeweiligen Anbietern beantragen, was auch je nach Anbieter unterschiedlich funktioniert. Einsetzen muss man sie dann in die gitlab.yml im Bereich omniauth. Dort sind standardmäßig bereits die Anbieter Google, Twitter und GitHub vorgegeben, auf deren Vorgehensweise ich im Folgenden eingehen werde.

  ## OmniAuth settings
  omniauth:
    # Allow login via Twitter, Google, etc. using OmniAuth providers
    enabled: false

    # CAUTION!
    # This allows users to login without having a user account first (default: false).
    # User accounts will be created automatically when authentication was successful.
    allow_single_sign_on: false
    # Locks down those users until they have been cleared by the admin (default: true).
    block_auto_created_users: true

    ## Auth providers
    # Uncomment the following lines and fill in the data of the auth provider you want to use
    # If your favorite auth provider is not listed you can use others:
    # see https://github.com/gitlabhq/gitlab-public-wiki/wiki/Working-custom-omniauth-provider-configurations
    # The 'app_id' and 'app_secret' parameters are always passed as the first two
    # arguments, followed by optional 'args' which can be either a hash or an array.
    providers:
      # - { name: 'google_oauth2', app_id: 'YOUR APP ID',
      #     app_secret: 'YOUR APP SECRET',
      #     args: { access_type: 'offline', approval_prompt: '' } }
      # - { name: 'twitter', app_id: 'YOUR APP ID',
      #     app_secret: 'YOUR APP SECRET'}
      # - { name: 'github', app_id: 'YOUR APP ID',
      #     app_secret: 'YOUR APP SECRET',
      #     args: { scope: 'user:email' } }Code-Sprache: PHP (php)

Zuerst einmal muss jedoch enabled: false auf enabled: true geändert werden. Außerdem empfiehlt sich, die Werte allow_single_sign_on und block_auto_created_users jeweils auf true zu setzen. Ersterer ermöglicht das Erstellen eines neuen Benutzerkontos (statt einen Login über einen Drittanbieter nur dann zuzulassen, wenn schon ein Benutzerkonto besteht, das mit den Daten des Drittanbieters übereinstimmt) und letzterer die automatische Freischaltung. Andernfalls erhält der Benutzer nach dem Login nur eine Meldung, dass das Benutzerkonto blockiert wurde und vom Administrator freigeschaltet werden muss.

Die Apps lassen sich folgendermaßen hinzufügen:

Google:
Folgende Webseite aufrufen: console.developers.google.com/cloud-resource-manager (Benutzerkonto bei Google vorausgesetzt)
Links auf „APIs & auth“ klicken.
Die Nutzungsbestimmungen lesen und akzeptieren.
Ab Version 7.2 von GitLab ist folgender Schritt noch notwendig, da hier eine neuere Version der API genutzt wird:
Links unter APIs & auth -> APIs die beiden APIs „Contacts API“ und „Google+ API“ mit einem Klick auf die Schaltfläche „OFF“ aktivieren.
Links unter APIs & auth -> Consent screen mindestens die E-Mail-Adresse und den Produktnamen festlegen.
Links unter APIs & auth -> Credentials eine neue Client ID registrieren.
Application Type:Web application
Authorized JavaScript origins:http://domain.tld
Authorized redirect URI:http://domain.tld/users/auth/google_oauth2/callback/

Twitter:
Folgende Webseite aufrufen: developer.twitter.com/en/apps (Benutzerkonto bei Twitter vorausgesetzt)
Oben rechts auf „Create a new application“ klicken.
Folgende Informationen müssen nun angegeben werden:
Namebeliebig
Descriptionbeliebig
Websitebeliebig
Callback URLhttp://domain.tld/users/auth/twitter/callback/
Die genaue URL steht auch nochmals direkt unter dem Eingabefeld „Twitter Consumer key“.
Dann müssen noch die Regeln für die Einbindung akzeptiert werden.

Nach dem Absenden wird man auf die Details-Seite der Application geleitet und kann dort unter „OAuth settings“ die benötigten Daten Consumer key und Consumer secret einsehen.

GitHub:
Folgende Webseite aufrufen: github.com/settings/applications (Benutzerkonto bei GitHub vorausgesetzt)
Links unter APIs & auth -> Registered apps eine neue App registrieren.
Folgende Informationen müssen nun angegeben werden:
Namebeliebig
PlatformWeb Application
Authorization callback URLhttp://domain.tld/users/auth/github/callback/

Die jeweiligen App-IDs und Schlüssel müssen dann im oben gezeigten Bereich der GitLab-Konfiguration angegeben werden. Danach muss ein Neustart von GitLab durchgeführt werden:
service gitlab restart

Nach der Eingabe der jeweiligen Authentifierungs-Codes wird auf der Anmelde-Seite für jeden konfigurierten Drittanbieter ein entsprechender Button oder eine Grafik angezeigt, der/die die Authentifizierung des Benutzers beim Login oder der Registrierung vornimmt.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert