Das installierte System enthält unter /etc/openldap/slapd.conf
eine vollständige Konfigurationsdatei für den LDAP-Server. Die einzelnen Einträge und die erforderlichen Anpassungen werden hier kurz beschrieben. Einträge, denen ein Rautenzeichen (#) vorangestellt wurde, sind nicht aktiv. Dieses Kommentarzeichen muss entfernt werden, um sie zu aktivieren.
Beispiel 26.2. slapd.conf: Include-Direktive für Schemata
include /etc/openldap/schema/core.schema include /etc/openldap/schema/cosine.schema include /etc/openldap/schema/inetorgperson.schema include /etc/openldap/schema/rfc2307bis.schema include /etc/openldap/schema/yast.schema
Diese erste in dargestellte Direktive in
slapd.confBeispiel 26.2, „slapd.conf: Include-Direktive für Schemata“ gibt das Schema an, anhand dessen das LDAP-Verzeichnis organisiert wird. Der Eintrag core.schema
ist erforderlich. Dieser Direktive werden zusätzliche erforderliche Schemata angefügt. Weitere Information erhalten Sie in der im Lieferumfang enthaltenen OpenLDAP-Dokumentation.
Beispiel 26.3. slapd.conf: pidfile und argsfile
pidfile /var/run/slapd/slapd.pid argsfile /var/run/slapd/slapd.args
Diese beiden Dateien enthalten die PID (Prozess-ID) und einige Argumente, mit denen der slapd-Prozess gestartet wird. Hier müssen keine Änderungen vorgenommen werden.
Beispiel 26.4. slapd.conf: Zugriffssteuerung
# Sample Access Control # Allow read access of root DSE # Allow self write access # Allow authenticated users read access # Allow anonymous users to authenticate # access to dn="" by * read access to * by self write by users read by anonymous auth # # if no access controls are present, the default is: # Allow read by all # # rootdn can always write!
In Beispiel 26.4, „slapd.conf: Zugriffssteuerung“ ist der Ausschnitt der Datei slapd.conf
dargestellt, mit dem die Zugriffsberechtigungen für das LDAP-Verzeichnis auf dem Server gesteuert werden. Die hier im globalen Abschnitt von slapd.conf
vorgenommenen Einträge sind gültig, sofern keine benutzerdefinierten Zugriffsregeln im datenbankspezifischen Abschnitt festgelegt werden. Durch diese Regeln würden die globalen Deklarationen außer Kraft gesetzt. Wie hier dargestellt, verfügen alle Benutzer über Lesezugriff auf das Verzeichnis, nur der Administrator (rootdn
) hat jedoch Schreibberechtigung für dieses Verzeichnis. Die Zugriffssteuerung in LDAP ist ein hochkomplexer Prozess. Folgende Tipps dienen als Unterstützung:
Jede Zugriffsregel weist folgende Struktur auf:
access to <what> by <who> <access>
what
ist ein Platzhalter für das Objekt oder Attribut, auf das Zugriff gewährt wird. Einzelne Verzweigungen des Verzeichnisses können explizit mit separaten Regeln geschützt werden. Darüber hinaus besteht die Möglichkeit, Bereiche des Verzeichnisbaums mit einer Regel durch die Verwendung regulärer Ausdrücke zu verarbeiten. slapd wertet alle Regeln in der Reihenfolge aus, in der sie in der Konfigurationsdatei angegeben sind. Allgemeinere Regeln müssen nach spezifischeren Regeln aufgelistet werden - slapd wendet nur die erste passende Regel an und ignoriert alle folgenden Regeln.
Mit who
wird festgelegt, wer Zugriff auf die mit what
angegebenen Bereiche erhalten soll. Hier können reguläre Ausdrücke verwendet werden. Auch hier bricht slapd die Bewertung nach der ersten Übereinstimmung ab, sodass die spezifischeren Regeln vor den allgemeineren Regeln angegeben werden sollten. Die in Tabelle 26.2, „Benutzergruppen und ihre Zugriffsberechtigungen“ dargestellten Einträge sind möglich.
Tabelle 26.2. Benutzergruppen und ihre Zugriffsberechtigungen
Tag |
Scope |
---|---|
|
Alle Benutzer ohne Ausnahme |
|
Nicht authentifizierte („anonyme“) Benutzer |
|
Authentifizierte Benutzer |
|
Mit dem Zielobjekt verbundene Benutzer |
|
Alle Benutzer, die mit dem regulären Ausdruck übereinstimmen |
Mit
access wird der Zugriffstyp angegeben. Verwenden Sie die in Tabelle 26.3, „Zugriffstypen“ angegebenen Optionen.
Tabelle 26.3. Zugriffstypen
Tag |
Umfang des Zugriffs |
---|---|
|
Kein Zugriff |
|
Für die Verbindung zum Server |
|
Für Objekt für Vergleichszugriff |
|
Für den Einsatz von Suchfiltern |
|
Lesezugriff |
|
Schreibzugriff |
slapd vergleicht das vom Client angeforderte Zugriffsrecht mit den in slapd.conf
gewährten Rechten. Dem Client wird Zugriff gewährt, wenn in den Regeln ein höheres als das angeforderte Recht oder gleichwertiges Recht festgelegt ist. Wenn der Client ein höheres Recht als die in den Regeln deklarierten Rechte anfordert, wird ihm der Zugriff verweigert.
In Beispiel 26.5, „slapd.conf: Beispiel für Zugriffskontrolle“ ist ein Beispiel für eine einfache Zugriffssteuerung dargestellt, die mithilfe von regulären Ausdrücken beliebig entwickelt werden kann.
Beispiel 26.5. slapd.conf: Beispiel für Zugriffskontrolle
access to dn.regex="ou=([^,]+),dc=example,dc=com" by dn.regex="cn=Administrator,ou=$1,dc=example,dc=com" write by user read by * none
Mit dieser Regel wird festgelegt, dass nur der jeweilige Administrator Schreibzugriff auf einen einzelnen ou
-Eintrag erhält. Alle anderen authentifizierten Benutzer verfügen über Lesezugriff und alle sonstigen Benutzer haben kein Zugriffsrecht.
Festlegen von Zugriffsregeln | |
---|---|
Falls keine |
Detaillierte Informationen hierzu und eine Beispielkonfiguration für LDAP-Zugriffsrechte finden Sie in der Online-Dokumentation zum installierten openldap2
-Paket.
Neben der Möglichkeit, Zugriffsberechtigungen über die zentrale Serverkonfigurationsdatei (slapd.conf
) zu verwalten, stehen Zugriffssteuerungsinformationen (ACI, Access Control Information) zur Verfügung. Mit ACI können Zugriffsdaten für einzelne Objekte innerhalb des LDAP-Baums gespeichert werden. Diese Art der Zugriffssteuerung wird noch selten verwendet und von Entwicklern als experimentell betrachtet. Weitere Informationen hierzu erhalten Sie unter http://www.openldap.org/faq/data/cache/758.html.
Beispiel 26.6. slapd.conf: Datenbankspezifiische Direktiven
database bdb suffix "dc=example,dc=com" checkpoint 1024 5 cachesize 10000 rootdn "cn=Administrator,dc=example,dc=com" # Cleartext passwords, especially for the rootdn, should # be avoided. See slappasswd(8) and slapd.conf(5) for details. # Use of strong authentication encouraged. rootpw secret # The database directory MUST exist prior to running slapd AND # should only be accessible by the slapd/tools. Mode 700 recommended. directory /var/lib/ldap # Indices to maintain index objectClass eq overlay ppolicy ppolicy_default "cn=Default Password Policy,dc=example,dc=com" ppolicy_hash_cleartext ppolicy_use_lockout
In der ersten Zeile dieses Abschnitts wird der Datenbanktyp, in diesem Fall eine Berkeley-Datenbank, festgelegt (siehe Beispiel 26.6, „slapd.conf: Datenbankspezifiische Direktiven“). | |
| |
| |
| |
Mit dem darauf folgenden | |
| |
Die | |
Die letzte Direktive, | |
|
Die an dieser Stelle für die Datenbank festgelegten benutzerdefinierten Regeln für Access
können anstelle der globalen Access
-Regeln verwendet werden.
Nachdem der LDAP-Server vollständig konfiguriert und alle gewünschten Einträge gemäß dem in Abschnitt 26.8, „Manuelles Verwalten von LDAP-Daten“ beschriebenen Schema vorgenommen wurden, starten Sie den LDAP-Server als root
, indem Sie den Befehl rcldap start
eingeben. Um den Server manuell zu stoppen, geben Sie den Befehl rcldap stop
ein. Fragen Sie den Status des laufenden LDAP-Servers mit rcldap status
ab.
Mit dem in Abschnitt 14.2.3, „Konfigurieren von Systemdiensten (Runlevel) mit YaST“beschriebenen Runlevel-Editor von YaST kann der Server beim Booten und Stoppen des Systems automatisch gestartet bzw. angehalten werden. Darüber hinaus besteht die Möglichkeit, wie in Abschnitt 14.2.2, „Init-Skripten“ beschrieben, die entsprechenden Verknüpfungen zu den Start- und Anhaltskripten mit dem Befehl insserv über die Kommandozeile zu erstellen.