Benutzerverwaltung

Übersicht

Die Benutzerverwaltung fasst Anwender mit demselben Anforderungsprofil zu Benutzergruppen zusammen, wie zum Beispiel "Administratoren", "Interne Benutzer" oder "Externe Benutzer":

Mit der Benutzerverwaltung erhöhen Sie auch die Sicherheit Ihres Host-Zugangs, da sich Ihre Anwender bereits am vorgeschalteten LogWeb/Ajax Server identifizieren müssen. Dieser arbeitet jetzt nicht nur als "Application Firewall" vor Ihren Host Systemen, sondern filtert auch unberechtigte Login-Versuche aus.

In der Auslieferung ist standardmäßig eine "leere Benutzerverwaltung" konfiguriert, die Sie für Ihre ersten Tests sofort verwenden können:

Für den produktiven Einsatz haben Sie folgende Alternativen:

Bitte beachten Sie dabei:

Wie auch immer Sie sich entscheiden: Wir beraten Sie gerne und unterstützen Sie bei eventuell notwendigen Anpassungen!

Beispiel-Konfigurationen

Die Auslieferung enthält im Verzeichnis

userdb

Beispiele zur Definition von Benutzer- und Gruppendateien, die Sie durch Angabe der entsprechenden Grundeinstellungen aktivieren:

Die gemeinsamen Vorlagen-Verzeichnisse für diese Beispiele liegen auf userdb/data:

UserData = userdb/data/userdata
GroupData = userdb/data/groupdata

Bitte beachten Sie:

Grundeinstellungen: Format und Pfade

Die Grundeinstellungen zur Benutzerverwaltung geben Sie in der zentralen Konfigurations-Datei WEB-INF/ajax.ini an:

Parameter Bedeutung
UserDatabase Bestimmt das Format der Benutzerverwaltung:
  • Voreinstellung: file
    Die speziellen LOG-WEB Attribute werden bei Bedarf an den LOG-WEB Server weiter gereicht.
    Der Anmelde-Name wird nur "als Kommentar" an den LOG-WEB Server weitergereicht
  • Alternative: logweb
    Nur die Angaben Group, Password, ChangePassword und alle mit einem "Unterstrich" _ beginnenden allgemeinen Attribute werden den LOG-WEB Benutzerdateien entnommen; alle weiteren Angaben werden ignoriert.
    Der Anmelde-Name wird an den LOG-WEB Server zur Prüfung weitergereicht
  • Alternative: ldap
    Alle allgemeinen Attribute werden dem Gruppen-Profil entnommen.
UserProfiles Verzeichnis-Pfad zu den Benutzer-Profilen USER.ini
  • Voreinstellung: userdb/empty/users
  • Kann auch außerhalb der Web-Anwendung liegen
  • Für UserDatabase = logweb muss hier der Pfad auf das LOG-WEB Benutzer-Verzeichnis angegeben werden, beispielsweise c:/logweb73/server/config/user
  • Für UserDatabase = ldap wird diese Einstellung nicht ausgewertet
GroupProfiles Verzeichnis-Pfad zu den Gruppen-Profilen GROUP.ini

Bitte beachten Sie, dass Änderungen an dieser Datei erst nach einem Neustart der Web-Anwendung wirksam werden. Die Profil-Dateien für Benutzer und Gruppen können Sie dagegen auch "im laufenden Betrieb" anlegen, ändern oder löschen.

Auch wenn Sie keine Benutzerverwaltung benötigen, die LOG-WEB Benutzerverwaltung verwenden oder eine andere externe Benutzerverwaltung einbinden wollen, müssen Sie die Pfade zu den Benutzer- und Gruppen-Profilen angeben, weil dort dann ersatzweise Pseudo-Dateien zur genaueren Steuerung gesucht werden.

Bitte beachten Sie bei der Angabe der Verzeichnis-Pfade:

Attribute für Anwender und Gruppen

Einige wenige Attribute dürfen Sie nur in Benutzerdateien oder nur in Gruppendateien angegeben. Die meisten Eigenschaften jedoch können Sie sowohl für einzelne Anwender als auch für ganze Benutzergruppen vergeben:

Eigenschaft Bedeutung
_WriteUser Gibt an, ob der Benutzer schreibenden Zugriff auf sein Benutzer-Verzeichnis hat.
  • Voreinstellung: false
  • Alternative: true
  • Unabhängig von dieser Angabe kann der angemeldete Benutzer seine eigenen Benutzer-Verzeichnisse immer lesen
  • Fehlende Verzeichnisse werden beim Schreiben automatisch angelegt
