Zum Inhalt

Benutzer & Gruppen

Die Verwaltung von Benutzern in imperia basiert auf dem Gruppenkonzept. Dieses Konzept hat sich daraus etabliert, dass in einem Unternehmen viele Mitarbeiter ähnliche Aufgaben ausführen und somit die gleichen Zugriffsrechte erhalten müssen.

Eine Gruppe besteht aus einem Satz von verschiedenen Zugriffsrechten. Sie können dem Benutzer eine oder mehrere Gruppe(n) zuweisen. Durch dieses Gruppenkonzept wird die Benutzerverwaltung enorm erleichtert, da so die Erteilung von einzelnen Berechtigungen für Funktionen an neue Benutzer nicht notwendig ist.

Dadurch wird auch die Verwaltung der Zugriffsrechte einfacher: Indem die Rechte der Gruppe verändert werden, werden auch automatisch die Rechte der Benutzer geändert, die der Gruppe angehören.

Die Zugriffsrechte werden auf zwei Ebenen verwaltet:

  • Zugriffsrechte auf Inhalte: Diese Zugriffsrechte sind mit den Rubriken verknüpft und werden über die Rubriken-Verwaltung erteilt.
  • Zugriffsrechte auf Funktionen: Diese Zugriffsrechte sind mit den Funktionen verknüpft, die ein Benutzer ausführen kann, und werden über die Controller-Berechtigungen erteilt.


Gruppenverwaltung#

Die Gruppenverwaltung finden Sie unter System > Gruppen:

Als Systemadministrator sehen Sie dort alle verfügbaren Gruppen, andere Benutzer sehen nur die ihnen zugewiesenen Gruppen. Lesen Sie hierzu auch das Kapitel Gruppe ändern.

Gruppenverwaltung

Sie haben folgende Handlungsmöglichkeiten:

  • Reduzieren Sie die Gruppenliste mit Hilfe eines Filters anhand der Anfangsbuchstaben. Wählen Sie hierzu in der Dropdown-Liste den Eintrag mit den gewünschten Anfangsbuchstaben aus:

    Gruppen filtern

  • Suchen Sie nach bestimmten Gruppen, indem Sie in das Sucheingabefeld Gruppenliste durchsuchen einen Suchbegriff eingeben. Die Suche erfolgt stets in der aktuell angezeigten (möglicherweise gefilterten) Gruppenliste und wird bereits während der Eingabe des Suchbegriffs gestartet.

  • Legen Sie eine neue Gruppe an. Gehen Sie vor, wie unter Gruppe anlegen beschrieben.
  • Sehen Sie sich die Zugriffsrechte einer Gruppe an und bearbeiten Sie diese gegebenenfalls. Gehen Sie vor, wie unter Zugriffsrechte der Gruppe bearbeiten beschrieben.
  • Bearbeiten Sie die Eigenschaften bestehender Gruppen. Gehen Sie vor, wie unter Gruppe bearbeiten beschrieben.
  • Löschen Sie bestehende Gruppen. Gehen Sie vor, wie unter Gruppe löschen beschrieben.

Gruppe anlegen#

Hinweis

Die Anzahl der Gruppen, die erstellt werden kann, hängt von der erworbenen Lizenz ab.

  1. Klicken Sie in der Gruppenverwaltung auf Neue Gruppe anlegen.

    Gruppe anlegen

    Der Detailbereich für die Gruppeneigenschaften öffnet sich unterhalb der Gruppenliste:

    Gruppe anlegen

  2. Tragen Sie den Namen für die Gruppe ein.

  3. Tragen Sie optional einen Kommentar ein, um beispielsweise die Berechtigungen dieser Gruppe zu beschreiben.
  4. Entscheiden Sie unter Gruppenverwaltung einrichten im Bereich Leserechte, wer diese Gruppe sehen darf. Standardmäßig ist die Option jeder aktiviert.
  5. Legen Sie unter Schreibrechte fest, wer diese Gruppe ändern darf. Wenn Sie nur bestimmten Gruppen die Rechte geben möchten, aktivieren Sie den entsprechenden Radio-Button und wählen Sie anschließend in der Dropdown-Liste die gewünschten Gruppen aus.

    Gruppenrechte vergeben

  6. Klicken Sie auf Speichern, um die Einstellungen zu speichern.

Die neu erstellte Gruppe erscheint nun in der Gruppenverwaltung.

Informationen zu weiteren, benutzerübergreifenden Einstellungen finden Sie im Kapitel Systemkonfiguration.


Gruppe bearbeiten#

  1. Klicken Sie in der Gruppenverwaltung auf die gewünschte Gruppe.

    Gruppe bearbeiten

    Zusätzlich zu den Angaben unter Gruppe anlegen können Sie hier einsehen, welchen Benutzern die gewählte Gruppe oder die Superuser-Gruppe zugewiesen wurde.

  2. Greifen Sie optional von hier aus auf die Benutzerdaten zu, indem Sie auf Bearbeiten klicken. Gehen Sie vor, wie unter Benutzer anlegen beschrieben.

  3. Beschränken Sie optional die Anzeige der Listen auf die aktiven Benutzer, indem Sie die Checkbox Nur aktive Benutzer zeigen anklicken.

Zugriffsrechte einer Gruppe bearbeiten#

