Umstellung der Benutzerverwaltung von Dateien im Verzeichnis "users" auf die Verwendu...
[kivitendo-erp.git] / doc / INSTALL.texi
index f9ca522..d6f890d 100644 (file)
@@ -27,7 +27,8 @@
 * Installation des Programmpaketes:: Installationsort, Berechtigungen
 * Anpassung der PostgreSQL-Konfiguration:: Verschiedene Aspekte der Datenbankkonfiguration
 * Apache-Konfiguration:: Einrichtung eines Aliases und Optionen für das Ausführen von CGI-Scripten
-* Benutzer und Datenbanken anlegen:: Letzte Schritte vor der Anmeldung
+* Benutzerauthentifizierung und Administratorpasswort:: Einrichtung der Authentifizierungsdatenbank und der Passwortüberprüfung
+* Benutzer- und Gruppenverwaltung:: Einrichten von Benutzern, Gruppen und Datenbanken
 * OpenDocument-Vorlagen:: Wichtige Hinweise zum Erstellen und zur Verwendung von Dokumentenvorlagen
 * Lx-Office ERP verwenden:: Die URLs zur Anmeldung und Administration
 @end menu
@@ -259,25 +260,298 @@ folgende Option in die Konfiguration aufzunehmen:
 
 @c ---------------------------------------------------------------
 
-@node Benutzer und Datenbanken anlegen
-@chapter Benutzer und Datenbanken anlegen
+@node Benutzerauthentifizierung und Administratorpasswort
+@chapter Benutzerauthentifizierung und Administratorpasswort
 
-Nach der Installation müssen Benutzer und Datenbanken angelegt werden.
-Dieses geschieht im Administrationsmenü, dass Sie unter folgender URL
-finden:
+Informationen über die Einrichtung der Benutzerauthentifizierung, über
+die Verwaltung von Gruppen und weitere Einstellungen
 