_WriteGroup Gibt an, ob der Benutzer schreibenden Zugriff auf sein Gruppen-Verzeichnis hat.
  • Voreinstellung: false
  • Alternative: true
  • Unabhängig von dieser Angabe kann der angemeldete Benutzer seine eigenen Gruppen-Verzeichnisse immer lesen
  • Fehlende Verzeichnisse werden beim Schreiben automatisch angelegt
ChangePassword Gibt an, ob der Benutzer sein Passwort anlegen, ändern und löschen darf.
  • Voreinstellung: false
  • Alternativen: true, Yes
  • Das Passwort wird verschlüsselt im Benutzer-Profil als Attribut Password gespeichert
  • Unabhängig von dieser Angabe kann der Administrator jedes Passwort löschen oder ändern
_ChangeGroup Gibt an, ob der Benutzer seine Gruppenzugehörigkeit beim Sitzungs-Start ändern darf.
  • Voreinstellung: false (Gruppenwechsel wird nicht akzeptiert)
  • Alternative: true (Gruppenwechsel wird akzeptiert)
  • Die Angabe erleichtert die Administratoren die Bearbeitung von Vorlagen und Makros beliebiger Benutzergruppen
  • Die Angabe ist notwendig, wenn eine externe Benutzerverwaltung auch die Gruppen-Zugehörigkeit festlegt

Für spezielle Fälle können Sie noch folgende Attribute vergeben:

Eigenschaft Bedeutung
_CookieMaxAge Legt die Gültigkeitsdauer des login-Cookies fest (Angabe in Sekunden).
  • < 0: Cookie gilt nur für die aktuelle Browsersitzung (Voreinstellung)
  • = 0: login-Cookie wird nicht verwendet
  • > 0: Gültigkeitsdauer in Sekunden (z.B. 64800 für 18 Stunden)
Voreinstellung: -1 ("Session Cookie verwenden")
_UseSessionID Legt fest, welche Kennung für lesende Datei-Zugriffe an den Server gesendet wird.
  • Voreinstellung: true: Es wird die anonyme SessionID übertragen. Der Browser kann diese Zugriffe deshalb nicht im Cache speichern
  • Alternative: false: Es wird der jeweilige Benutzer- und Gruppen-Name übertragen. Der Browser kann deshalb die Daten im Cache speichern
_AJAX_XXX Hier können Sie bei Bedarf weitere "freie" Parameter angeben, die beim Starten an die Sitzung übergeben werden und von Ihren eigenen Makros ausgewertet werden können.

Bitte beachten Sie:

Spezielle LOG-WEB Attribute

In Sonderfällen kann es sein, dass Sie zwar Mainframe-Verbindungen (3270, 5250 und 9750) nutzen, dabei aber nicht die LOG-WEB Benutzerverwaltung mitverwenden wollen.

In diesen Fällen können Sie zusätzlich zu den üblichen Attributen noch spezielle Parameter an den LOG-WEB Server übergeben:

Eigenschaft Bedeutung
StationName Stations-Name (LU-Name) des Dialog-Terminals.
  • Wenn die Angabe im Benutzer-Profil erfolgt, sollten Sie den Einsatz von LOG-WEB Server "Pools" prüfen
  • Den Namen des Pools können Sie dann einfacher im Gruppen-Profil oder in der Verbindungs-Vorlage angeben
PrinterName Stations-Name (LU-Name) des Druckers.
  • Wenn die Angabe im Benutzer-Profil erfolgt, sollten Sie den Einsatz von LOG-WEB Server "Pools" prüfen
  • Den Namen des Pools können Sie dann einfacher im Gruppen-Profil oder in der Verbindungs-Vorlage angeben
LOGWEB_XXX Übergibt den beliebigen Parameter XXX und dessen Wert zur Auswertung an den LOG-WEB Server.
  • Beispiel: Mit der Angabe
    LOGWEB_StationName = TERM0001
    wird der Stations-Namen TERM0001 übergeben:
    StationName = TERM0001

Benutzer definieren: Dateien USER.ini

Mit dem Parameter UserProfiles der Grundeinstellungen legen Sie den Pfad zu Ihren Benutzer-Dateien fest. Für jeden zugelassenen Benutzer legen Sie in diesem Verzeichnis eine Textdatei unter seinem Benutzernamen an, beispielsweise meier.ini.