Im Folgenden erfahren Sie, wie Sie der Gruppe Zugriffsrechte auf die verschiedenen Module des imperia-Systems erteilen. Nähere Informationen finden Sie auch in der Einleitung dieses Kapitels sowie im Kapitel Controller-Berechtigungen.

  • Führen Sie in der Gruppenverwaltung die Option Zugriffsrechte in der Dropdown-Liste hinter der gewünschten Gruppe aus.

    Gruppenrechte

    Im Detailbereich unterhalb der Liste können Sie nun die Zugriffsrechte für die Gruppe vergeben. Hierbei haben Sie zwei Möglichkeiten:

    a. Wählen Sie die einzelnen Module aus und bearbeiten Sie deren Zugriffsrechte für die ausgewählte Gruppe (hier das Beispiel "Rubriken"):

    Gruppenrechte

    Sie werden auf die jeweilige Seite weitergeleitet (hier die Rubrikenverwaltung) und können dort die modulspezifischen Zugriffsrechte für die gewählte Gruppe einstellen:

    Seite "Zugriffsrechte bearbeiten"

    Lesen Sie für die Einstellung der Zugriffsrechte die jeweilige Kapitel der Module.

    b. Klicken Sie auf Auswahl für alle Berechtigungsklassen, um die Zugriffsrechte für alle oder mehrere Berechtigungsklassen (Module) zu setzen.
    Alle Module sind nun ausgewählt.

    Gruppenrechte

    • Setzen Sie die Zugriffsrechte auf bestimmte Klassen, indem Sie die Checkboxen vor den nicht gewünschten Modulen deaktivieren.
    • Berechtigungen von vorhandener Gruppe kopieren:
      • Wählen Sie zuerst die gewünschte Klasse oder alle Klassen aus.
      • Legen Sie die gewünschte Gruppe fest, deren Zugriffsrechte für die Berechtigungsklassen kopiert werden sollen. Klicken Sie hierzu in das Eingabefeld und wählen Sie aus der Dropdown-Liste eine Gruppe aus.
      • Klicken Sie auf Kopieren und bestätigen Sie anschließend die erscheinende Sicherheitsabfrage.
        Eine Zusammenfassung des Vorgangs wird angezeigt.

Gruppe löschen#

Warnung

  • Es wird nicht empfohlen, Gruppen aufgrund der begrenzten Anzahl an lizenzierten Gruppen zu löschen, sondern die bestehenden zu bearbeiten.
  • Aus technischen Gründen werden einmal verwendete Gruppen-IDs nicht freigegeben, wenn Sie die zugehörige Gruppe löschen. Dies bedeutet, dass die Gesamtzahl der Gruppen erhöht wird, auch wenn Gruppen gelöscht werden. Die IDs werden automatisch vom System vergeben.

Hinweis

Wenn eine vorhandene Gruppe gelöscht wird, verlieren alle Benutzer, die diese Gruppe übernehmen können, die damit verbundenen Berechtigungen.

  • Klicken Sie in der Gruppenverwaltung am Ende der Zeile der gewünschten Gruppe auf Löschen.

    Gruppe löschen



Benutzer konfigurieren#

Sie finden die Benutzerverwaltung unter System > Benutzer:

Benutzerverwaltung

Sie haben folgende Handlungsmöglichkeiten:

  • Reduzieren Sie die Benutzerliste mit Hilfe der Filter in den Feldern Nachname, Vorname und Login anhand der Anfangsbuchstaben. Wählen Sie hierzu in der Dropdown-Liste den Eintrag mit den gewünschten Anfangsbuchstaben aus:

    Benutzer filtern

  • Filtern Sie die Benutzerliste nach dem Status der Benutzer (aktiv/inaktiv/alle).

  • Suchen Sie nach bestimmten Benutzern, indem Sie in das Sucheingabefeld Benutzerliste durchsuchen einen Suchbegriff eingeben. Die Suche erfolgt stets in der aktuell angezeigten (möglicherweise gefilterten) Benutzerliste und wird bereits während der Eingabe des Suchbegriffs gestartet.
  • Legen Sie einen neuen Benutzer an. Gehen Sie vor, wie unter Benutzer anlegen beschrieben.
  • Bearbeiten Sie einen bestehenden Benutzer, indem Sie auf den Namen klicken.
  • Löschen Sie einen Benutzer. Gehen Sie vor, wie unter Benutzer löschen bschrieben.

Benutzer anlegen#

Bitte beachten

