UliCMS eXtend

Erhalten Sie die besten Erweiterungen für UliCMS

LDAP Integrationsdienste für UliCMS

Screenshot

Hersteller: Ulrich Schmidt
Kategorie: Authentifizierung

Erste Veröffentlichung: 31.10.2017
Letzte Änderung: 05.04.2020

Beschreibung

Features

  • LDAP Logins benutzen
  • Passwörter zwischen einem LDAP Verzeichnisdienst und UliCMS werden synchronisiert
  • Accounts die noch nicht in UliCMS existieren können automatisch beim ersten Login erstellt werden. Daten wie Vor- und Nachname und die E-Mail Adresse werden aus dem LDAP importiert
  • Einfache Konfiguration
  • Pseudo Load-Balancing wenn mehrere LDAP Hosts hinterlegt sind.
  • Verschlüsselte Verbindungen per TLS werden unterstützt

Installation und Konfiguration

Voraussetzungen

  • UliCMS 2017.4 oder neuer
  • PHP 7.0 oder neuer mit ldap-Erweiterung
  • klogger (Ab ldap_login 1.2)
  • LDAP Verzeichnisdienst (getestet mit OpenLDAP, andere LDAP Server sollten ebenfalls funktionieren)
  • Grundlegende LDAP Kenntnisse werden benötigt

Installation

  1. In UliCMS klicken Sie bitte auf Pakete -> Paket installieren
  2. Laden Sie die Datei ldap_login-{version number}.sin hoch
  3. Klicken Sie auf Installieren

Hinweis: Die Installation deaktiviert das "Passwort zurücksetzen" Feature.

Konfiguration

Kopieren Sie das folgende Codesnippet in die Datei cms-config.php und passen Sie die Konfiguration an. Eine Beschreibung der Parameter finden Sie im nächsten Abschnitt.

public $ldap_config = array(
    "ldap_host" => [
        "domaincontroller1.firma.de",
        "domaincontroller2.firma.de",
        "domaincontroller3.firma.de"
    ],
    "port" => 389,
    "use_tls" => false,
    "domain" => "firma.de",
    "user_dn" => "uid=%user%,dc=%domain%",
    "filter_dn" => "(uid=%user%)",
    "search_dn" => "cn=users,dc=firma,dc=de",
    // all field names must be lower case
    "field_mapping" => [
        "username" => "uid",
        "firstname" => "givenname",
        "lastname" => "sn",
        "email" => "mail"
    ],
    "password_field" => "userPassword",
    "create_user" => true, // create a new user if it doesn't exists
    "sync_data" => true, // Update user data from ldap on login
    "sync_passwords" => true, // Synchronize passwords
    "validate_certificate" => true, // if this is false LDAPTLS_REQCERT=never will be set.
    "skip_on_error" => true, // try to login with standard UliCMS login if LDAP Login fails
    "log_enabled" => false // Should ldap_login write a log file?
);

Konfigurationsparameter

ldap_host Der Hostname eines LDAP Servers als String oder die Hostnamen mehrerer LDAP Server als Array von Strings

port LDAP Server Port

use_tls Eine verschlüsselte Verbindung nutzen

domain Name der Login-Domäne

user_dn dn für die Anmeldung von Benutzern

Die Platzhalter %user% und %domain% dürfen genutzt werden.

filter_dn dn um die Benutzerdaten eines Benutzers über ein eindeutiges Attribut (Benutzername) abzufragen. Der Platzhalter %user% kann genutzt werden.

search_dn dn des Basis Ordners für filter_dn

field_mapping UliCMS Datenbankfelder auf LDAP Felder mappen

password_field Name des Feldes, welches das Passwort des Benutzers enthält

create_user Soll ldap_login einen Benutzer anlegen, wenn dieser noch nicht existiert?

sync_data Soll ldap_login Benutzerdaten mit dem LDAP synchronisieren?

sync_passwords Soll ldap_login Passwörter mit dem LDAP synchronisieren?

validate_certificate Soll php-ldap das Zertifikat validieren bei Nutzung einer verschlüsselten Verbindung?

Setzen Sie diesen Parameter auf false wenn es Probleme beim Aufbau einer verschlüsselten Verbindung gibt.

skip_on_error Soll ein Fallback auf die interne Loginfunktion von UliCMS erfolgen, wenn der Login per LDAP fehlschlägt?

log_enabled Sollen Logdateien erzeugt werden?
Die Logdateien finden Sie unter ULICMS_ROOT/content/log/ldap_login

Einschränkungen

  • Synchronisation von Benutzerdaten und Passwörtern ist nur in eine Richtung implementiert. (LDAP -> UliCMS)

Fehlerbehebung

Falls Sie sich nicht mehr einloggen können

  • Löschen Sie den "ldap_login" Modul Ordner

oder

  • Führen Sie folgendes SQL aus:
    update {prefix}modules set enabled = 0 where name = 'ldap_login';

um das ldap_login Modul zu deaktivieren.

Changelog

Neu in Version 2.1

  • SQLException, die auftritt, wenn der Vorname, der Nachname oder das E-Mail Feld des LDAP Users leer ist, wurde korrigiert

Neu in Version 2.0

  • Kompatiblität mit UliCMS 2019.3.1

Neu in Version 1.9

  • Kompatiblität mit UliCMS 2019.3

Neu in Version 1.5

  • Kompatiblität mit UliCMS 2018.3
  • Passwort-Synchronisierung in Richtung LDAP deaktiviert, da diese nicht korrekt funktioniert.
  • Wenn ein User per LDAP eingeloggt ist, ist das Ändern des Passworts in der "Profil bearbeiten" Ansicht deaktiviert.

Neu in Version 1.4

  • Kompatiblität mit UliCMS 2018.2

Neu in Version 1.2

  • Neue Option "skip_on_error" hinzugefügt
  • Logging

Neu in Version 1.1

  • FIX: Der Parameter field_mapping wird nun korrekt aus der Konfigurationsdatei gelesen
  • FIX: Escaping von Parametern korrigiert
  • FIX: Funktioniert nun auch mit Active Directory
Don't click this link
Version Kompatibel mit Status
2.1 2020.1 stable Download
2.0 2019.3.1 stable Download
1.9 2019.3 stable Download
1.5 2018.3 stable Download
1.4 2018.2 stable Download
1.2 2017.4 stable Download
1.1 2017.4 stable Download
1.0 2017.4 stable Download
Daumen hoch

0

Daumen runter

0