Show TOC

Beispiel: Mehrere Objektklassen für einen Principal-TypLocate this document in the navigation structure

Dieses Beispiel gilt nur, wenn Sie einen Verzeichnisdienst als Datenquelle für Ihre benutzerbezogenen Daten verwenden.

Marcus Kopp hat einen SUN-One-Verzeichnisserver und möchte die UME so konfigurieren, dass sie eine zweite Objektklasse zur Repräsentation von Benutzern verwendet. Die beiden Objektklassen, die Benutzer repräsentieren, sind inetOrgPerson und myUser.

Zum Festlegen der Objektklasse für einen Principal-Typ muss Marcus folgende Unterabschnitte des Verzeichnisdienstabschnitts der Datenquellen-Konfigurationsdatei ändern:

  • <privateSection>
  • <attributeMapping>
 <privateSection>-Unterabschnitt

Marcus muss Objektklassen, benennende Attribute und benennende Hilfsattribute im Unterabschnitt <privateSection> der Datenquellen-Konfigurationsdatei definieren.

Beispiel:  <privateSection>-Unterabschnitt

<privateSection>     <ume.ldap.access.server_type>SUN</ume.ldap.access.server_type>     …     <ume.ldap.access.objectclass.user>         inetOrgPerson,myUser     </ume.ldap.access.objectclass.user>     <ume.ldap.access.objectclass.uacc>         inetOrgPerson,myUser     </ume.ldap.access.objectclass.uacc>     …     <ume.ldap.access.naming_attribute.user>         uid,my_uid     </ume.ldap.access.naming_attribute.user>     <ume.ldap.access.auxiliary_naming_attribute.user>         cn     </ume.ldap.access.auxiliary_naming_attribute.user>     <ume.ldap.access.naming_attribute.uacc>         uid,my_uid     </ume.ldap.access.naming_attribute.uacc>     <ume.ldap.access.auxiliary_naming_attribute.uacc>         cn     </ume.ldap.access.auxiliary_naming_attribute.uacc>     … </privateSection>

Die Reihenfolge der Einträge in den verschiedenen Tags ist sehr wichtig. Der erste Eintrag für die Objektklasse gehört dem ersten Eintrag für das benennende Attribut an. Im Beispiel gehören inetOrgPerson, uid und cn zusammen. myUser und my_uid gehören zusammen.

Über die UME-API kann Marcus nur neue Einträge anlegen, die der ersten Objektklasse in der Liste angehören. Im Beispiel kann Marcus nur Einträge der Objektklasse inetOrgPerson anlegen.

Zum Anlegen neuer Einträge auf dem Verzeichnisserver benötigt die UME zusätzliche Informationen, z.B. dass ein weiteres benennendes Attribut cn ist. Marcus definiert dies folgendermaßen:

    <ume.ldap.access.auxiliary_naming_attribute.user>         cn     </ume.ldap.access.auxiliary_naming_attribute.user>

Auf dieselbe Art und Weise gibt Marcus weitere Objektklassen an.

    <ume.ldap.access.auxiliary_objectclass.user>         person,organizationalPerson,top     </ume.ldap.access.auxiliary_objectclass.user>

Dieses Tag gibt an, dass beim Anlegen eines der Objektklasse inetOrgPerson zugehörigen neuen Benutzers die Objektoberklassen person, organizationalPerson und top ebenfalls angegeben werden müssen. Die Hilfsobjektklassen und benennenden Attribute sind nur beim Anlegen eines neuen Benutzers erforderlich. Sie sind nicht zum Suchen, Ändern usw. erforderlich.

Das Beispiel beschreibt, wie mehrere Objektklassen für Benutzer und Benutzerkonten definiert werden können. Auf dieselbe Art und Weise kann Marcus mehrere Objektklassen für Gruppen definieren.

<attributeMapping>-Unterabschnitt

Marcus muss die Attributzuordnung ändern, damit die logischen Attribute der UME-API nicht demselben physischen Attributnamen für jede Objektklasse zugeordnet werden. Im folgenden Beispiel wird das Attribut firstname dem Attribut givenname für die Objektklasse inetOrgPerson und dem Attribut my_givenname der Objektklasse myUser zugeordnet.

Zur Unterscheidung der Objektklassen muss Marcus einen Präfix hinzufügen, der den Objektklassennamen jedes logischen und physischen Attributnamens enthält.

Achtung

Marcus muss den Namen des physischen Attributs in Kleinbuchstaben eingeben. Die Zuordnung ist sonst nicht möglich.

Marcus muss den Attributzuordnungsabschnitt für die LDAP-Datenquelle in der Konfigurationsdatei anpassen. Siehe auch <attributeMapping>.

Beispiel: <attributeMapping>-Unterabschnitt

<attributeMapping>   <principal type="user">     <nameSpace name="com.sap.security.core.usermanagement">       <attributes>          <attribute name="inetorgperson:firstname">           <physicalAttribute name="inetorgperson:givenname"/>         </attribute>         <attribute name="myuser:firstname">           <physicalAttribute name="myuser:my_givenname"/>         </attribute>         <attribute name="inetorgperson:displayname">           <physicalAttribute name="inetorgperson:displayname"/>         </attribute>         <attribute name="myuser:displayname">           <physicalAttribute name="myuser:my_displayname"/>         </attribute>         <attribute name="inetorgperson:lastname">           <physicalAttribute name="inetorgperson:sn"/>         </attribute>         <attribute name="myuser:lastname">           <physicalAttribute name="myuser:my_sn"/>         </attribute>       </attributes>     </nameSpace>   </principal> </attributeMapping>
 

Marcus muss eine Attributzuordnung für jedes Attribut, für das der Verzeichnisserver zuständig ist, und für jede Objektklasse angeben.