Der erste Benutzer im imperia-System ist immer der Superuser (mit der ID 1).
Der Superuser ist ein besonderer Fall, da er immer über alle Rechte verfügt und etwaige Zugriffsbeschränkungen keine Auswirkung auf diesen Benutzer haben.

  1. Klicken Sie in der Benutzerverwaltung auf Neuen Benutzer anlegen.

    Benutzer anlegen

    Im Detailbereich rechts werden nun die Felder für die Benutzerdaten angezeigt.

  2. Geben Sie die allgemeinen Benutzerinformationen ein:

    Benutzer anlegen

    • Vergeben Sie unter Benutzername einen Namen für den Benutzer. Mit diesem Namen loggt sich der Benutzer ein.
    • Legen Sie die Gruppenzugehörigkeit fest: Wählen Sie die Gruppen aus, denen der Benutzer angehören soll. Der Benutzer kann nachträglich die Gruppe ändern.
    • Legen Sie ein Passwort fest: Das Passwort muss standardmäßig aus mindestens fünf alphanumerischen Zeichen bestehen. Eine Änderung dieser Einstellung nehmen Sie in der system.config vor.
    • Wiederholen Sie das Passwort. Wählen Sie ein Ablaufdatum für das Passwort aus. Nutzen Sie hierzu die Kalenderfunktion
  3. Fügen Sie persönliche Informationen zu dem Benutzer hinzu:

    Benutzer anlegen

    • Geben Sie Vor- und Nachname des neuen Benutzers ein.
    • Grundsätzlich ist die Systemsprache mit der Standardeinstellung vorbelegt. Lesen hierzu das Kapitel Allgemeine Einstellungen. Diese kann aber hier individuell eingestellt werden. Wählen Sie in der Dropdown-Liste Sprache eine Systemsprache für den Benutzer aus.
    • Tragen Sie die E-Mail-Adresse des Benutzers ein.
  4. Vergeben Sie Rechte für den Benutzer:

    Benutzer anlegen

    • Entscheiden Sie im Bereich Anzeigerechte, wer diesen Benutzer sehen darf.
    • Legen Sie unter Schreibrechte fest, wer die Benutzerdaten ändern darf. Wenn Sie nur bestimmten Gruppen die Rechte geben möchten, aktivieren Sie den entsprechenden Radio-Button und wählen Sie anschließend in der Dropdown-Liste die gewünschten Gruppen aus.
  5. Legen Sie den Status des Benutzerprofils fest:

    • Mit der Option Aktiv können Sie das Profil des Benutzers (de)aktivieren (nur als Superuser). Lesen Sie hierzu auch das Kapitel Benutzer löschen.
  6. Klicken Sie auf Speichern, um die Einstellungen zu speichern.

Der Benutzer ist nun im System angelegt und erscheint auch in der Benutzerverwaltung.

Lesen Sie für weitere, benutzerübergreifende Einstellungen auch im Kapitel Systemkonfiguration weiter.


Benutzer löschen#

Warnung

  • Dokumente speichern die ID des letzten Autors.
  • Aus technischen Gründen werden einmal verwendete Benutzer-IDs nicht freigegeben, wenn Sie den Benutzer löschen. Dies bedeutet, dass die Gesamtzahl der Benutzer erhöht wird, auch wenn der Benutzer gelöscht wurde. Die IDs werden automatisch vom System vergeben.
  • Falls ein Benutzer gelöscht wird, ist es nicht erlaubt, seinen Namen wiederzuverwenden!
  • Die bevorzugte Alternative zum Löschen ist die Deaktivierung, siehe Checkbox "Aktiv" im Abschnitt Benutzer anlegen.

  1. Klicken Sie in der Benutzerverwaltung am Ende der Zeile des gewünschten Benutzers auf Löschen.

    Benutzer löschen

  2. Bestätigen Sie die erscheinende Sicherheitsabfrage.

Hinweis

Ein Löschen eines Benutzers kann nicht über die Benutzeroberfläche rückgängig gemacht werden; dies gilt auch für den Superuser! Dies ist theoretisch über die Ebene des Dateisystems möglich.



LDAP/Verzeichnisdienste#

LDAP steht für "Lightweight Directory Access Protocol" und ist im Wesentlichen eine verteilte Datenbank im Netzwerk, basierend auf dem Client-/Server-Prinzip.
Eingesetzt wird es vor allem für die Authentifizierung, Verwaltung von Benutzerdaten sowie Autorisierung.
Ein LDAP-Client öffnet dabei eine Verbindung zu einem LDAP-Server und ruft oder liefert Informationen ab, die in die Liste aufgenommen werden sollen.

Die Vorgehensweise wird durch das Protokoll (derzeit Version 3 von LDAP) bestimmt. In diesem Zusammenhang wird LDAP auch als X.500 Lite bezeichnet. X.500 ist ein internationaler Standard für Verzeichnisse, aber mit einem viel komplizierterem Aufbau als bei LDAP.

Um LDAP in imperia zu verwenden, muss das LDAP-Perl-Modul Net::LDAP installiert werden. Sie können es bei http://www.cpan.org/ oder http://perl-ldap.sourceforge.net/ herunterladen. In einigen Linux-Distributionen ist es bereits vorhanden, muss aber installiert werden.

Das Thema "Datenbank" wurde unter anderem im Kapitel Dokumentenhaltung bereits behandelt. Daher werden im Folgenden die LDAP-Eigenschaften mit den Eigenschaften von Datenbanken und Dateisystemen verglichen:

Eigenschaft LDAP Datenbanken und Dateisysteme
Lese-, Schreibzugriff LDAP definiert Inhalt entsprechend des Lesezugriffs.


LDAP verfügt über keine Transaktionsmechanismen.
Datenbanken bieten beide Optionen, um den Lese- (z. B. MySQL) oder Schreibzugriff (Oracle) zu optimieren.

Bei Datenbanken ist so ein Transaktionsmechanismus oft ein wichtiger Sicherheitsaspekt in Bezug auf Datenverlust.
Datenstruktur Die Datenspeicherung wird für LDAP sowie Datenbanken durch eine Baumstruktur abgebildet. Dateien werden als Nodes im Baum abgebildet und können mehrere Giga- oder Megabyte besitzen.

