GSB 7.0 Standardlösung

LDAP 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">

        1. bkcms.schema
  1. Schema-Erweiterung der Basis-Komponente CMS
  2. des Projektes BundOnline
  3. Benoetigte Schemata: core.schema; cosine.schema
  1. Benutzte Basis OID: 1.3.6.1.4.1.192.6.1.3.3.14
  2. AttributeTypes liegen unter 1.3.6.1.4.1.192.6.1.3.3.14.0.x
  3. ObjectClasses liegen unter 1.3.6.1.4.1.192.6.1.3.3.14.1.x
  4. Fuer eine Auflistung der verschiedenen Standard OIDs siehe
  5. www.openldap.org
                                1. 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 )

                                1. 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 ) )

          1. ENDE bkcms.schema

</syntaxhighlight>

Die Datei bkcmsadmin.schema sollte wie folgt aufgebaut werden:

<syntaxhighlight lang="xml" enclose="div">

        1. bkcmsadmin.schema
  1. Schema-Erweiterung der Basis-Komponente CMS
  2. des Projektes BundOnline
  3. fuer die Administrationsoberflaeche "GSB-User-Admin"
  4. Benoetigte Schemata: core.schema; cosine.schema; bkcms.schema
  1. Benutzte Basis OID: 1.3.6.1.4.1.192.6.1.3.3.14
  2. AttributeTypes liegen unter 1.3.6.1.4.1.192.6.1.3.3.14.0.x
  3. ObjectClasses liegen unter 1.3.6.1.4.1.192.6.1.3.3.14.1.x
  4. Fuer eine Auflistung der verschiedenen Standard OIDs siehe
  5. www.openldap.org
                                1. 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 )

                                1. 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 ) )

          1. 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">

  1. START GSB-spezifische OpenLDAP-Access-Rights-Configuration
  1. Schreibrechte fuer ausgewaehlte Attribute
  2. Fuer alle User selber, fuer alle Site-Administratoren (uid=Manager) und LDAP-Gesamt-Administrator
  3. access to attrs=userPassword,cn,sn,mail,telephoneNumber
  4. by self write
  5. by anonymous auth
  6. by dn.base="cn=Manager,dc=company,dc=domain,dc=example" write
  7. by dn.base="uid=Manager,ou=users,dc=standardlsg,dc=company,dc=domain,dc=example" write
  8. by * none
  1. standardlsg-Mandant
  2. 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
  1. GSBAdmin-Mandant
  2. 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
  1. JEDER Site-Administrator benoetigt Lese-Rechte auf das Schema,
  2. 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
  1. 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