LDAP Login und Authentifizierung in Odoo einrichten

zentrale Benutzeranmeldung per LDAP in Odoo

Für fast jede webbasierte Softwarelösung benötigt man eine Authentifizierung und somit auch einen eigenen Benutzeraccount. Bei Webdiensten im Internet ist dies unvermeidbar, da jede Webseite von einem unterschiedlichen Anbieter stammt.

In einer Firma lohnt es sich einen zentralen Login für sämtliche Dienste zu schaffen. Das Zauberwort heißt hierbei LDAP und steht für “Lightweight Directory Access Protocol”. Auf Deutsch bedeutet das soviel wie “leichtgewichtiges Verzeichniszugriffsprotokoll” und ermöglicht einen Benutzernamen und ein Passwort für sämtliche Zugänge. Natürlich kann für jeden Mitarbeiter individuell gesteuert werden, auf welche Dienste er Zugriff hat. Die Anlage und Pflege des Benutzeraccounts erfolgt jedoch nur an einer Stelle.

Lesen Sie in diesem Artikel, wie Sie Odoo (ehemals OpenERP) konfigurieren müssen, damit Sie Ihren OpenLDAP-Server für die Zugriffskontrolle von Odoo nutzen können. Es ist dabei egal, ob Sie OpenERP 7, Odoo 8 oder Odoo 9 verwenden. Das Vorgehen ist immer das Gleiche.

Die Idee ist einfach und bestechend. In der Firma gibt es ein zentrales Benutzerverzeichnis. Sämtliche Webdienste nutzen keine eigene Benutzerverwaltung sondern fragen stattdessen beim zentralen Benutzerverzeichnis an. Der Verzeichnisdienst antwortet dem anfragenden Webdienst, ob der Benutzer existiert, ob der Login korrekt ist und über welche Berechtigung der Benutzer verfügt. OpenLDAP ist so ein zentraler Verzeichnisdienst und ist als weit verbreitete OpenSource Lösung auf jedem Linuxserver einfach zu installieren.

Im Folgenden gehe ich davon aus, dass der Verzeichnisdienst die folgende Struktur hat:

  1. Für jeden Benutzer gibt es einen Benutzeraccount. Dieser enthält sämtliche Informationen über die Person. D.h. Name, Position, Abteilung, Telefondurchwahl sowie den Login und das Passwort.
  2. Für jeden Webdienst gibt es eine Benutzergruppe. Nur, wenn ein Benutzer dieser Gruppe zugeordnet ist, darf er den Dienst nutzen.

In der folgenden Grafik ist dies dargestellt. Auf der linken Seite sieht man die verschiedenen Gruppen und die Benutzeraccounts. Auf der rechten Seite sieht man die Details der Gruppe odoo. Man sieht, dass nur die Benutzer admin und cdb auf Odoo zugreifen dürfen. Die anderen Benutzer rdb und ionas haben keinen Zugriff.

LDAP Benutzer und Gruppen

LDAP Benutzer und Gruppen

Wenn man diese LDAP-Struktur in OpenLDAP aufgebaut hat, ist es ein leichtes Odoo entsprechend zu konfigurieren. Es sind lediglich drei Schritte dafür notwendig.

1. Anlage eines Template-Users

Wenn ein Benutzer sich bei OpenERP bzw. Odoo anmeldet, schaut Odoo zuerst in der lokalen Datenbank nach. Wenn dort kein Benutzer gefunden wird, erfolgt die Anfrage bei allen hinterlegten LDAP Servern. Wenn dieser bestätigt, dass der Benutzer existiert und die notwendige Berechtigung besitzt, wird in der lokalen Datenbank von Odoo ein Benutzer ohne Passwort angelegt. Das leere Passwort sorgt auch in Zukunft dafür, dass jeder Loginversuch gegen die LDAP-Datenbank geprüft wird. Trotzdem ist es notwendig, dass in Odoo ein lokaler Benutzer angelegt wird um Objekte einer Benutzer-ID zuordnen zu können.

Somit legt man zuerst einen Template-User in Odoo an. Sämtliche Eigenschaften und Berechtigungen, die dieser Template-User hat, werden automatisch jedem neuen LDAP-User zugeordnet. Seien Sie deshalb vorsichtig, welche Berechtigungen Sie diesem Benutzer zuweisen.

Template-User für LDAP in Odoo

Template-User für LDAP in Odoo

Der Template-User muss übrigens nicht dauerhaft aktiv bleiben. Sobald Sie diesen in Schritt 3 mit LDAP verknüpft haben, können Sie den Template-User in Odoo auf inaktiv setzen.

2. Installation der LDAP-Authentifizierungs App

Als nächstes muss die LDAP-Authentifizierungs App installiert werden. Hierzu sucht man unter Einstellungen / Odoo Apps nach “LDAP”. Es ist wichtig, dass der Suchfilter “Featured” entfernt wird, da sonst die LDAP App nicht gefunden wird. Ein Klick auf “Install” genügt um die App zu installieren. Wenn “Install” ausgegraut ist, dann wurde die App bereits installiert.

Installation der LDAP-Authentification App in Odoo

Installation der App “Authentication via LDAP” in Odoo

3. Konfiguration der Odoo LDAP App

Als letztes folgt nun die Konfiguration der LDAP App in Odoo. Die Einstellungen des LDAP-Servers findet man bei den Unternehmensinformationen im Reiter “Konfiguration”. Man legt einen neuen LDAP-Server an und füllt die entsprechenden Konfigurationsparameter aus.

  • LDAP-Server, Port und Passwort sind selbsterklärend.
  • Die binddn zeigt auf den User, der über die notwendige Berechtigung verfügt auf das LDAP-Verzeichnis zuzugreifen. Dies ist typischerweise der Admin-User.
  • Bei der LDAP base gibt man an, wo im Benutzerverzeichnis die Benutzer zu finden sind.
  • Der LDAP-Filter ist mit Sicherheit das schwierigste Feld. Man kann über diesen Filter definieren, ob sich die Benutzer mit Ihrer E-Mail oder mit Ihrer User-ID anmelden müssen und zu welcher Gruppe die Benutzer gehören müssen. Zwei mögliche Angaben könnten z.B. sein:
    (&(mail=%s)(memberOf=cn=odoo,ou=groups,dc=ionas,dc=lan))
    (&(uid=%s)(memberOf=cn=odoo,ou=groups,dc=ionas,dc=lan))
  • Aktivieren Sie Erzeuge Benutzer
  • Bei Benutzervorlage wird der vorher angelegte Template User ausgewählt.
LDAP-Einstellungsmöglichkeiten in Odoo

LDAP-Einstellungsmöglichkeiten in Odoo

Klicken Sie auf “Schließen” und speichern Sie danach die geänderten Unternehmensdaten. Der LDAP-Server ist damit eingerichtet und jeder zukünftige Loginversuch in Odoo fragt beim LDAP-Server an. Nun wissen Sie auch, wie wir auf dem ionas-Server Home und ionas-Server Small Business die zentrale Benutzerauthentifizierung realisiert haben.

geschrieben von

Christoph Dyllick-Brenzinger

Christoph ist Gründer und Chefentwickler von datamate. Er ist ein absoluter Linux-Fan und hat schon früh seine Leidenschaft für Technik und Programmierung entdeckt. Seine langjährige Erfahrung als Unternehmensberater spürt man regelmäßig, wenn er nach optimalen Lösungen für die Kunden sucht. Wenn er nicht gerade den Tennisplatz unsicher macht oder bei Overwatch sein Liga-Ranking verbessert, verbringt Christoph seine Freizeit mit seiner Frau und seinen drei Kindern.