LDAP ist jedoch dafür ausgelegt, dass ein Knoten einen ziemlich kleinen Speicher benötigt wie Benutzerdaten, die in den meisten Fällen ein Megabyte nicht überschreiten.
Datenzugriff innerhalb eines Nodes Mit LDAP ist ein direkter Zugriff auf separate Bytes nicht möglich, da die kleinste Lese- und Schreibeinheit das Attribut ist, das sich später erweitert. Bei Dateisystemen ist ein direkter Zugriff auf separate Bytes möglich. Dies bedeutet, dass das Byte die kleinste Lese- und Schreibeinheit in einem Dateisystem ist.
Gruppen- und Benutzerverwaltung Zusätzlich zur Gruppen- und Benutzerverwaltung bietet imperia die Möglichkeit, eine Verbindung zu einem LDAP-System herzustellen... ...dies ermöglicht den Einsatz einer vorhanden Gruppen- und Benutzerdatenbank in imperia. In diesem Fall wird die Verwaltung und Pflege dieses Verzeichnisses nicht mehr von imperia durchgeführt.

Hinweis

Es gibt verschiedene Plug-ins für die Benutzerverwaltung, die man unter site/modules/core/Dynamic/Authenticator einsehen kann.


Einschränkungen#

Mit der Integration des LDAP-Verzeichnisdienstes werden einige Features der imperia-Standardpakete eingeschränkt:

  • Die Verwaltung und Pflege von Gruppen- und Benutzerinformationen in imperia kann nicht mehr vollständig durchgeführt werden.
  • Mit einer LDAP-Verbindung wird die transitive Gruppenstruktur nicht aufgelöst wie bei der Benutzerverwaltung von imperia. Dies ist in Bezug auf die meisten Verzeichnisdienste irrelevant, da sie die transitive Gruppenverwaltung selbst lösen. Die Zugriffs- und Änderungsberechtigungen für andere Benutzer ändern sich nicht innerhalb der ersten LDAP-Implementierung.
    Das bedeutet, dass der Lesezugriff auf Benutzer und Gruppen für einen einzelnen Benutzer nicht verweigert werden kann.
  • Bei der Verwendung von ActiveDirectory unterstützt der LDAP-Server für Microsoft® derzeit nur eine Windows®-Domäne.

Verbindung zu einem Verzeichnisdienst#

Es gibt zwei Möglichkeiten, einen Verzeichnisdienst mit imperia zu verbinden:

  • imperia-Konto:

    • Diese Prozedur gewährt dem imperia-Server einen eigenen Zugriff auf einen Verzeichnisdienst, über den er Benutzer- und Gruppeninformationen lesen kann.
    • Informationen über einen Benutzer, die imperia benötigt, aber nicht im Verzeichnisdienst gespeichert werden können, werden im Dateisystem des imperia-Servers gespeichert.
  • Benutzerkonto:

    • Bei dieser Methode verwendet imperia den Zugriff eines angemeldeten Benutzers, um eine Verbindung mit einem Verzeichnisdienst herzustellen.
    • Dies garantiert, dass jeder Benutzer die Informationen sehen kann, auf die er aufgrund seines Kontos zugreifen kann.
    • Der Nachteil ist, dass sich der Benutzer jedes Mal anmelden und imperia das Passwort in einem Cookie speichern muss. Dies birgt ein gewisses Sicherheitsrisiko - trotz der Kodierung.

imperia-Login#

Es gibt mehrere Methoden, um sich über eine LDAP-Verbindung in imperia anzumelden:

  • Passwort:

    • Dies ist das Standard-imperia-Plug-in für die Authentifizierung.
    • In diesem Fall ist ein imperia-Konto erforderlich, um eine Verbindung zum Verzeichnisdienst herzustellen.
    • Zudem muss in der LDAP-Konfiguration ein Passwortfeld angegeben werden. Wenn dieses codiert im LDAP-Server gespeichert wird, muss die LDAP-Konfiguration password-encryption-Schlüsselwort entsprechend gesetzt werden.
  • Kerberos:

    • Wenn ein Benutzer bei einem Kerberos-Server angemeldet ist, kann er sich automatisch über das Kerberos-Plug-in über das entsprechende Ticket anmelden.
    • Dieses Plug-in erfordert eine Programminstallation auf dem Client, die Bestandteil des Lieferpakets von imperia ist.
      Es handelt sich um das Skript

      site/bin/kerberos_login.pl

    • Wenn das Programm gestartet wird, werden Benutzer in imperia angemeldet, ohne Benutzernamen und Passwort eingeben zu müssen. Wenn der imperia-Anmeldebildschirm aufgerufen wird, werden die Benutzer automatisch in das Menü umgeleitet. Das Kerberos-Plug-in funktioniert nur mit der Verbindung über ein imperia-Konto, um sich mit einem Verzeichnisserver zu verbinden.

  • LDAP:

    • Dies ist das primäre Authentifizierung-Plug-in für den Verzeichnis-Zugriff auf imperia.
    • Ein Benutzer tippt sein Passwort für den Verzeichnisdienst ein, um sich bei imperia anzumelden.
    • Zudem können die Anforderungsdaten auch so konfiguriert werden, dass sie entweder mit dem Benutzerkonto oder einem Standard-imperia-Konto gestartet werden.