Bitte beachten Sie:

Spezielle Einträge in Benutzer-Dateien:

Eigenschaft Bedeutung
Group
oder
_Group
Name der Benutzer-Gruppe für diesen Anwender.
Pflichtangabe, außer in der Pseudo Benutzerdatei _ANY_.ini.
  • Beispiel: gast
  • Aus Kompatibilitätsgründen wird auch die Angabe eines Dateinamens im Format xxx/gast.ini unterstützt
  • Bitte beachten Sie: Die entsprechende Gruppendatei muss vorhanden sein (hier also: //GroupProfiles/gast.ini)
  • Die Angabe _Group hat Vorrang vor Group
  • Die Angabe kann auch in LOG-WEB Benutzerdateien erfolgen
Password Optional: Verschlüsseltes Passwort für diesen Anwender.
  • Beispiel: 19A7..
  • Voreinstellung: leer (kein Passwort)
  • Der Anwender kann sein eigenes Passwort nur dann selbst ändern. löschen oder anlegen, wenn Sie das mit dem Eintrag ChangePassword zulassen
  • Der Administrator kann das Passwort durch Eintrag in die Benutzerdatei jederzeit löschen oder neu einstellen
  • Bei der Passwort-Eingabe wird die Schreibweise (groß/klein) bewertet
_User Sonderfall "Redirect": Vergibt einen anderen Benutzer-Namen.
  • Die Benutzer-Datei wird in diesem Fall nur als "Platzhalter" verwendet
  • Die endgültigen Benutzer-Attribute werden statt dessen dem angegebenen Verweis entnommen
  • Beispiel: siehe "Pseudo Benutzer-Datei _DEFAULT_.ini"

Sie können hier ausnahmsweise auch noch die allgemeinen Attribute angeben, die für einzelne Anwender Vorrang vor Ihren Angaben in der Gruppen-Datei haben sollen.

Beispiel für eine einfache Benutzerdatei:

# user profile extern.ini
Group    = extern
Password = 19A7..

Weitere Beispiele finden Sie in den Beispiel-Konfigurationen.

Benutzergruppe definieren: Dateien GROUP.ini

Mit dem Parameter GroupProfiles legen Sie den Pfad zu Ihren Gruppen-Dateien fest. Für jede Benutzergruppe legen Sie in diesem Verzeichnis nun eine Textdatei unter dem jeweiligen Gruppen-Namen an, beispielsweise extern.ini.

Bitte beachten Sie:

In den Gruppen-Dateien können Sie die oben beschriebenen allgemeinen Attribute angeben. Diese gelten dann für alle Benutzer dieser Gruppe, soweit sie nicht in den jeweiligen Benutzer-Angaben widerrufen werden.

Spezielle Einträge in Gruppen-Dateien:

Eigenschaft Bedeutung
_Group Sonderfall "Redirect": Vergibt einen anderen Gruppen-Namen.
  • Die Gruppen-Datei wird nur als "Platzhalter" verwendet
  • Die endgültigen Gruppen-Attribute werden dem angegebenen Verweis entnommen
  • Beispiel: siehe "Pseudo Gruppen-Datei _ANY_.ini"
  • Die Angabe kann auch in LOG-WEB Benutzerdateien erfolgen
_AutoCreateGroup Sonderfall: Erzeugt automatisch ein fehlendes Gruppenprofil.

Beispiel für eine Gruppen-Datei:

# group profile extern.ini
_WriteUser = true
ChangePassword = true

Weitere Beispiele finden Sie in den Beispiel-Konfigurationen.

Pseudo Benutzerdatei _ANY_.ini

Die Pseudo Benutzerdatei _ANY_.ini wird immer dann verwendet, wenn bei der Anmeldung ein unbekannter Benutzer-Name angegeben wurde.

Die Pseudo Benutzerdatei _ANY_.ini wird beispielsweise verwendet für eine Anbindung an eine bereits vorhandene externe Benutzerverwaltung:

# pseudo user file _ANY_.ini accepts any user name from external service
    # no individual user profile created

Pseudo Benutzerdatei _DEFAULT_.ini

Die Pseudo Benutzerdatei _DEFAULT_.ini wird immer dann verwendet, wenn bei der Anmeldung kein Benutzername angegeben wurde.

Die Pseudo Benutzerdatei _DEFAULT_.ini wird beispielsweise verwendet zur Realisierung einer leeren Benutzerverwaltung und lenkt dort auf einen (existierenden) "Standard-Benutzer" um:

# pseudo user file _DEFAULT_.ini accepts missing user name and redirects to user "default"
_User = default

Pseudo Gruppendatei _ANY_.ini

Die Pseudo Gruppendatei _ANY_.ini wird immer dann verwendet, wenn bei der Anmeldung ein unbekannter Gruppen-Name übermittelt wurde.

Die Pseudo Gruppendatei _ANY_.ini wird beispielsweise verwendet für eine Anbindung an eine bereits vorhandene LOG-WEB oder externe Benutzerverwaltung:

# pseudo group file _ANY_.ini accepts any group name
# note: user profiles are accessed via LOG-WEB server
_WriteUser = true

Pseudo Gruppendatei _DEFAULT_.ini

Die Pseudo Gruppendatei _DEFAULT_.ini wird immer dann verwendet, wenn bei der Anmeldung kein Benutzername angegeben wurde.

Die Pseudo Gruppendatei _DEFAULT_.ini wird verwendet, wenn eine externe Benutzerverwaltung keinen Gruppen-Namen liefert und lenkt dort auf eine (existierende) "Standard-Gruppe" um:

# pseudo group file _DEFAULT_.ini accepts missing group name
# redirects to group "default"
_Group = default

Arbeiten ohne Benutzerverwaltung

Wenn Sie ohne Benutzerverwaltung arbeiten wollen, müssen Sie entsprechende "leere" Angaben machen. Die Muster-Konfiguration userdb/empty ist in der Auslieferung bereits mit den Grundeinstellungen

UserDatabase = file
UserProfiles = userdb/empty/users
GroupProfiles = userdb/empty/groups

voreingestellt und enthält eine beispielhafte leere Benutzerverwaltung. Sie ist für erste Tests sofort nutzbar:

Das Verzeichnis userdb/empty enthält dazu folgende Profil-Dateien:

userdb
|
+-- empty
|   +-- users
|   |       _DEFAULT_.ini
|   |           _User = default         
|   |       default.ini
|   |           _Group = default        
|   |       admin.ini
|   |           _Group = admin          
|   |
|   \-- groups
|           default.ini
|               _CookieMaxAge = 0       
|               _WriteUser = true       
|           admin.ini
|               _WriteUser = true       
|               _WriteGroup = true      
|               _ChangeGroup = true     
|               _ChangePassword = true  
...

Bedeutung der Profil-Dateien:

Für Tests enthält die leere Benutzerverwaltung noch einen User "admin" mit Sonderrechten:

Bei Bedarf können Sie dieses Beispiel auch zu einer "vollen Benutzerverwaltung" ausbauen und produktiv nutzen:

LOG-WEB Benutzerverwaltung weiter verwenden

Wenn Sie bereits eine LOG-WEB Benutzerverwaltung eingerichtet haben, können Sie diese problemlos weiter verwenden. Sie gehen dazu folgendermaßen vor:

Die Muster-Konfiguration userdb/logweb der Auslieferung zeigt eine beispielhafte Übernahme der LOG-WEB Benutzerverwaltung:

userdb
|
+-- logweb
|   \-- groups
|           _ANY_.ini
|               _AutoCreateGroup = true 
|               _WriteUser = true       
...

Bitte beachten Sie:

LDAP oder ActiveDirectory verwenden

Wenn Ihre Benutzer in einem LDAP oder ActiveDirectory Server verwaltet werden, können Sie die Benutzerverwaltung so konfigurieren, dass dieser Server auch von LogWeb/Ajax benutzt wird.

Geben Sie in den Grundeinstellungen für UserDatabase den Typ "ldap" an:

UserDatabase = ldap
GroupProfiles = userdb/ldap/groups

Sie erreichen damit, dass der Anmelde-Name an den LDAP oder ActiveDirectory Server weitergereicht wird und dass dieser die entsprechenden Prüfungen vornimmt.

Da die Benutzerverwaltung von LogWeb/Ajax die Mitgliedschaft eines Benutzers in mehreren Gruppen nicht zulässt, greifen Sie auf die mitgelieferte Muster-Konfiguration userdb/ldap zurück:

userdb
|
+-- ldap
|   \-- groups
|           _DEFAULT_.ini
|               _Group = default        
|           default.ini
|               _CookieMaxAge = 0       
|               _WriteUser = true       
...

Damit wird erreicht, dass alle Benutzer der Gruppe "default" zugeordnet werden.

Den Zugriff auf den LDAP oder ActiveDirectory Server konfigurieren Sie in der Datei WEB-INF/LdapConfig.ini, die konfigurierbaren Eigenschaften in dieser Datei stellt die folgende Tabelle zusammen:

Eigenschaft Bedeutung
de.logics.logwebAppV3.login.LdapSpi Name der Java Klasse, die den Zugriff auf den LDAP oder ActiveDirectory Server implementiert. Diesen Wert dürfen Sie nur dann ändern, wenn Sie eine eigene Java Klasse für den Zugriff zur Verfügung stellen.
Voreinstellung:
de.logics.logwebAppV3.login.LdapExample
domain.server.url Adresse des Domain Server.
Beispiel:
ldap://my.company.com:389
domain.fast.binding Legt fest, ob "Fast Binding" für den Verbindungsaufbau zum Domain Server benutzt werden soll. Zum Einschalten ist der Wert "true" anzugeben, alle anderen Werte lassen "Fast Binding" deaktiviert.
domain.return.attributes Durch Kommata oder Leezeichen getrennte Liste der zurückzuliefernden Attribute.
Beispiel:
cn, sAMAccountName
global.server.url Adresse des globalen Katalogs. Ist dieser Wert nicht angegeben, wird die Einstellung der Eigenschaft domain.server.url verwendet.
global.username Benutzername für die Anmeldung am globalen Katalog
global.password Passwort für die Anmeldung am globalen Katalog
global.search.base Basisverzeichnis der Benutzer im globalen Katalog.
Beispiel:
DC\=company,DC\=com
global.search.filter Filter zur Suche nach Benutzernamen im globalen Katalog. Die Zeichenreihe ${username} wird durch den übergebenen Benutzernamen ersetzt.
Beispiel:
(&(objectClass\=user)(|(cn\=${username})(sAMAccountName\=${username})))

Beachten Sie bitte, dass Sie alle Gleichheitszeichen in den Parameterwerten durch einen Schrägstrich \ entwerten müssen.

Beispiel:

# LDAP configuration file

# Classname of LDAP Service Provider Implementation
de.logics.logwebAppV3.login.LdapSpi = de.logics.logwebAppV3.login.LdapExample

# Configure access to the domain server
domain.server.url = ldap://my.company.com:389
domain.fast.binding = false
domain.return.attributes = cn, sAMAccountName

# Configure access to the global catalog
global.server.url = ldap://my.company.com:3268
global.username = Administrator
global.password = Kennwort
global.search.base = DC\=company,DC\=com
# ${username} will be replaced by the supplied user name
global.search.filter = (&(objectClass\=user)(|(cn\=${username})(sAMAccountName\=${username})))

Wenn Sie Fragen zu weiteren Konfigurationsmöglichkeiten haben, wenden Sie sich bitte an unseren Support. Die Beschreibung der zugrundeliegenden Java Schnittstelle sowie ein Implementierungsbeispiel sind auf Anfrage erhältlich.

Externe Benutzerverwaltung verwenden

Wenn Sie bereits eine andere Benutzerverwaltung eingeführt haben, zum Beispiel über eine Portal-Integration oder Dienste wie LDAP und ActiveDirectory, können Sie diese hier integrieren.

Die einfachste Möglichkeit besteht in der Übernahme der vom externen Dienst geprüften Benutzer- und Gruppen-Namen, wie sie beispielhaft in der Muster-Konfiguration userdb/extern der Auslieferung realisiert ist:

userdb
|
+-- extern
|   +-- users
|   |       _ANY_.ini
|   |                                        // kein Inhalt
|   \-- groups
|           _ANY_.ini
|               _ChangeGroup = true     
|               _WriteUser = true       
...
Dabei wird vorausgesetzt, dass alle Anwender nur nach Prüfung durch den externen Dienst auf LogWeb/Ajax zugreifen können.

Alternativ kann eine stärkere Integration durch Nutzung der LogWeb/Ajax Login-Schnittstellen erreicht werden. Sprechen Sie mit uns über Ihre Anforderungen - wir unterstützen Sie gerne bei der Planung und der Realisierung dieser Aufgabenstellung.