-@code{http://localhost/lx-erp/admin.pl}
+@menu
+* Grundlagen zur Benutzerauthentifizierung:: Verfügbare Methoden, Name der Konfigurationsdatei
+* Administratorpasswort:: Wo das Administratorpasswort gesetzt werden kann
+* Authentifizierungsdatenbank:: Verbindungseinstellungen zur Authentifizierungsdatenbank
+* Passwortüberprüfung:: Einstellungen zur Überprüfung der Benutzerpasswörter
+* Name des Session-Cookies:: Ändern des Cookie-Namens bei Verwendung mehrerer Lx-Office-Installationen auf einem Server
+* Anlegen der Authentifizierungsdatenbank:: Wie die Authentifizierungsdatenbank angelegt wird
+@end menu
+
+@c ---------------------------------------------------------------
+
+@node Grundlagen zur Benutzerauthentifizierung
+@section Grundlagen zur Benutzerauthentifizierung
+
+Lx-Office verwaltet die Benutzerinformationen in einer Datenbank, die
+im folgenden ``Authentifizierungsdatenbank'' genannt wird. Für jeden
+Benutzer kann dort eine eigene Datenbank für die eigentlichen
+Finanzdaten hinterlegt sein. Diese beiden Datenbanken können, müssen
+aber nicht unterschiedlich sein.
+
+Im einfachsten Fall gibt es für Lx-Office nur eine einzige Datenbank,
+in der sowohl die Benutzerinformationen als auch die Daten abgelegt
+werden.
+
+Zusätzlich ermöglicht es Lx-Office, dass die Benutzerpasswörter
+entweder gegen die Authentifizierungsdatenbank oder gegen einen
+LDAP-Server überprüft werden.
+
+Welche Art der Passwortüberprüfung Lx-Office benutzt und wie Lx-Office
+die Authentifizierungsdatenbank erreichen kann, wird in der
+Konfigurationsdatei @code{config/authentication.pl} festgelegt. Diese
+muss bei der Installation und bei einem Upgrade von einer Version vor
+v2.4.4 angelegt werden. Eine Beispielkonfigurationsdatei
+@code{config/authentication.pl.default} existiert, die als Vorlage
+benutzt werden kann.
+
+@node Administratorpasswort
+@section Administratorpasswort
+
+Das Passwort, das zum Zugriff auf das Aministrationsinterface benutzt wird,
+wird ebenfalls in dieser Datei gespeichert. Es kann auch nur dort und nicht
+mehr im Administrationsinterface selber geändert werden. Der Parameter dazu
+heißt @code{$self->@{admin_password@}}.
+
+@node Authentifizierungsdatenbank
+@section Authentifizierungsdatenbank
+
+Die Verbindung zur Authentifizierungsdatenbank wird mit den Parametern
+in @code{$self->@{DB_config@}} konfiguriert. Hier sind die folgenden
+Parameter anzugeben:
+
+@itemize
+@item
+@samp{host} -- Der Rechnername oder die IP-Adresse des Datenbankservers
+@item
+@samp{port} -- Die Portnummer des Datenbankservers, meist 5432
+@item
+@samp{db} -- Der Name der Authentifizierungsdatenbank
+@item
+@samp{user} -- Der Benutzername, mit dem sich Lx-Office beim Datenbankserver anmeldet (z.B. ``postgres'')
+@item
+@samp{password} -- Das Passwort für den Datenbankbenutzer
+@end itemize
+
+Die Datenbank muss noch nicht existieren. Lx-Office kann sie
+automatisch anlegen (mehr dazu siehe unten).
+
+@node Passwortüberprüfung
+@section Passwortüberprüfung
+
+Lx-Office unterstützt Passwortüberprüfung auf zwei Arten: gegen die
+Authentifizierungsdatenbank und gegen einen externen LDAP- oder
+Active-Directory-Server. Welche davon benutzt wird, regelt der
+Parameter @code{$self->@{module@}}.
+
+Sollen die Benutzerpasswörter in der Authentifizierungsdatenbank
+gespeichert werden, so muss der Parameter @code{$self->@{module@}} den
+Wert @samp{DB} enthalten. In diesem Fall können sowohl der
+Administrator als auch die Benutzer selber ihre Psaswörter in
+Lx-Office ändern.
+
+Soll hingegen ein externer LDAP- oder Active-Directory-Server benutzt
+werden, so muss der Parameter @code{$self->@{module@}} auf @samp{LDAP}
+gesetzt werden. In diesem Fall müssen zusätzliche Informationen über
+den LDAP-Server in @code{$self->@{LDAP_config@}} angegeben werden:
+
+@itemize
+@item
+@samp{host} -- Der Rechnername oder die IP-Adresse des LDAP- oder Active-Directory-Servers. Diese Angabe ist zwingend erforderlich.
+@item
+@samp{port} -- Die Portnummer des LDAP-Servers; meist 389.
+@item
+@samp{tls} -- Wenn Verbindungsverschlüsselung gewünscht ist, so diesen Wert auf @samp{1} setzen, andernfalls auf @samp{0} belassen
+@item
+@samp{attribute'} -- Das LDAP-Attribut, in dem der Benutzername steht, den der Benutzer eingegeben hat. Für Active-Directory-Server
+  ist dies meist @samp{sAMAccountName}, für andere LDAP-Server hingegen @samp{uid}. Diese Angabe ist zwingend erforderlich.
+@item
+@samp{base_dn} -- Der Abschnitt des LDAP-Baumes, der durchsucht werden soll. Diese Angabe ist zwingend erforderlich.
+@item
+@samp{filter} -- Ein optionaler LDAP-Filter. Enthält dieser Filter das Wort @code{<%login%>}, so wird dieses durch den vom Benutzer
+  eingegebenen Benutzernamen ersetzt. Andernfalls wird der LDAP-Baum nach einem Element durchsucht, bei dem das oben angegebene Attribut
+  mit dem Benutzernamen identisch ist.
+@item
+@samp{bind_dn} und @samp{bind_password} -- Wenn der LDAP-Server eine Anmeldung erfordert, bevor er durchsucht werden kann (z.B. ist dies bei
+  Active-Directory-Servern der Fall), so kann diese hier angegeben werden. Für Active-Directory-Server kann als @samp{bind_dn} entweder eine
+  komplette LDAP-DN wie z.B. @samp{cn=Martin Mustermann,cn=Users,dc=firmendomain} auch nur der volle Name des Benutzers
+  eingegeben werden; in diesem Beispiel also @samp{Martin Mustermann}.
+@end itemize
 
-Zuerst muss eine Datenbank angelegt werden, anschließend ein
-Benutzer. Verwenden Sie für den Datenbankzugriff den eben angelegten
-Benutzer ``lxoffice''.
+@node Name des Session-Cookies
+@section Name des Session-Cookies
+
+Sollen auf einem Server mehrere Lx-Office-Installationen aufgesetzt
+werden, so müssen die Namen der Session-Cookies für alle
+Installationen unterschiedlich sein. Der Name des Cookies wird mit dem
+Parameter @code{$self->@{cookie_name@}} gesetzt.
+
+Diese Angabe ist optional, wenn nur eine Installation auf dem Server
+existiert.
+
+@node Anlegen der Authentifizierungsdatenbank
+@section Anlegen der Authentifizierungsdatenbank
+
+Nachdem alle Einstellungen in @code{config/authentication.pl}
+vorgenommen wurden, muss Lx-Office die Authentifizierungsdatenbank
+anlegen. Dieses geschieht automatisch, wenn Sie sich im
+Administrationsmodul anmelden, das unter der folgenden URL erreichbar
+sein sollte:
+
+@uref{http://localhost/lx-erp/admin.pl}
+
+
+@c ---------------------------------------------------------------
+
+@node Benutzer- und Gruppenverwaltung
+@chapter Benutzer- und Gruppenverwaltung
+
+Nach der Installation müssen Benutzer, Gruppen und Datenbanken
+angelegt werden.  Dieses geschieht im Administrationsmenü, dass Sie
+unter folgender URL finden:
+
+@uref{http://localhost/lx-erp/admin.pl}
+
+Verwenden Sie zur Anmeldung das Password, dass Sie in der Datei
+@code{config/authentication.pl} eingetragen haben.
+
+@menu
+* Zusammenhänge:: Übersicht über Benutzer, Gruppen, Berechtigungen und Datenbanken
+* Datenbanken anlegen:: Hinweise zum Anlegen von Datenbanken
+* Gruppen anlegen:: Hinweise zum Anlegen von Gruppen
+* Benutzer anlegen:: Hinweise zum Anlegen von Benutzern
+* Gruppenmitgliedschaften verwalten:: Wie man Gruppen Benutzer zuordnet
+* Migration alter Installationen:: Automatische Übernahme bei Update von einer älteren Version
+@end menu
+
+@node Zusammenhänge
+@section Zusammenhänge
+
+Lx-Office verwendet eine Datenbank zum Speichern all seiner
+Informationen wie Kundendaten, Artikel, Angebote, Rechnungen etc. Um
+mit Lx-Office arbeiten zu können, muss eine Person einen
+Benutzeraccount haben. Jedem Benutzeraccount wiederum wird genau eine
+Datenbank zugewiesen, mit der dieser Benutzer arbeiten kann. Es ist
+möglich und normal, dass mehreren Benutzern die selbe Datenbank
+zugewiesen wird, sodass sie alle mit den selben Daten arbeiten können.
+
+Die Basisdaten der Benutzer, die in der Administration eingegeben
+werden können, werden in einer zweiten Datenbank gespeichert, der
+bereits erwähnten Authentifizierungsdatenbank. Diese ist also den
+Produktivdaten enthaltenden Datenbanken vorgeschaltet. Pro
+Lx-Office-Installation gibt es nur eine Authentifizierungsdatenbank,
+aber beliebig viele Datenbanken mit Firmendaten.
+
+Lx-Office lann seinen Benutzern Zugriff auf bestimmte
+Funktionsbereiche erlauben oder verbieten. Wird der Zugriff nicht
+gestattet, so werden der entsprechenden Menüpunkte auch nicht
+angezeigt. Diese Rechte werden ebenfalls in der
+Authentifizierungsdatenbank gespeichert.
+
+Um Rechte verteilen zu können, verwendet Lx-Office ein
+Gruppen-Prinzip. Einer Gruppe kann der Zugriff auf bestimmte Bereiche
+erlaubt werden. Ein Benutzer wiederum kann Mitglied in einer oder
+mehrerer Gruppen sein. Der Benutzer hat Zugriff auf alle diejenigen
+Funktionen, die mindestens einer Gruppe erlaubt sind, in der der
+Benutzer Mitglied ist.
+
+Die allgemeine Reihenfolge, in der Datenbanken, Gruppen und Benutzer
+angelegt werden sollten, lautet:
+
+@enumerate
+@item
+Datenbank anlegen
+@item
+Gruppen anlegen
+@item
+Benutzer anlegen
+@item
+Benutzer den Gruppen zuordnen
+@end enumerate
+
+@node Datenbanken anlegen
+@section Datenbanken anlegen
+
+Zuerst muss eine Datenbank angelegt werden. Verwenden Sie für den
+Datenbankzugriff den vorhin angelegten Benutzer (in unseren Beispielen
+ist dies @samp{lxoffice}).
 
 Wenn Sie für die Lx-Office-Installation nicht den europäischen
 Schriftsatz ISO-8859-15 sondern UTF-8 (Unicode) benutzen wollen, so
-müssen Sie vor dem Anlegen der Datenbank in der Datei ``lx-erp.conf''
-die Variable @code{$dbcharset} auf den Wert ``UTF-8''
-setzen. Zusätzlich muss beim Anlegen der Datenbank ``UTF-8 Unicode''
-als Schriftsatz ausgewählt werden.
+müssen Sie vor dem Anlegen der Datenbank in der Datei
+@code{config/lx-erp.conf} die Variable @code{$dbcharset} auf den Wert
+@samp{UTF-8} setzen. Zusätzlich muss beim Anlegen der Datenbank
+@samp{UTF-8 Unicode} als Schriftsatz ausgewählt werden.
+
+Bitte beachten Sie, dass alle Datenbanken den selben Zeichensatz
+verwenden müssen, da diese Einstellungen momentan global in Lx-Office
+vorgenommen wird und nicht nach Datenbank unterschieden werden
+kann. Auch die Authentifizierungsdatenbank muss mit diesem Zeichensatz
+angelegt worden sein.
+
+@node Gruppen anlegen
+@section Gruppen anlegen
+
+Eine Gruppe wird in der Gruppenverwaltung angelegt. Ihr muss ein Name
+gegeben werden, eine Beschreibung ist hingegen optional. Nach dem
+Anlegen können Sie die verschiedenen Bereiche wählen, auf die
+Mitglieder dieser Gruppe Zugriff haben sollen.
+
+Benutzergruppen sind unabhängig von Datenbanken, da sie in der
+Authentifizierungsdatenbank gespeichert werden. Sie gelten für alle
+Datenbanken, die in dieser Installation verwaltet werden.
+
+@node Benutzer anlegen
+@section Benutzer anlegen
+
+Beim Anlegen von Benutzern werden für viele Parameter
+Standardeinstellungen vorgenommen, die den Gepflogenheiten des
+deutschen Raumes entsprechen.
+
+Zwingend anzugeben sind der Loginname sowie die komplette
+Datenbankkonfiguration. Wenn die Passwortauthentifizierung über die
+Datenbank eingestellt ist, so kann hier auch das Benutzerpasswort
+gesetzt bzw. geändert werden. Ist hingegen die LDAP-Authentifizierung
+aktiv, so ist das Passwort-Feld deaktiviert.
+
+In der Datenbankkonfiguration müssen die Zugriffsdaten einer der eben
+angelegten Datenbanken eingetragen werden.
+
+@node Gruppenmitgliedschaften verwalten
+@section Gruppenmitgliedschaften verwalten
+
+Nach dem Anlegen von Benutzern und Gruppen müssen Benutzer den Gruppen
+zugewiesen werden. Dazu gibt es zwei Möglichkeiten:
+
+@enumerate
+@item
+In der Gruppenverwaltung wählt man eine Gruppe aus. Im folgenden
+Dialog kann man dann einzeln die Benutzer der Gruppe hinzufügen.
+@item
+In der Gruppenverwaltung wählt man das Tool zur Verwaltung der
+Gruppenmitgliedschaft. Hier wird eine Matrix angezeigt, die alle im
+System angelegten Gruppen und Benutzer enthält. Durch Setzen der
+Häkchen wird der Benutzer in der ausgewählten Zeile der Gruppe in der
+ausgewählten Spalte hinzugefügt.
+@end enumerate
+
+@node Migration alter Installationen
+@section Migration alter Installationen
+
+Wenn Lx-Office 2.4.4 über eine ältere Version installiert wird, in der
+die Benutzerdaten noch im Dateisystem im Verzeichnis @code{users}
+verwaltet wurden, so bietet Lx-Office die Möglichkeit, diese
+Benutzerdaten automatisch in die Authentifizierungsdatenbank zu
+übernehmen. Dies geschieht, wenn man sich nach dem Update der
+Installation das erste Mal im Administrationsbereich anmeldet. Findet
+Lx-Office die Datei @code{users/members}, so wird der
+Migrationsprozess gestartet.
+
+Der Migrationsprozess ist nahezu vollautomatisch. Alle Benutzerdaten
+können übernommen werden. Nach den Benutzerdaten bietet Lx-Office noch
+die Möglichkeit an, dass automatisch eine Benutzergruppe angelegt
+wird. Dieser Gruppe wird Zugriff auf alle Funktionen von Lx-Office
+gewährt. Alle migrierten Benutzern werden Mitglied in dieser
+Gruppe. Damit wird das Verhalten von Lx-Office bis Version 2.4.3
+inklusive wiederhergestellt, und die Benutzer können sich sofort
+wieder anmelden und mit dem System arbeiten.
 
 @c ---------------------------------------------------------------
 
@@ -288,11 +562,11 @@ Lx-Office unterst
 OpenDocument-Format, wie es OpenOffice.org ab Version 2
 erzeugt. Lx-Office kann dabei sowohl neue OpenDocument-Dokumente als
 auch aus diesen direkt PDF-Dateien erzeugen.  Um die Unterstützung von
-OpenDocument-Vorlagen zu aktivieren muss in der Datei ``lx-erp.conf''
-die Variable @code{$opendocument_templates} auf ``1'' stehen.  Dieses
-ist die Standardeinstellung.
+OpenDocument-Vorlagen zu aktivieren muss in der Datei
+@code{config/lx-erp.conf} die Variable @code{$opendocument_templates}
+auf @samp{1} stehen.  Dieses ist die Standardeinstellung.
 
-Weiterhin muss in der Datei ``lx-erp.conf'' die Variable
+Weiterhin muss in der Datei @code{config/lx-erp.conf} die Variable
 @code{$dbcharset} auf die Zeichenkodierung gesetzt werden, die auch
 bei der Speicherung der Daten in der Datenbank verwendet wird. Diese
 ist in den meisten Fällen "ISO-8859-15".
@@ -304,11 +578,11 @@ neben OpenOffice.org ab Version 2 auch der ``X virtual frame buffer''
 (xvfb) installiert werden.  Bei Debian ist er im Paket ``xvfb''
 enthalten. Andere Distributionen enthalten ihn in anderen Paketen.
 
-Nach der Installation müssen in der Datei ``lx-erp.conf'' zwei weitere
-Variablen angepasst werden: @code{$openofficeorg_writer_bin} muss den
-vollständigen Pfad zur OpenOffice.org Writer-Anwendung enthalten.
-@code{$xvfb_bin} muss den Pfad zum ``X virtual frame buffer''
-enthalten.
+Nach der Installation müssen in der Datei @code{config/lx-erp.conf}
+zwei weitere Variablen angepasst werden:
+@code{$openofficeorg_writer_bin} muss den vollständigen Pfad zur
+OpenOffice.org Writer-Anwendung enthalten.  @code{$xvfb_bin} muss den
+Pfad zum ``X virtual frame buffer'' enthalten.
 
 Zusätzlich gibt es zwei verschiedene Arten, wie Lx-Office mit
 OpenOffice kommuniziert. Die erste Variante, die benutzt wird, wenn