Voraussetzungen für LDAP#

Folgende Konfigurationen werden für LDAP vorausgesetzt:

Die Konfiguration der LDAP-Verbindung muss in zwei Dateien manuell umgesetzt werden:

  • In der Datei /site/config/system.conf sowie

  • in der Datei /site/config/ldap.conf:

system.conf#

Folgende Variablen müssen hier gesetzt werden:

"UMLIGHT_PLUGIN" = "LDAPLight"
"DATABASE_STORAGE_PLUGIN" = "LDAP"

Optional kann ebenfalls das Plug-in für die Authentifizierung gesetzt werden (LDAP, Kerberos, etc.):

"AUTH_PLUGIN" = "LDAP"

ldap.conf#

In dieser Konfigurationsdatei müssen die Informationen für den Verzeichnisdienst und den LDAP-Zugriff sowie imperias Zugriff auf den Verzeichnisdienst gesetzt werden. Seit imperia 9.1 kann der Umfangswert ebenfalls konfiguriert werden.

Hinweis

Im Abschnitt LDAP.conf-Beispiel finden Sie Beispiele für die Konfiguration der PAM- und ADIR-Schemen.

Einige Hintergrundinformationen zur Datenstruktur eines LDAP-Verzeichnisses erhalten Sie auch auf Wikipedia (Stand: Okt. 2017). Auch werden dort die Attribute beschrieben:

  • Jedes Attribut eines Objekts hat einen bestimmten Typ und einen oder mehrere Werte.
  • Die Typenbezeichnungen der Attribute sind meist einfach zu merkende Kürzel wie zum Beispiel cn für common name, ou für organizational unit, st für state, c für country oder mail für e-mail address.

Informationen zum Verzeichnisdienst#
server        ldap.server.net
port          1234
version       3

Wenn die Variable version nicht gesetzt ist, wird automatisch die LDAP-Protokollversion 3 verwendet.

Informationen zum LDAP-Zugriff#

Informationen über den LDAP-Zugriff, mit denen imperia auf den Verzeichnisdienst zugreift, sind optional, falls das anonymous account nicht genügend Leseberechtigung hat, um einen imperia-Benutzer zu identifizieren. Für einen weiteren Zugriff außerhalb der Identifizierungsphase unterstützt die LDAP-Verbindung zwei weitere Methoden.

bind_dn       cn=Admin, 0=Imperia
password      secret
  • Wenn ein imperia-Benutzerpasswort gesetzt ist, wird es verwendet, um die Benutzer- und Gruppeninformationen aus dem Verzeichnisdienst auszulesen.

  • Wenn das imperia-Benutzerpasswort nicht gesetzt ist, wird das LDAP-Konto oder ein anonymous account verwendet.

Hinweis

Falls LDAP-Benutzer ihren eigenen Datensatz nicht sehen können, gibt es die Möglichkeit, einen administrative Account als Variable in die LDAP.Config setzen (mögliche Werte sind admin, user):

bindmode = admin

So wird der Administrative Account zum Laden der Benutzerinfo aus dem LDAP verwendet.

Liste der Benutzer-Container#

Das ist eine Liste der Container aus dem Verzeichnisdienst, in denen die möglichen Benutzer enthalten sind:

user_dn_1     ou=Development, o=Imperia, c=de
user_dn_2     ou=Sales, o=Imperia, c=de
user_dn_3     ou=Distribution, o=Imperia, c=de

Damit die Suche innerhalb eines Containers wirksam ist, ist sie auf eine Ebene begrenzt. Im oben genannten Beispiel reicht es also nicht aus user_dn_1, o=Imperia, c=de einzugeben.

Hinweis

Man kann in der LDAP.conf allerdings scope auf subtree setzen.

Liste der Benutzer-Attribute#

Diese Liste enthält alle Benutzerattribute, die im Verzeichnisdienst gespeichert sind. Definieren Sie die Namen, unter denen die Attribute gespeichert sind.

USERFIELDS
id *            uid
login *         cn
name            sn
comment         description
fname           fn
password        userPassword
telnumber       telephonenumber
END_USERFIELDS

Die Attribute werden als eine Liste zwischen den Keywords USER FIELDS und END_USERFIELDS eingeklammert. Die mit einem Asterisk markierten Felder (login und uid) werden als Pflichtfelder deklariert.

Stellen Sie sicher, dass die Textdarstellung des LDAP-Attributs für id eine positive Zahl ist und das login-Feld für den imperia-Benutzer eindeutig ist.

Abgesehen von der id können die folgenden von imperia definierten Daten-Eingabefelder von Benutzern als Attribute gesetzt werden:

name         comment       fname
login        password      language
homepage     addlinkmenu   addtextmenu
adddescmenu  addtexticon   bgcolor
street       city          zip
country      telnumber     cellular
faxnumber    background    email

Felder, die nicht im Verzeichnisdienst gespeichert werden können, werden im Dateisystem des imperia-Servers gespeichert.

Falls nicht das ursprüngliche Passwort anstelle des Passworts des LDAP-Plug-ins verwendet wird, wird imperia das Passwort-Feld nicht wirklich verwenden. Setzen Sie in diesem Fall auch eine Passwortverschlüsselung, siehe Informationen zum LDAP-Zugriff.

