Zum besseren Verständnis der wichtigsten Bestandteile einer Berechtigung lohnt sich ein Blick auf die Berechtigungen und Richtlinien in einem der mit Unterstützung für Berechtigungen vorkonfigurierten Treiber: Active Directory (AD). Dazu sollten Sie sich die von Novell mitgelieferte DTD (Dokumenttypdefinition) für Berechtigungen sowie einige XML-Beispiele für das Erstellen von Berechtigungen ansehen, die auf der DTD basieren.
Dieser Abschnitt umfasst:
Die Struktur des AD-Treibers wird bei Aktivierung der Unterstützung für Berechtigungen folgendermaßen verändert:
Die folgenden Richtlinien enthalten zusätzliche Regeln, die für das Funktionieren von Berechtigungen erforderlich sind:
Mit dem folgenden Verfahren können Sie sich in iManager den XML-Code für jede Richtlinie ansehen:
Der Active Directory-Treiber mit aktivierten Berechtigungen enthält drei Berechtigungen: „Benutzerkonto“, „Gruppe“ und „Exchange Mail“.
Abbildung 6-1 Im AD-Treiber vorkonfigurierte Berechtigungen
Sie können sich Beispiele aus dem XML-Code für diese Berechtigungen in Schnitt 6.4.6, Beispielberechtigungen zum leichteren Erstellen eigener Berechtigungen ansehen.
Einige Berechtigungen sind bei Treibern mit aktivierter Unterstützung für Berechtigungen bereits vordefiniert. Sie können diese Berechtigungen verwenden oder eigene Berechtigungen in iManager oder Designer erstellen. Die folgende Berechtigungs-DTD von Novell dient als Beispiel, aus dem Sie eigene Berechtigungen ableiten können.
An die nachfolgende Erklärung der DTD schließen sich vier Beispiele für das Erstellen von Berechtigungen in diesem XML-Format mit iManager an. Wenn Ihnen die XML-Formatierung nicht liegt, können Sie in Designer Ihre Berechtigungen mit dem Assistenten für Berechtigungen auf einfachere Weise erstellen.
<!-*****************************************************************-> <!-- DirXML Entitlements DTD <!-- Novell Inc. <!-- 1800 South Novell Place <!-- Provo, UT 84606-6194 <!-- Version=1.0.0 <!-- Copyright 2005 Novell, Inc. All rights reserved --> <!--************************************************************* --> <!-- Entitlement definition stored in the XmlData attribute of a DirXML-Entitlement object. --> <!ELEMENT entitlement (values?)> <!ATTLIST entitlement conflict-resolution (priority | union) "priority" display-name CDATA #REQUIRED description CDATA #REQUIRED > <!ELEMENT values (query-app | value+)?> <!ATTLIST values multi-valued (true | false) "true" > <!ELEMENT value (#PCDATA)> <!ELEMENT query-app (query-xml, result-set)> <!ELEMENT query-xml ANY> <!ELEMENT result-set (display-name, description, ent-value)> <!ELEMENT display-name(token-attr | token-src-dn | token-association)> <!ELEMENT ent-value (token-association | token-src-dn | token-attr)> <!ELEMENT description (token-association | token-src-dn | token-attr)> <!ELEMENT token-association EMPTY> <!ELEMENT token-attr EMPTY> <!ATTLIST token-attr attr-name CDATA #REQUIRED > <!ELEMENT token-src-dn EMPTY> <!-- Entitlement reference stored in the DirXML-EntitlementRef attribute of a DirXML-EntitlementRecipient or a DirXML-SharedProfile object. --> <!ELEMENT ref (src?, id?, param?)> <!ELEMENT param (#PCDATA)> <!ELEMENT id (#PCDATA)> <!ELEMENT src (#PCDATA)> <!-- Entitlement result stored in the DirXML-EntitlementResult attribute of a DirXML-EntitlementRecipient object. --> <!ELEMENT result(dn, src, id?, param?, state, status, msg?,timestamp)> <!ELEMENT dn (#PCDATA)> <!ELEMENT state (#PCDATA)> <!ELEMENT status (#PCDATA)> <!ELEMENT msg ANY> <!ELEMENT timestamp (#PCDATA)> <!-- Cached query results stored in the DirXML-SPCachedQuery attribute of a DirXML-Entitlement object. --> <!ELEMENT items (item*)> <!ELEMENT item (item-display-name?, item-description?, item-value)> <!ELEMENT item-display-name (#PCDATA)> <!ELEMENT item-description (#PCDATA)> <!ELEMENT item-value (#PCDATA)> <!-- Representation of a DirXML-EntitlementRef within the DirXML Script and within the operation-data of an operation in an XDS document. --> <!ELEMENT entitlement-impl (#PCDATA)> <!ATTLIST entitlement-impl name CDATA #REQUIRED src CDATA #REQUIRED id CDATA #IMPLIED state (0 | 1) #REQUIRED src-dn CDATA #REQUIRED src-entry-id CDATA #IMPLIED >
Die Berechtigungs-DTD besteht aus fünf Teilen: Definition, Referenz, Ergebnis, gecachte Abfrage und interne Referenzinformationen. Der Header ist optional und enthält lediglich einen Kommentar. Die Kopfzeile der Berechtigungsdefinition in der DTD lautet:
<!-- Entitlement definition stored in the XmlData attribute of a DirXML-Entitlement object. -->
Auf Kopfzeilen folgen Elemente (ELEMENT) und Attributlisten (ATTLIST). Nachfolgend finden Sie eine ausführliche Erklärung der Elemente und Attribute unter der Kopfzeile „Entitlement Definition“. Dies ist die wichtigste Kopfzeile, auf die Sie beim Erstellen von Berechtigungen achten müssen.
<!ELEMENT entitlement (values?)>
Das Element der Stammebene lautet <entitlement>. Es kann ein einzelnes, optionales, untergeordnetes Element vom Typ <values> enthalten. Daran schließt sich die Attributliste mit den Attributen „conflict-resolution“, „display-name“ und „description“ an. Das Attribut „conflict-resolution“ (Konfliktlösung) verwendet die Attributwerte „priority“ (Priorität) oder „union“ (Zusammenführung).
conflict-resolution (priority | union) "priority"
Funktionsbasierte Berechtigungen verwenden das Attribut für Konfliktlösung, um festzulegen, wie bei mehrfacher Anwendung einer mit Werten belegten Berechtigung auf dasselbe Objekt vorzugehen ist. Beispiel: Benutzer U ist Mitglied von Berechtigungsrichtlinie A und Berechtigungsrichtlinie B, die beide auf die gleiche, mit Werten (jedoch mit unterschiedlichen Wertesätzen) belegte Berechtigung E verweisen. Berechtigung E der Berechtigungsrichtlinie A besitzt einen Wertesatz (a, b, c). Berechtigung E der Berechtigungsrichtlinie B besitzt ebenfalls einen Wertesatz (c, d, e).
Das Konfliktlösungsattribut entscheidet, welcher Wertesatz für Benutzer U gelten soll. Wenn „union“ eingestellt ist, werden Benutzer U beide Wertesätze (a, b, c, d, e) zugewiesen. Wenn „priority“ eingestellt ist, wird Benutzer U nur ein Wertesatz zugewiesen, abhängig davon, welche Berechtigungsrichtlinie die höhere Priorität hat.
Wenn eine Berechtigung nur einen Wert besitzt, müssen Konflikte über die Priorität gelöst werden, da eine Zusammenführung („union“) von Werten dazu führen würde, dass mehr als ein Wert zugewiesen wird. Derzeit verwenden funktionsbasierte Berechtigungen dieses Attribut. In Zukunft werden möglicherweise auch Workflow-basierte Berechtigungen dieses Attribut verwenden.
display-name CDATA #REQUIRED description CDATA #REQUIRED
Der tatsächliche Name einer Berechtigung soll nicht immer in der Berechtigung angezeigt werden. Die Attribute „display-name“ (Anzeigename) und „description“ (Beschreibung) geben an, was dem Benutzer angezeigt wird. (In Designer gibt es eine Option, mit der Sie einen Anzeigenamen auswählen können, der vom eigentlichen Namen der Berechtigung abweicht.)
<!ELEMENT values (query-app | value+)?> <!ATTLIST values multi-valued (true | false) "true"
Das Element <values> (Werte) ist optional und zeigt an, dass eine Berechtigung Werte besitzt. Wenn Sie dieses Element nicht verwenden, bedeutet dies, dass die Berechtigung nicht mit einem Wert belegt ist. Eine Berechtigung, die die Zugehörigkeit zu einer Verteilerliste erteilt, ist ein Beispiel für eine mit Werten belegte Berechtigung. Eine Berechtigung, die ein Konto in einer Anwendung erteilt (etwa die Benutzerkontoberechtigung des Active-Directory-Treibers), ist ein Beispiel für eine Berechtigung, die nicht mit Werten belegt ist.
Berechtigungen, die mit Werten belegt sind, beziehen ihre Werte aus drei Quellen. Eine dieser Quellen ist die externe Anwendung (vorgegeben durch das Element <query-app>). Die zweite Quelle ist eine vordefinierte, durchnummerierte Werteliste (ein oder mehrere <value>-Elemente). Die dritte Quelle ist der Client der Berechtigung (ein <values>-Element ohne übergeordnete <value> Elemente). Diese Beispiele veranschaulichen die Funktionsweise von Werten.
Mit Werten belegte Berechtigungen können ein- oder mehrwertig sein. Standardmäßig sind solche Berechtigungen mehrwertig. Für das Erzwingen dieser Einschränkung ist der Client der Berechtigung zuständig.
<!ELEMENT value (#PCDATA)>
Berechtigungswerte sind typenlose Zeichenketten.
<!ELEMENT query-app (query-xml, result-set)>
Wenn Werte von einer externen Anwendung bezogen werden sollen (z. B. von einer Email-Verteilerliste), müssen Sie mit dem Element <query-xml> eine Anwendungsabfrage festlegen. Verwenden Sie zum Exrahieren der Ergebnisse aus der Abfrage das Element <result-set>. In Beispiel 2: Anwendungsabfrageberechtigung: Externe Abfrage finden Sie dazu zwei Beispiele.
<!ELEMENT query-xml ANY>
XML-Abfragen sind XDS-formatiert. Der Befehl <query-xml> dient zum Auffinden und Auslesen von Objekten aus der verbundenen Anwendung. Die Funktionalität für DirXML-Regeln, Objektmigration usw. hängt von der Implementierung dieses Abfragebefehls im Treiber ab. Weitere Informationen zu XML-Abfragen finden Sie in der Dokumentation der Novell-Entwickler zu Abfragen.
<!ELEMENT result-set (display-name, description, ent-value)> <!ELEMENT display-name(token-attr | token-src-dn | token-association)> <!ELEMENT ent-value (token-association | token-src-dn | token-attr)> <!ELEMENT description (token-association | token-src-dn | token-attr)> <!ELEMENT token-association EMPTY> <!ELEMENT token-attr EMPTY> <!ATTLIST token-attr attr-name CDATA #REQUIRED
Verwenden Sie das Element „result-set“ (Ergebnis-Set) als Hilfe bei der Interpretation der Ergebnisse aus der Abfrage einer externen Anwendung. Drei Datenelemente sind dabei von Interesse: der Anzeigename des Werts (das untergeordnete Element „display-name“), die Beschreibung des Werts (das untergeordnete Element „description“) und der nicht angezeigte Literale des Berechtigungswerts (das untergeordnete Element „ent-value“).
Die Token-Elemente <token-src-dn>, <token-association> und <token-attr> sind im Grunde genommen Platzhalter für XPATH-Ausdrücke, die die Attributwerte „src-dn“, „association“ oder „attr“ aus einem XDS-formatierten XML-Dokument extrahieren. Die DTD geht davon aus, dass das Abfrageergebnis in XDS vorliegt.
Auch die übrigen Berechtigungskopfzeilen in der Berechtigungs-DTD erfüllen bestimmte Funktionen, spielen jedoch beim Erstellen einer Berechtigung zunächst keine Rolle.
<!-- Entitlement reference stored in the DirXML-EntitlementRef attribute of a DirXML-EntitlementRecipient or a DirXML-SharedProfile object. -->
Die in der DTD unter „Entitlement reference...“ enthaltenen Informationen verweisen auf ein Berechtigungsobjekt. Diese Informationen werden vom zuständigen Verwaltungsagenten an dieser Stelle eingefügt (z. B. vom funktionsbasierten Berechtigungstreiber Entitlement.xml oder vom Genehmigungsablauftreiber UserApplication.xml). Dies ist das auslösende Ereignis für eine Aktion in einem verbundenen System. Sie müssen in der DTD unter dieser Kopfzeile nichts verändern, können diese Informationen jedoch verwenden, um sicherzustellen, dass auf das Berechtigungsobjekt verwiesen wird.
<!-- Entitlement result stored in the DirXML-EntitlementResult attribute of a DirXML-EntitlementRecipient object. -->
Der Abschnitt unter „Entitlement result...“ erhält Angaben dazu, ob eine Berechtigung erteilt oder entzogen wurde. Dazu gehören der Zustand oder Status des Ereignisses und der Zeitpunkt der Erteilung oder Entziehung des Ereignisses (per Zeitstempel). Sie können die Elemente und Attribute unter dieser Kopfzeile unverändert lassen.
<!-- Cached query results stored in the DirXML-SPCachedQuery attribute of a DirXML-Entitlement object. -->
Der Abschnitt unter „Entitlement query...“ enthält die von einer externen Anwendung gesammelten Berechtigungswerte. Diese Informationen können später wiederverwertet werden, wenn der Berechtigungsclient diese Informationen anzeigen muss. Diese Werte werden im DirXML-SPCachedQuery-Attribut des Berechtigungsobjekts gespeichert. Sie können die Elemente und Attribute unter dieser Kopfzeile unverändert lassen.
<!-- Representation of a DirXML-EntitlementRef within the DirXML Script and within the operation-data of an operation in an XDS document. -->
Da die DTD Werte für mehr als ein Dokument definiert, ist dieser Abschnitt unter „Representation of a DirXML-EntitlementRef...“ streng genommen kein Bestandteil der Berechtigungsdefinition. Sie können die Elemente und Attribute unter dieser Kopfzeile unverändert lassen.
Die Beispiele in Schnitt 6.4.5, Erstellen und Bearbeiten von Berechtigungen in iManager zeigen den eigentlichen XML-Code, der beim Erstellen von Berechtigungen entsteht. Eine wesentlich einfachere Methode, als den Code manuell zu erstellen, bietet jedoch das mit Identity Manager gelieferte Dienstprogramm „Designer“. Nachdem Sie im Modelliermodul von Designer einen Identity Manager-Treiber zu einem Identitätsdepot hinzugefügt haben, können Sie in der Überblicksansicht mit der rechten Maustaste auf den Treiber klicken und den Befehl „Berechtigung hinzufügen“ wählen. Der Assistent für Berechtigungen fragt nach dem gewünschten Berechtigungstyp und führt Sie anschließend durch den Erstellungsvorgang.
Weitere Informationen zur Verwendung des Assistenten für Berechtigungen finden Sie im Designer for Identity Manager 3: Administration Guide (Designer für Identity Manager: Administrationshandbuch).
Es wird empfohlen, in Designer den Assistenten zum Erstellen von Berechtigungen zu verwenden. Sie haben aber auch die Möglichkeit, Berechtigungen in iManager zu erstellen.
HINWEIS:Es wird davon abgeraten, den Namen einer Berechtigung zu ändern. Wenn Sie den Namen der Berechtigung nachträglich ändern, müssen Sie auch alle Verweise in den Richtlinien ändern, in denen die Berechtigung implementiert ist. Der Name der Berechtigung wird in der Richtlinie in den Attributen „Ref“ und „Result“ gespeichert.
Sie können zwei Arten von Berechtigungen erstellen: Berechtigungen mit Werten und ohne Werte. Berechtigungen mit Werten beziehen diese Werte aus einer externen Abfrage. Sie können vom Administrator oder frei definiert sein. Nachstehend finden Sie vier Beispiele für die beiden Berechtigungsarten, die Sie erstellen können.
HINWEIS:Wenn Sie eine Zeile sehen, die das Kleiner-als-Zeichen (<) nicht enthält, bedeutet dies, dass die Zeile umbrochen wurde und ihr Inhalt eigentlich in einer Zeile und nicht auf zwei (oder drei) Zeilen verteilt angezeigt wird. Denken Sie auch daran, dass es sich hierbei im Gegensatz zur Kontoberechtigung um Beispiele für die Möglichkeiten handelt, die sich Ihnen beim Erstellen der verschiedenen Arten von Berechtigungen mit Werten bieten.
<?xml version="1.0" encoding="UTF-8"?> <entitlement conflict-resolution="priority" description="This is an Account Entitlement" display-name="Account Entitlement"/>
In diesem Beispiel lautet der Name der nicht mit Werten belegten Berechtigung „Account“. Daran schließt sich die Zeile mit dem Attribut „conflict-resolution“ und der Standardeinstellung „Priority“ an. In den meisten Fällen bedeutet dies, dass die funktionsbasierte Berechtigung mit der höchsten Priorität den Wert festlegt, wenn die Berechtigung von der Funktion „Funktionsbasierte Berechtigungen“ verwendet wird. (Da es sich hierbei jedoch um ein Beispiel für Berechtigungen ohne Werte handelt, spielen mit Werten belegte Einstellungen keine Rolle. Die Berechtigungsbeschreibung lautet „This is an Account Entitlement“ und der Anzeigename lautet „Account Entitlement“. Diese Informationen genügen, um eine Kontoberechtigung zu erstellen, mit der Sie anschließend in einer Anwendung ein Konto erteilen können.
Der Active Directory-Treiber mit aktivierter Unterstützung für Berechtigungen besitzt eine UserAccount-Berechtigung, die Active Directory zum Erteilen oder Entziehen eines Benutzerkontos verwendet.
<?xml version="1.0" encoding="UTF-8"?> <entitlement conflict-resolution="union" description="The User Account entitlement grants or denies an account in Active Directory for the user. When granted, the user is given an enabled logon account. When revoked, the logon account is either disabled or deleted depending on how the drive is configured." display-name="User Account Entitlement" name="UserAccount"> </entitlement>
In diesem Beispiel erfolgt die Konfliktlösung über das Attribut „union“, d. h., die Berechtigung kann die zugewiesenen Werte zusammenführen. (Wie bereits erwähnt, sind mit einem Wert belegte Einstellungen für Berechtigungen ohne Wert nicht relevant.) Das Feld „description“ (Beschreibung) erläutert, wofür diese Berechtigung verwendet wird und warum sie erstellt wurde. Diese Informationen sind hilfreich, wenn nachträglich Änderungen an der Berechtigung vorgenommen werden. Der eigentliche Name der Berechtigung lautet „UserAccount“, das Attribut <display-name> sorgt jedoch dafür, dass in einem Verwaltungsagenten der Name „User Account Entitlement“ (Benutzerkontoberechtigung) angezeigt wird.
Die in einem Active Directory-Treiber mit Berechtigungsunterstützung enthaltenen Gruppen- und Exchange-Postfach-Berechtigungen liefern Beispiele für Anwendungsabfragen. Verwenden Sie diese Berechtigungsart, wenn Sie zur Ausführung eines Ereignisses externe Informationen aus einem verbundenen System benötigen.
<?xml version="1.0" encoding="UTF-8"?> <entitlement conflict-resolution="union" description="The Group Entitlement grants or denies membership in a group in Active Directory. The group must be associated with a group in the Identity Vault. When revoked, the user is removed from the group. The group membership entitlement is not enforced on the publisher channel: If a user is added to a controlled group in Active Directory by some external tool, the user is not removed by the driver. Further, if the entitlement is removed from the user object instead of being simply revoked, the driver takes no action." display-name="Group Membership Entitlement" name="Group"> <values> <query-app> <query-xml> <nds dtd-version="2.0"> <input> <query class-name="Group" scope="subtree"> <search-class class-name="Group"/> <read-attr attr-name="Description"/> </query> </input> </nds> </query-xml> <result-set> <display-name> <token-src-dn/> </display-name> <description> <token-attr attr-name="Description"/> </description> <ent-value> <token-association/> </ent-value> </result-set> </query-app> </values> </entitlement>
In diesem Beispiel verwendet die Gruppenberechtigung das Attribut „union“ (Zusammenführung) zur Konfliktlösung, wenn die Berechtigung demselben Objekt mehrmals zugewiesen wird. Das Attribut „union“ führt die Berechtigungen der funktionsbasierten Berechtigungsrichtlinien zusammen, sodass die Berechtigung auch dann erteilt wird, wenn eine Richtlinie die Berechtigung entzieht, die andere Richtlinie sie jedoch erteilt.
Die ausführliche Gruppenbeschreibung ist hilfreich, denn sie erklärt den Zweck der Regeln in den Treiberrichtlinien. Diese Beschreibung ist ein gutes Beispiel für die Ausführlichkeit, mit der Sie Berechtigungen definieren sollten.
Der durch das Attribut <display-name> definierte Name lautet „Group Membership Entitlement“ (Gruppenmitgliedschaftsberechtigung) und wird in den Verwaltungsagenten angezeigt (z. B. in iManager für funktionsbasierte Berechtigungen). Dieser Name ist der relative eindeutige Name (Relative Distinguished Name, RDN) der Berechtigung. Wenn Sie keinen Anzeigenamen definieren, wird der RDN als Name für die Berechtigung verwendet.
Anhand der anfänglichen Abfragewerte wird der Baum und seine Teilbäume von oben nach unten nach dem Klassennamen „Group“ durchsucht. Diese Werte kommen vom verbundenen Active Directory-Server und die Anwendungsabfrage beginnt beim Tag <nds>. Unterhalb des Tags <query-xml> nimmt diese Abfrage Daten entgegen mit etwa der folgenden Struktur:
<instance class-name="Group" src-dn="o=Blanston,cn=group1"> <association>o=Blanston,cn=group1</association> <attr attr-name="Description"> the description for group1</attr> </instance> <instance class-name="Group" src-dn="o=Blanston,cn=group2"> <association>o=Blanston,cn=group2</association> <attr attr-name="Description"> the description for group2</attr> </instance> <instance class-name="Group" src-dn="o=Blanston,cn=group3"> <association>o=Blanston, cn=group3</association> <attr attr-name="Description"> the description for group3</attr> </instance> <!-- ... ->
Anschließend werden unter dem Tag <result-set> die von der Abfrage empfangenen Daten in die verschiedenen Felder eingefügt. In das Feld <display-name> wird z. B. o=Blanston,cn=group1 eingefügt. Das Feld <description> erhält the description for group1 und das Feld <ent-value> erhält den Wert o=Blanston,cn=group1. Da mehr als eine der vorhandenen Gruppen die Abfragekriterien erfüllt hat, wurden diese Informationen ebenfalls erfasst und als weitere Instanzen dargestellt.
HINWEIS:Der Wert für das Verknüpfungsformat ist für jedes externe System eindeutig festgelegt, sodass sich Format und Syntax je nach abgefragtem externen System unterscheiden.
Ein weiteres Beispiel ist die Exchange-Postfach-Berechtigung.
<?xml version="1.0" encoding="UTF-8"?> <entitlement conflict-resolution="union" description="The Exchange Mailbox Entitlement grants or denies an Exchange mailbox for the user in Microsoft Exchange." display-name="Exchange Mailbox Entitlement" name="ExchangeMailbox"> <values> <query-app> <query-xml> <nds dtd-version="2.0"> <input> <query class-name="msExchPrivateMDB" dest-dn="CN=Configuration," scope="subtree"> <search-class class-name="msExchPrivateMDB"/> <read-attr attr-name="Description"/> <read-attr attr-name="CN"/> </query> </input> </nds> </query-xml> <result-set> <display-name> <token-attr attr-name="CN"/> </display-name> <description> <token-attr attr-name="Description"/> </description> <ent-value> <token-src-dn/> </ent-value> </result-set> </query-app> </values> </entitlement>
In diesem Beispiel verwendet die Exchange-Postfach-Berechtigung das Attribut „union“ (Zusammenführung) zur Konfliktlösung, wenn die Berechtigung demselben Objekt mehrmals zugewiesen wird. Das Attribut „union“ führt die Berechtigungen der funktionsbasierten Berechtigungsrichtlinien zusammen, sodass die Berechtigung auch dann erteilt wird, wenn eine Richtlinie die Berechtigung entzieht, die andere Richtlinie sie jedoch erteilt.
Die Beschreibung gibt an, dass die Berechtigung für den Benutzer in Microsoft Exchange ein Exchange-Postfach erteilt oder dieses entzieht. Damit ist die Aufgabe dieser Berechtigung hinreichend genau beschrieben. Der durch das Attribut „display-name“ definierte Name lautet „Exchange Mailbox Entitlement“ (Exchange-Postfach-Berechtigung) und wird in den Verwaltungsagenten angezeigt (z. B. in iManager für funktionsbasierte Berechtigungen). Dieser Name ist der relative eindeutige Name (Relative Distinguished Name, RDN) der Berechtigung. Wenn Sie keinen Anzeigenamen definieren, wird der RDN als Name für die Berechtigung verwendet.
Anhand der anfänglichen Abfragewerte wird der Container „Configuration“ und seine Teilbäume nach dem Klassennamen von „msExchPrivateMDB“ (ein Funktionsaufruf aus Microsoft Exchange). Diese Werte stammen von der verbundenen Active Directory-Datenbank und die Anwendungsabfrage beginnt beim Tag <nds>. Zur Klasse „msExchPrivateMDB“ gibt es in eDirectory kein Gegenstück, sodass Sie sich gut mit Funktionsaufrufen in Microsoft Exchange auskennen müssen, um eine entsprechende Abfrage durchführen zu können. Die Abfrage wird jedoch aufgrund der im Active Directory-Treiber vorgefundenen Regeln und Richtlinien durchgeführt.
Berechtigungsendkonsumenten verwenden die von der Abfrage abgerufenen Daten. So wird beispielsweise der Berechtigungswert („ent-value“) über das Attribut „DirXML-EntitlementRef“ an Identity Manager-Richtlinien übergeben. Der Anzeigename und die beschreibenden Informationen werden von iManager oder der Benutzeranwendung angezeigt und im Attribut „DirXML-SPCachedQuery“ gespeichert.
Das dritte Beispiel ist eine vom Administrator definierte Berechtigung, die ein Ereignis zum Erteilen oder Entziehen erstellt, nachdem Sie einen Listeneintrag ausgewählt haben.
<?xml version="1.0" encoding="UTF-8"?> <entitlement conflict-resolution="union" description="This will show Administrator-defined Values"> <display-name="Admin-defined Entitlement"/> <values multi-valued="true"> <value>Building A</value> <value>Building B</value> <value>Building C</value> <value>Building D</value> <value>Building E</value> <value>Building F</value> </values> </entitlement>
In diesem Beispiel lautet der Name der Berechtigung „Admin-defined“ und der Anzeigename ist als „Admin-defined Entitlement“ definiert. (Sie müssen nur dann einen Anzeigenamen angeben, wenn dieser sich vom RDN der Berechtigung unterscheiden soll.) Die Zeile für die Konfliktlösung enthält die Einstellung „union“, d. h., die Berechtigung kann die zugewiesenen Werte zusammenführen.
Die Berechtigungsbeschreibung lautet
. Das multi-value-Attribut ist auf „true“ eingestellt, d. h., die Berechtigung kann einen Wert auch mehrmals zuweisen. In diesem Beispiel handelt es sich bei den Werten um mit Buchstaben gekennzeichnete Firmengebäude: „Building A“ bis „Building F“. Anschließend können Benutzer oder definierte Aufgabenmanager über einen Berechtigungsclient wie z. B. eine RBE-Aufgabe in iManager oder über die Benutzeranwendung die Gebäudeinformationen angeben, die in eine externe Anwendung wie z. B. Novell eDirectory aufgenommen werden.Das vierte Beispiel ist eine vom Administrator definierte Berechtigung, die den Administrator zur Eingabe eines Werts zwingt, bevor die Berechtigung ein Ereignis erteilen oder entziehen kann. Diese Art von Berechtigung können Sie verwenden, wenn Ihnen zum Zeitpunkt der Erstellung noch nicht alle Informationen vorliegen und Sie daher keine Aufgabenliste erstellen können.
<?xml version="1.0" encoding="UTF-8"?> <entitlement conflict-resolution="priority" description="There will be no pre-defined list"> <values multi-valued="false"/> </entitlement>
In diesem Beispiel lautet der Name der Berechtigung „Admin-defined (keine Liste)“ und die Berechtigung verwendet diesen Namen als Anzeigename, weil kein Eintrag für einen Anzeigenamen definiert ist. Auch hier gilt für das Konfliktlösungsattribut die Standardeinstellung „priority“. Dies bedeutet, dass die RBE mit der höchsten Priorität den Wert festlegt, wenn die Berechtigung von der Funktion „Funktionsbasierte Berechtigungen“ verwendet wird. Sie können anschließend über einen Berechtigungsclient wie z. B. eine RBE-Aufgabe in iManager oder über die Benutzeranwendung die Gebäudeinformationen angeben, die in eine externe Anwendung wie z. B. Novell eDirectory aufgenommen werden.
Die Beispiele für das Erstellen und Verwenden von Berechtigungen haben die ersten beiden Schritte dieses Verfahrens veranschaulicht (siehe Schnitt 6.2, Erstellen von Berechtigungen: Überblick). Schritt 1 beinhaltet das Anlegen einer Checkliste mit den Zielen, die Sie mit den Berechtigungen verfolgen. In Schritt 2 schreiben Sie die Berechtigungen, mit denen die Ziele in der Checkliste umgesetzt werden sollen. Schritt 3, das Erstellen von Richtlinien für den Identity Manager-Treiber, würde den Rahmen dieses Kapitels sprengen. Informationen zum Erstellen und Bearbeiten von Richtlinien finden Sie im Policy Builder and Driver Customization Guide (Handbuch zum Richtlinien-Builder und zur Treiberanpassung) und in der Dokumentation zum jeweiligen Identity Manager-Treiber.
Nachdem Sie Berechtigungen erstellt (oder die bei bestimmten Identity Manager-Treibern enthaltenen, vorkonfigurierten Berechtigungen verwendet) haben, müssen Sie diese in Schritt 4 verwalten. Berechtigungen werden durch zwei Pakete oder Agenten verwaltet: über iManager als funktionsbasierte Berechtigungsrichtlinien oder über die Benutzeranwendung bei Workflow-basierter Bereitstellung. Informationen zu Berechtigungen, die bei der Workflow-basierten Bereitstellung verwendet werden, finden Sie in Abschnitt V: „Entwerfen und Verwalten von Bereitstellungsanforderungen“ im „Identity Manager-Benutzeranwendung: Administrationshandbuch“. Der Rest dieses Kapitels befasst sich mit funktionsbasierten Berechtigungen.