GSB 7.0 Standardlösung

LDAP-Installationshinweise

Für das Adminportal wird ein GSB-konformer LDAP-Server benötigt, der als erforderliche Softwarekomponente 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 Abschnitt Realisierung.

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:

#### 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 

Die Datei bkcmsadmin.schema sollte wie folgt aufgebaut werden:

#### 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 

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:

############################################################# 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 Benutzeraccess 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 authaccess 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 Benutzeraccess 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 authaccess 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 moeglichaccess to dn.subtree="dc=company,dc=domain,dc=example" attrs=entry,objectClass by * readaccess 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############################################################

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