Bitte beachten

  • Anstelle einer eindeutigen numerischen Benutzer- oder Gruppen-ID werden im Verzeichnisdienst von Microsoft® (ActiveDirectory) die sogenannten binären SIDs verwendet. Diese werden grundsätzlich von imperia akzeptiert, allerdings muss dabei das ADIR-Gruppierungsschema gesetzt sein.
  • imperia erfordert, dass die jeweiligen RIDs und SIDs innerhalb der angenommenen imperia-Benutzerrollen eindeutig sind.

Kennwortverschlüsselung#

Diese Einstellung wirkt sich nur auf das Standard-Authentifizierung-Plug-in "Passwort" aus:

password-encryption `none`

Derzeit sind die Methoden none undMD5 implementiert.

Kennwortcodierung#

Um einen LDAP-Server zu registrieren/verbinden, ist vor der Übertragung eine Kennwortcodierung erforderlich, da sie nicht im Klartext übertragen werden kann.

password-encoding    SASL

Die implementierten Standardprozesse sind none undSASL. Zur Verwendung von SASL benötigen Sie LDAP-Protokoll-Version 3.

LDAP-Filter zur Identifikation von Benutzern#

Dieser Filter wird verwendet, um die in imperia vorhandenen und somit "gültigen" Benutzer zu identifizieren.

valid_user      (&(objectclass=Person))

Objekte (DIT), die diese erste Bedingung erfüllen, werden als imperia-Benutzer erkannt.

Liste der Gruppen-Container#

Das ist eine Liste aller Container aus dem Verzeichnisdienst, in denen die möglichen Gruppen enthalten sind:

group_dn_1      ou=Roles, o=Imperia, c=de

Hier können die Felder id,name und comment gesetzt werden. Das id-Feld ist dabei das einzige Pflichtfeld und muss numerisch sein.

Bitte beachten

Bei der Verwendung von ADIR-Gruppierungsschemata gilt die gleiche Ausnahme wie bei der UID.

Liste der Gruppen-Attribute#

Dies ist eine Liste aller Gruppen-Attribute, die im Verzeichnisdienst gespeichert sind. Diese Liste muss wie die Liste der Benutzer innerhalb von Tags eingegeben werden:

GROUPFIELDS
id           gid
name         name
comment      description
END_GROUPFIELDS
LDAP-Filter zur Identifikation von Gruppen#

Dieser Filter wird verwendet, um die in imperia vorhandenen und somit "gültigen" Gruppen zu identifizieren.

valid_group       (&(objectclass=Group))

Objekte, die diese Bedingung erfüllen, werden als imperia-Gruppen erkannt.

Gruppierungsschema#

Die Gruppen, die ein Benutzer annehmen kann, müssen in imperia sichtbar sein. Bei den Verzeichnisdiensten gibt es keinen einheitlichen Standard. Daher unterstützt imperia - vorläufig - das PAM-Schema.

grp_scheme     PAM

In diesem Zusammenhang enthalten Gruppen ein memberuid im Attribut (welches multivalued ist) und uid des Benutzers, dem sie angehören (Achtung! Nicht die uidnummer). Im Gegensatz dazu besitzen Benutzer kein Attribut, das alle Gruppen enthält, die sie annehmen können. Die Hauptgruppe der Benutzer, unter der die memberuid gesetzt werden muss, wird allerdings im Benutzerdatensatz unter gidnummer nicht abgebildet.

Gruppe Superuser#

imperias Superuser-Gruppe (standardmäßig die Gruppe mit der ID 0) kann bei der Verwendung von LDAP-Plug-ins einem Benutzer als Gruppe zugeteilt werden.

superuser_group       cn=cvs, ou=Roles, o=Imperia, c=de

Benutzer, die sich mit dieser Gruppe anmelden, besitzen alle Zugriffsrechte dieser Superuser-Gruppe.

Superuser-Zugriff#

Bitte beachten

Diese Einstellung wirkt sich nur auf das LDAP-Authentifizierung-Plug-in aus.

Die Verwaltung eines Superusers, der in imperia erstellt wurde, kann nicht über einen im Verzeichnisdienst erstellten Benutzer erfolgen. Trotzdem muss der Superuser einem Benutzer im Verzeichnisdienst zugeordnet werden. Dies geschieht auf folgende Weise:

superuser       cn=tgier, ou=People, o=Imperia, c=de

Wenn sich ein Benutzer als Superuser anmeldet, wird das eingegebene Passwort mit den Anmeldeinformationen des angegebenen DN-Eintrags verglichen und ein temporärer Benutzer mit der ID 1 wird erstellt.

Benutzerzugriff#

Bitte beachten

Diese Einstellung wirkt sich nur auf das LDAP-Authentifizierung-Plug-in aus.

Wenn diese Variable gesetzt ist, stellt das LDAP-Authentifizierung-Plug-in eine Verbindung zum Verzeichnisdienst bei jedem CGI-Aufruf von einem Benutzer her.

userbind      yes

Zum Verständnis: Wenn diese Variable weggelassen wird (0), übernimmt imperia die gesamte Information aus dem Verzeichnisdienst über den konfigurierten Administratorzugriff.

Schreibzugriff#

Der Schreibzugriff auf den Verzeichnisdienst über LDAP wird durch die Einstellung der folgenden Variablen verhindert:

readonly      yes

imperia als Front-End für einen LDAP-Verzeichnisdienst#

