Version: GSB 7LDAP Installationshinweise
Für das Adminportal wird ein GSB-konformer LDAP-Server benötigt, der als Beistellung und Installationsvoraussetzung für die GSB-Infrastruktur installiert und konfiguriert werden muss. Die nachfolgende Beschreibung fasst die wichtigsten Schritte zur LDAP-Installation und Konfiguration am Beispiel von openLDAP zusammen. Ausführlichere Hinweise zur LDAP-Konfiguration befinden sich im Kapitel LDAP-Anbindung.
Schritt 1: Schema-Definition
Der GSB verwendet eine angepasste Schema-Definitionen, die in den Dateien bkcms.schema und bkcmsadmin.schema abgelegt sind.
Der Aufbau der Dateien bzw. die Definion des Schemas wird im Kapitel Schema-Definition beschrieben.
Die Datei bkcms.schema sollte wie folgt aufgebaut werden:
<syntaxhighlight lang="xml" enclose="div">
- bkcms.schema
- Schema-Erweiterung der Basis-Komponente CMS
- des Projektes BundOnline
- Benoetigte Schemata: core.schema; cosine.schema
- Benutzte Basis OID: 1.3.6.1.4.1.192.6.1.3.3.14
- AttributeTypes liegen unter 1.3.6.1.4.1.192.6.1.3.3.14.0.x
- ObjectClasses liegen unter 1.3.6.1.4.1.192.6.1.3.3.14.1.x
- Fuer eine Auflistung der verschiedenen Standard OIDs siehe
- www.openldap.org
- attributeTypes ##########################################################
attributetype ( 1.3.6.1.4.1.192.6.1.3.3.14.0.0 NAME 'isAdminGroup' DESC 'Flag, ob Gruppe Administratorgruppe ist' EQUALITY booleanMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 SINGLE-VALUE )
attributetype ( 1.3.6.1.4.1.192.6.1.3.3.14.0.1 NAME 'isContentServerGroup' DESC 'Flag, ob Gruppendefinition fuer ContentServer gueltig ist' EQUALITY booleanMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 SINGLE-VALUE )
attributetype ( 1.3.6.1.4.1.192.6.1.3.3.14.0.2 NAME 'isLiveServerGroup' DESC 'Flag, ob Gruppendefinition im Livesystem/Generator gueltig ist' EQUALITY booleanMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 SINGLE-VALUE )
attributetype ( 1.3.6.1.4.1.192.6.1.3.3.14.0.3 NAME 'group' SUP distinguishedName ) DESC 'Die eine Gruppe eines Users oder eine Obergruppen einer untergeordneten Gruppe'
attributetype ( 1.3.6.1.4.1.192.6.1.3.3.14.0.4 NAME 'bkcmsDN' SUP distinguishedName )
DESC 'Der DN der Gruppe oder des Users'
attributetype ( 1.3.6.1.4.1.192.6.1.3.3.14.0.5 NAME 'absent' DESC 'Flag, ob der User gegenwaertig abwesend ist' EQUALITY booleanMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 SINGLE-VALUE )
- objectClasses ##########################################################
objectclass ( 1.3.6.1.4.1.192.6.1.3.3.14.1.0 NAME 'bkcmsGroup' SUP top STRUCTURAL
MUST ( cn )
MAY ( isAdminGroup $ isContentServerGroup $ isLiveServerGroup $ group $ bkcmsDN ) ) objectclass ( 1.3.6.1.4.1.192.6.1.3.3.14.1.1 NAME 'bkcmsPerson' SUP person STRUCTURAL MAY ( group $ mail $ bkcmsDN $ absent) MUST ( uid ) )
- ENDE bkcms.schema
</syntaxhighlight>
Die Datei bkcmsadmin.schema sollte wie folgt aufgebaut werden:
<syntaxhighlight lang="xml" enclose="div">
- bkcmsadmin.schema
- Schema-Erweiterung der Basis-Komponente CMS
- des Projektes BundOnline
- fuer die Administrationsoberflaeche "GSB-User-Admin"
- Benoetigte Schemata: core.schema; cosine.schema; bkcms.schema
- Benutzte Basis OID: 1.3.6.1.4.1.192.6.1.3.3.14
- AttributeTypes liegen unter 1.3.6.1.4.1.192.6.1.3.3.14.0.x
- ObjectClasses liegen unter 1.3.6.1.4.1.192.6.1.3.3.14.1.x
- Fuer eine Auflistung der verschiedenen Standard OIDs siehe
- www.openldap.org
- attributeTypes ##########################################################
attributetype ( 1.3.6.1.4.1.192.6.1.3.3.14.0.201 NAME 'hiddenForSiteAdmin' DESC 'Flag, ob der User bzw. die Gruppe unsichtbar ist' EQUALITY booleanMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 SINGLE-VALUE )
- objectClasses ##########################################################
objectclass ( 1.3.6.1.4.1.192.6.1.3.3.14.1.201 NAME 'bkcmsAdmin' DESC 'Administrative Zusatzinformationen an bkcms-Knoten' SUP top AUXILIARY MAY ( hiddenForSiteAdmin $ title ) )
- ENDE bkcmsadmin.schema
</syntaxhighlight>
Die angepassten Schema-Definitionen werden unterhalb des Verzeichnispfad
/etc/openldap/schema
abgelegt:
/etc/openldap/schema/bkcms.schema /etc/openldap/schema/bkcmsadmin.schema
Schritt 2: Zugriffsrechte
Neben den Standard-Konfigurationen müssen die Zugriffsrechte konfiguriert werden.
Eine Beispielkonfiguration für den Mandanten standardlsg sieht wie folgt aus:
<syntaxhighlight lang="xml" enclose="div">
- START GSB-spezifische OpenLDAP-Access-Rights-Configuration
- Schreibrechte fuer ausgewaehlte Attribute
- Fuer alle User selber, fuer alle Site-Administratoren (uid=Manager) und LDAP-Gesamt-Administrator
- access to attrs=userPassword,cn,sn,mail,telephoneNumber
- by self write
- by anonymous auth
- by dn.base="cn=Manager,dc=company,dc=domain,dc=example" write
- by dn.base="uid=Manager,ou=users,dc=standardlsg,dc=company,dc=domain,dc=example" write
- by * none
- standardlsg-Mandant
- Schreib-/Leserechte fuer Site-Administrator und Benutzer
access to dn.subtree="ou=users,dc=standardlsg,dc=company,dc=domain,dc=example" attrs=userPassword,cn,sn,mail,telephoneNumber
by dn.base="uid=Manager,ou=users,dc=standardlsg,dc=company,dc=domain,dc=example" write by self write by dn.subtree="ou=users,dc=standardlsg,dc=company,dc=domain,dc=example" read by anonymous auth
access to dn.subtree="dc=standardlsg,dc=company,dc=domain,dc=example"
by dn.base="uid=Manager,ou=users,dc=standardlsg,dc=company,dc=domain,dc=example" write by self read by dn.subtree="ou=users,dc=standardlsg,dc=company,dc=domain,dc=example" read by anonymous auth
- GSBAdmin-Mandant
- Schreib-/Leserechte fuer Site-Administrator und Benutzer
access to dn.subtree="ou=users,dc=GSBAdmin,dc=company,dc=domain,dc=example" attrs=userPassword,cn,sn,mail,telephoneNumber
by dn.base="uid=Manager,ou=users,dc=GSBAdmin,dc=company,dc=domain,dc=example" write by self write by dn.subtree="ou=users,dc=GSBAdmin,dc=company,dc=domain,dc=example" read by anonymous auth
access to dn.subtree="dc=GSBAdmin,dc=company,dc=domain,dc=example"
by dn.base="uid=Manager,ou=users,dc=GSBAdmin,dc=company,dc=domain,dc=example" write by self read by dn.subtree="ou=users,dc=GSBAdmin,dc=company,dc=domain,dc=example" read by anonymous auth
- JEDER Site-Administrator benoetigt Lese-Rechte auf das Schema,
- sonst Anlegen von Usern/Gruppen fuer Site-Administratoren nicht moeglich
access to dn.subtree="dc=company,dc=domain,dc=example" attrs=entry,objectClass by * read
access to *
by dn.base="cn=Manager,dc=company,dc=domain,dc=example" write
by dn.base="uid=Manager,ou=Users,dc=standardlsg,dc=company,dc=domain,dc=example" read
by dn.base="uid=Manager,ou=users,dc=GSBAdmin,dc=company,dc=domain,dc=example" read by self read by anonymous auth
- ENDE GSB-spezifische OpenLDAP-Access-Rights-Configuration
</syntaxhighlight>
Die Zugriffsrechte müssen unterhalb des Verzeichnispfad
/etc/openldap/
in der folgenden Datei abgelegt werden:
/etc/openldap/GsbAccessRights.conf
Sobald weitere Mandanten angelegt werden, müssen die Berechtigungen entsprechend angepaßt werden und z.B. der Administrator des Mandanten Schreibrechte für seine Benutzer erhalten.
Schritt 3: Registrierung
Anschließend müssen die Schema-Erweiterung bkcms.schema und bkcmsadmin.schema zusammen mit den benötigten GsbAccessRights.conf registriert werden.
Dies geschieht in der Datei slapd.conf
/etc/openldap/slapd.conf
per Include-Direktive, d.h es müssen folgende Konfigurationen ergänzt/eingetragen werden:
include /etc/openldap/schema/bkcms.schema include /etc/openldap/schema/bkcmsadmin.schema Include /etc/openldap/GsbAccessRights.conf
Schritt 4: Domäne und Passwort
Danach muss in der Datei slapd.conf im Bereich BDB die entsprechende Domäne und das Passwort konfiguriert werden:
database bdb suffix "dc=company,dc=domain,dc=example" checkpoint 1024 5 cachesize 10000 rootdn "cn=Manager,dc=company,dc=domain,dc=example" rootpw
Schritt 5: Indizierung
Abschließend sollten in der Datei slapd.conf noch folgende Indizes konfiguriert werden:
# Indices to maintain index objectClass eq index cn,group,sn eq index uid,bkcmsDN eq