Bitte beachten

Diese Funktion wird derzeit entwickelt.

Wenn imperia als Front-End für einen LDAP-kompatiblen Verzeichnisdienst verwendet werden soll, sind folgende Einstellungen erforderlich:

RDN-Attribut für einen neuen Benutzer eingeben#
user_rdn_attribute       cn
Objektklassen eines neuen imperia-Benutzer#
OBJECTCLASSES_USER
top
person
ImperiaUser
END_OBJECTCLASSES_USER
RDN-Attribut für eine neue Gruppe eingeben#
group_rdn_attribute      cn
Objektklassen einer neuen imerpia-Gruppe#
OBJECTCLASSES_GROUP
top
posixGroup
END_OBJECTCLASSES_GROUP

LDAP.conf-Beispiel#

Im Folgenden erhalten Sie Beispiele von LDAP.conf für die PAM- und ADIR-Gruppierungsschemen.

PAM#

## Servername and IP address for LDAP server.
serverldap.imperia.net
port389

## DN and password from ldap administrator
## None if we are using the Anonymous Binding.
##bind_dn "cn=Admin, o=intern"
##password superuser

## Container for user entries and attribute for RDN. So the DN of every
## user have the form
## "user_rdn_attribute=value_of_user_rdn_attribute, user_dn"
user_dn_1 ou=People, o=Imperia, c=de
##user_dn_2 ou=Sales, o=intern
##user_dn_3 ou=Purchase, o=intern
##user_dn_4 ou=Marketing, o=intern
##user_dn_5 "ou=Distribution, o=intern"
user_rdn_attribute cn

## Timelimit for search operations
timelimit 0

## Setting attributes for imperia user.
USERFIELDS
id uidnumber
name cn
login uid
END_USERFIELDS
valid_user (gidnumber=100)

## Setting objectclasses an imperia user belongs to.
##OBJECTCLASSES_USER
##top
##account
##posixAccount
##shadowAccount
##person
##organizationalPerson
##inetOrgPerson
##END_OBJECTCLASSES_USER

## Setting attribute for imperia groups
GROUPFIELDS
id gidnumber
name cn
comment cn
END_GROUPFIELDS

##
group_dn_1 ou=Groups, o=Imperia, c=de

valid_group (gidnumber>=0)

## Setting objectclasses an imperia group entry belongs to.
##OBJECTCLASSES_GROUP
##top
##posixGroup
##END_OBJECTCLASSES_GROUP

grp_schemePAM
superuseruid=tomg, ou=People, o=Imperia, c=de

ADIR#

## Servername and IP adress for LDAP server.
serverwindb
port389

## DN and password from ldap administrator
## None if we are using the Anonymous Binding.
bind_dn Administrator@activetest.hyper
password xxxxxxx

## Container for user entries and attribute for RDN.
user_dn_1 CN=Users,DC=activeTest,DC=hyper
user_rdn_attribute cn

## Timelimit for search operations
timelimit 0

## Setting attributes for imperia user.
USERFIELDS
id objectSid
name displayName
login cn
END_USERFIELDS

valid_user (objectclass=user)

## Setting objectclasses an imperia user belongs to.
##OBJECTCLASSES_USER
##END_OBJECTCLASSES_USER
## Setting attribute for imperia groups
GROUPFIELDS
id objectSid
name cn
comment description
END_GROUPFIELDS

##
group_dn_1 CN=Users,DC=activeTest,DC=hyper
group_dn_2 CN=Builtin,DC=activeTest,DC=hyper
valid_group (objectclass=group)

## Setting objectclasses an imperia group entry belongs to.
##OBJECTCLASSES_GROUP
##END_OBJECTCLASSES_GROUP

grp_schemeADIR
superuser CN=Administrator,CN=Users,DC=activeTest,DC=hyper
superuser_group CN=DomainAdmins,CN=Users,DC=activeTest,DC=hyper
##userbind1

Authentifizierung über HTTP#

Das Basic-Plug-in ist eine alternative Authentifizierungsmethode. Es unterscheidet sich von anderen Authentifizierungsmethoden in zweierlei Hinsicht:

  • Die Authentifizierung erfolgt ohne Cookies.
  • Die Authentifizierung von imperia wird überschrieben.

Stattdessen übernimmt der Webserver die Benutzerauthentifizierung. Erfolgreich registrierte Benutzer erhalten Zugang zum CMS.

Wichtig

Bei der HTTP-Authentifizierung können Passwörter nicht über den Menüpunkt Profil geändert werden.

Die Autorisierung der angemeldeten Benutzer erfolgt dennoch über die Benutzer- und Gruppenverwaltung des Systems. Ein Benutzer muss daher in imperia existieren, um das System zu nutzen.

Ein authentifizierter Benutzer hat keine Rechte im System ohne das imperia-Benutzerprofil. Er hat nur Zugang zu dem Menüpunkt Profil und dem internen Mailsystem.

Konfiguration#

Um die HTTP-Authentifizierung zu verwenden, muss folgendes durchgeführt werden:

  1. Stellen Sie das Verzeichnis cgi-bin in Ihrer Webserverkonfiguration als bereichsgeschützten Bereich ein. Gehen Sie dazu die in der Dokumentation Ihres Webservers beschriebenen notwendigen Schritte durch.

    Bitte beachten

    Beachten Sie, dass imperia die Autorisierung basierend auf den vom Webserver übergebenen Benutzerdaten ausführt. HTTP-Authentifizierungsdaten und imperia-Benutzerprofile müssen daher übereinstimmen, damit den Benutzern die entsprechenden Berechtigungen zugewiesen werden können.

  2. Umgehen Sie imperias Standard-Login-Seite (htdocs/imperia/index.html) in der HTTP-Authentifizierung:

    • Diese Seite sollte nicht mehr zugänglich sein.
    • Stattdessen sollte das site_main.pl-Skript direkt im Verzeichniscgi-bin aufgerufen werden.
    • Bei der Verlinkung von einer anderen Seite zum CMS sollten die Referenzen entsprechend angepasst werden.
      • Beispielsweise können Sie ein HTML-Dokument mit einem Verweis auf das site_main.pl-Skript im Verzeichnis cgi-bin erstellen.
      • Benennen Sie die Datei entsprechend um, so dass sie automatisch aufgerufen wird, wenn jemand auf den Entwicklungsserver zugreift.
      • Setzen Sie dieses Dokument in die Dokumentenwurzel Ihres Entwicklungssystems.
  3. Aktivieren Sie die HTTP-Authentifizierung in imperia: Suchen und ersetzen Sie hierfür die AUTH_PLUGIN-Variable im Verzeichnis site/config und ändern Sie sie zu:

    "AUTH_PLUGIN" = "Basic"
    

    Wichtig

    Es ist möglich, die HTTP-Authentifizierung auf dem Webserver für die übliche imperia-Anmeldung im Voraus zu ermöglichen. In diesem Fall müssen sich die Benutzer auch über die imperia-Authentifizierung anmelden. Wenn das cgi-bin-Verzeichnis nicht passwortgeschützt ist, ist die Anmeldung zum System nicht möglich, da die Daten des HTTP-Headers nicht mit dem Webserver verglichen werden können.

ERGEBNIS: Beim Zugriff auf site_main.pl erscheint dann eine Anmeldeaufforderung auf dem Webserver. Das imperia-Menü erscheint nach der erfolgreicher Authentifizierung.

Authentifizierung via OpenID Connect#

Seit imperia 11 ist es möglich sich mit einer Google-Mail-Adresse in imperia zu authentifizieren. Erfahren Sie im nächsten Abschnitt, wie Sie die die OpenID Connect-Authentifizierung einrichten.

Konfiguration#

Um die Authentifizierung via OpenID Connect zu verwenden zu können, müssen Sie folgende Schritte befolgen.

  • Richten Sie sich einen Google-Account ein und loggen Sie sich in der Developer-Konsole unter https://console.developers.google.com/ ein.
  • Legen Sie hier ein neues Projekt an. In der oberen linken Ecke, neben dem Google-Logo, sehen Sie einen Button mit Ihrem aktuellen Projekt und einen Pfeil nach unten. Klicken Sie auf den Pfeil. Es öffnet sich nun ein Popup-Fenster.

OAuth Projekt auswählen

  • Klicken Sie nun auf "Neues Projekt"
  • Wählen Sie einen geeigneten Namen für das Projekt (z.B.: "imperia")
  • Wählen Sie nun Ihr angelegtes Projekt aus
  • Jetzt wählen Sie im linken Menü "OAuth Consent Screen".
  • Hier wählen Sie "External" aus und klicken auf "CREATE"
  • Nun müssen Sie noch auswählen, welche Informationen dem/der Nutzer/Nutzerin beim Login angezeigt werden sollen und tragen Sie den App-Namen sowie die Benutzer-Support-Mailadresse ein.

OAuth Consent Screen

  • Überspringen Sie den Schritt "Scopes" und "Test user" und klicken Sie auf "SAVE AND CONTINUE"
  • Klicken Sie in der linken Menüleiste auf "Credentials" und wählen Sie im Select "+ CREATE CREDENTIALS" die OAuth ID" option aus.

OAuth Client ID

In unserem Beispiel haben wir "http://localhost:2506/imp/oauth/google" als "Authorised redirect URIs" hinzugefügt. Wenn Ihre URL beispielsweise "http://my.company.com/imp", lautet, würden Sie "http://my.company.com/imp/oauth/google" hinzufügen.

OAuth URL

  • Im nächsten Schritt erscheint ein Pop-Up-Fenster mit der "Client ID" und dem "Client secret". Diese Informationen können Sie auch in Ihrem Projekt unter "Credentials" finden.
  • Tragen Sie nun die Credentials in die System.conf ein.

Beispiel

    OAUTH_GOOGLE_CLIENT_ID = [YOURCREDENTIALS]-[YOURCREDENTIALS].apps.googleusercontent.com
    OAUTH_GOOGLE_CLIENT_SECRET = -hRJ4ydTEbncoyHDcwXQ0dkfdksfxkJ

Mit dem site/bin-Skript admin_adduser.pl können Sie nun User mit den entsprechenden Gmail-Adressen hinterlegen:

bin/admin_adduser.pl login:openauth2\.demo\@gmail.com fname:OAuth2Demo name:OAuth2Demo password:OAuth2Demo

Jetzt können Sie sich mit Ihrem Google-Login anmelden.

OAuth login

Die Login-ID erscheint nun in imperia:

OAuth login id