6.13 Regeln, Richtlinien und Formatvorlagen

In Identity Manager ist eine Regel eine Sammlung von Richtlinien. Jede Regel hat Bedingungen, die eingehalten werden müssen, sowie Aktionen, die ausgeführt werden müssen, wenn die Bedingungen zutreffen. Die Grammatik der Bedingungen sollte für Menschen gut lesbar sein und Sinn machen. Beispielsweise wäre eine Bedingung „Wenn Objektklasse gleich Benutzer“ wahr, wenn das im aktuellen Dokument beschriebene Objekt ein Benutzerobjekt ist, und falsch, wenn das Objekt eine Gruppe ist. Bedingungen setzen sich aus Bedingungsgruppen zusammen. Innerhalb einer Bedingungsgruppe können alle Bedingungen mit UND bzw. ODER kombiniert werden, und das Ergebnis muss für die Bedingungsgruppe wahr sein, um als wahr evaluiert zu werden, andernfalls wird es als falsch evaluiert. Mehrere Bedingungsgruppen können ebenfalls mit UND und ODER kombiniert werden. Wenn die Bedingungsgruppe(n) als „Wahr“ evaluiert wurde(n), dann werden die Aktionen der Regel ausgeführt.

Abbildung 6-2 Bedingungen für den Richtlinien-Builder

Aktionen können für das aktuelle Dokument ausgeführt werden und in vielen Fällen reicht dies auch aus. Doch Aktionen können auch die Quelle oder das Ziel abfragen, also entweder das Identitätsdepot oder das verbundene System, abhängig davon, welchen Kanal Sie verwenden), um zusätzliche Informationen zu erhalten. Aktionen können das aktuelle Dokument ändern, um eine geänderte Version dieses Dokuments zu erstellen. Sie können das aktuelle Dokument aber auch vollständig sperren. Aktionen können verwendet werden, um unterschiedliche Dokumente zu erstellen. Ein Dokument, das ein Löschereignis in einem verbundenen System beschreibt, könnte von einer Bedingung getestet werden (wenn Aktion gleich Löschung). Es könnte einen Satz von Aktionen auslösen, um zu verhindern, dass das verknüpfte Objekt in eDirectory gelöscht wird (Veto) und stattdessen dieses Objekt geändert wird, um dessen Verknüpfungswert für diese Anwendung zu entfernen (Verknüpfung-entfernen) und um es zu deaktivieren (Zielattributwert „Anmeldung deaktiviert“ auf „Wahr“ festlegen).

Abbildung 6-3 Aktionen des Richtlinien-Builders

Richtlinien definieren, welche Daten übertragen und wie die Daten zwischen dem verbundenen System und dem Identitätsdepot synchronisiert werden. Ein Standard-Richtliniensatz ist in der Treiberkonfiguration verfügbar. Andere Richtlinien sind möglicherweise lokale Anpassungen des Treibers. Sie können Richtlinien mit dem DirXML-Skript, XSLT oder dem ECMA-Skript schreiben.

Der Zweck einer Richtlinie besteht darin, Änderungen am Eingabedokument vorzunehmen und ein Ausgabedokument zu erzeugen. Die meisten Richtlinien werden entweder im Abonnentenkanal evaluiert oder im Herausgeberkanal. Die Schemazuordnungsrichtlinie, die Eingabetransformationsrichtlinie und die Ausgabetransformationsrichtlinie werden in beiden Kanälen evaluiert. Beispielsweise verwendet ein Unternehmen inetOrgPerson als Hauptbenutzerklasse, während in einem anderen Unternehmen „Benutzer“ verwendet wird. Eine Richtlinie kann implementiert werden, um die Änderung an der Telefonnummer für eine inetOrgPerson im ersten Unternehmen hinzuzufügen. Ein andere Regel kann implementiert werden, durch die die Richtlinie für die Benutzerklasse angewendet werden kann. Richtlinien nehmen Schematranformationen vor, geben Übereinstimmungskriterien an, die festlegen, ob ein Objekt bereits im verbundenen System oder Identitätsdepot vorhanden ist, und führen viele andere Aufgaben aus. Daher könnte ein Ereignis vom Typ „Hinzufügen“, das vom verbundenen System gemeldet wurde, als ein Änderungsvorgang im Identitätsdepot enden, falls eine Übereinstimmungsrichtlinie festlegt, dass das von Ihnen hinzugefügte Objekt bereits im Identitätsdepot vorhanden ist.

Wenn im Abonnentenkanal ein neuer Benutzer im Identitätsdepot erstellt wird und Sie möchten, dass dies im verbundenen System geschieht, ruft die Identity Manager-Engine eine Reihe von Richtlinien auf, bevor dieser Befehl an den Treiber gesendet wird. Diese Richtlinien definieren die Art und Weise, wie Objekte erstellt werden, und legen fest, ob ein entsprechender Benutzer bereits im verbundenen System vorhanden ist. Sie treffen Entscheidungen zur Platzierung, liefern die Standardwerte für die erforderlichen Attribute, die nicht angegeben wurden, und so weiter. Dieses Ereignis vom Typ „Hinzufügen“ wird möglicherweise in ein Ereignis vom Typ „Ändern“ transformiert, wenn das Objekt im verbundenen System vorhanden ist. Attribute, die im ursprünglichen Ereignis nicht vorhanden waren, könnten hinzugefügt werden, um dem Objekterstellungsmodell des verbundenen Systems zu entsprechen.

Formatvorlagen definieren XSLT-Transformationsregeln. Formatvorlagen transformieren Eingabe- und Ausgabebefehle in verschiedene Befehle, ändern ein Ereignis von einem Typ in einen anderen, oder führen andere beliebige XML-Transformationen durch. Weitere Informationen hierzu finden Sie im Abschnitt Identity Manager-Formatvorlagen.

6.13.1 Eingabetransformationsregel

Die Eingabetransformationsregel betrifft sowohl den Abonnentenkanal als auch den Herausgeberkanal. Der Zweck der Eingabetransformationsregel besteht darin, eine vorläufigeTransformation an allen XML-Dokumenten vorzunehmen, die vom verbundenen System an Identity Manager gesendet wurden und vom verbundenen System aus an Identity Manager zurückgesendet wurden. Die Eingabetransformationsregel wird auf die XML-Dokumente angewendet, die an XmlCommandProcessor.execute und XmlQueryProcessor.query gesendet werden, wenn sie vom verbundenen System aufgerufen werden. Sie wird auch auf die XML-Dokumente angewendet, die von SubscriptionShim.execute und XmlQueryProcessor.query zurückgesendet werden, wenn sie von der Identity Manager-Engine aufgerufen werden. Die Eingabetransformationsrichtlinie wird vor der Schemazuordnungsrichtlinie angewendet.

Die Eingabetransformationsregel wird oft verwendet, um Daten vom Anwendungsformat in das Identitätsdepotformat zu transformieren. Während die Eingabetransformation für Datenformattransformationen verwendet wird, führt die Ausgabetransformationsregel die Datentransformation normalerweise in die entgegengesetzte Richtung durch (das heißt, sie transformiert die Daten vom Identitätsdepotformat in das Anwendungsformat). Diese Regel wird in der Namespace der Anwendung aktiv. Sie könnte beispielsweise zum Neuformatieren von Daten verwendet werden, beispielsweise um eine Telefonnummer im Format 1(815)555-1212 in das Format 1-815-555-1212 zu ändern. Die Eingabetransformationsregel wird auch dazu verwendet, Aktionen durchzuführen als Antwort auf die Ergebnisse von Befehlen, die an das Schnittstellenmodul gesendet wurden. Schemanamen befinden sich immer in der Anwendungs-Namespace im XML-Dokument, das von der Eingabetransformationsrichtlinie verarbeitet wird. Es ist auch möglich, die Eingabetransformationsregel zu verwenden, um ein beliebiges natives XML-Format der verbundenen Anwendung in das von Identity Manager erwartete Format zu transformieren. Derartige Transformationen müssen in XSLT geschrieben werden, weil das DirXML-Skript nur mit dem XML-Vokabular arbeitet, das für Identity Manager spezifisch ist.

6.13.2 Ausgabetransformationsregel

Die Ausgabetransformationsrichtlinie betrifft sowohl den Abonnentenkanal als auch den Herausgeberkanal. Der Zweck der Ausgabetransformationsrichtlinie besteht darin, eine abschließende Transformation an allen XML-Dokumenten vorzunehmen, die von der Identity Manager-Engine an das Schnittstellenmodul gesendet und von Identity Manager an das Schnittstellenmodul zurückgesendet werden. Die Ausgabetransformationsrichtlinie wird auf die XML-Dokumente angewendet, die an SubscriptionShim.execute und XmlQueryProcessor.query gesendet werden, wenn sie von der Identity Manager-Engine aufgerufen werden. Sie wird auch auf die XML-Dokumente angewendet, die von XmlCommandProcessor.execute und XmlQueryProcessor.query zurückgesendet werden, wenn sie vom Schnittstellenmodul aufgerufen werden. Die Ausgabetransformationsregel wird nach der Schemazuordnungsrichtlinie angewendet.

Die Ausgabetransformationsregel ist die Umkehrung der Eingabetransformationsregel. Sie ändert den Befehl, der wie erforderlich an das Schnittstellenmodul übertragen werden soll. Dazu muss normalerweise das rückgängig gemacht werden, was in der Eingabetransformationsregel ausgeführt wurde. Wenn Sie beispielsweise eine Eingabetransformationsregel haben, die Telefonnummern im Format 1(815)555-1212 in das Format 1-815-555-1212 konvertiert, dann brauchen Sie eine Ausgabetransformationsregel, die 1-815-555-1212 ín 1(815)555-1212 konvertiert.

Sie können die Ausgabetransformationsrichtlinie auch für die Transformation von dem Format, das Identity Manager verwendet, in ein beliebiges natives XML-Format der verbundenen Anwendung verwenden. Diese Transformationen müssen in XSLT geschrieben werden, weil das DirXML-Skript nur mit dem XML-Vokabular arbeitet, das für Identity Manager spezifisch ist.

6.13.3 Verknüpfungen

Mit dem Wert „Verknüpfung“ bleibt Identity Manager auf dem Laufenden darüber, welches Objekt im verbundenen System mit einem Objekt im Identitätsdepot übereinstimmt. In fast allen Fällen sollte dies eine 1:1-Übereinstimmung sein, sodass man sagen kann, dass „john doe“, Mitarbeiter Nummer 1234567 im HR-System genau mit dem Benutzerobjekt „jdoe13“ im Identitätsdepot, mit „doe john“ in Active Directory und mit „jdoe13@example.com“ im Email-System übereinstimmt. Die meisten Computersysteme weisen einen internen eindeutigen Bezeichner auf. eDirectory und Active Directory verfügen über einen globalen eindeutigen Bezeichner (Globally Unique Identifier, GUID). Viele HR-Systeme verwenden eine Mitarbeiternummer. Email-Systeme weisen normalerweise einen eindeutigen Wert für die Email-Adresse jeder einzelnen Person auf. Identity Manager verwendet diese Bezeichner, um eine Verknüpfung zu erstellen. Verknüpfungen werden im Identitätsdepot gespeichert. Im Abonnentenkanal verwendet die Identity Manager-Engine diesen Wert, um es dem Schnittstellenmodul zu ermöglichen, das korrekte Objekt im verbundenen System zu ändern. Im Herausgeberkanal stellt das Schnittstellenmodul den Verknüpfungswert bereit und ermöglicht es der Identity Manager-Engine somit, das korrekte Objekt schnell und leicht im Identitätsdepot aufzufinden.

6.13.4 Künstliches Hinzufügen

Wenn der Änderungsvorgang keine Verknüpfung enthält, die bei Ankunft im Hinzufügeprozessor in ein tatsächliches Objekt aufgelöst wird, konvertiert die Identity Manager-Engine das Ereignis vom Typ „Ändern“ in einen Vorgang des künstlichen Hinzufügens. Die ist der Vorgang des künstlichen Hinzufügens und er kann sowohl im Herausgeber- als auch im Abonnentenkanal vorkommen. Die Identity Manager-Engine verwendet das Ereignis vom Typ „Ändern“, um herauszufinden, mit welchem Objekt sie arbeiten soll. Sie verwendet dann den Filter für Rückfragen, um alle Attribute abzurufen, die für dieses Objekt verfügbar und im aktuellen Kanal auf „Synchronisieren“ oder „Benachrichtigen“ festgelegt sind. Sie entfernt anschließend das Ereignis vom Typ „Ändern“ und erstellt ein Ereignis vom Typ „Hinzufügen“, das es ersetzt. Dieses Ereignis vom Typ „Hinzufügen“ wird dann durch die Übereinstimmungs-, Erstellungs-, Platzierungs- und Befehlstransformation geleitet (im Abonnenten durchläuft es außerdem noch die Schemazuordnung und Ausgabetransformation). Die Ereignistransformationsregel wird nicht für Vorgänge des künstlichen Hinzufügens ausgelöst. Der Grund dafür ist der Standort der Regel vor dem Hinzufügeprozessor.

Abbildung 6-4 Verknüpfungsprozessor im Abonnentenkanal

6.13.5 Verarbeitung der Zusammenführung

Ein Vorgang der Zusammenführung wird ausgeführt, wenn die Identity Manager-Engine einen Hinzufügevorgang in einen Änderungsvorgang konvertiert. Am häufigsten geschieht dies bei einer ursprünglichen Migration, weil durch die Migration Objekte entlang einem Kanal gesendet werden und die Übereinstimmungsregel ein Objekt findet, das es zur Verknüpfung mit dem zu migrierenden Objekt verwenden kann.

In einem Vorgang der Zusammenführung wird das aktuelle Dokument verworfen (wie das künstliche Hinzufügen), und der Filter wird verwendet, um sowohl das verbundene System als auch das Identitätsdepot nach allen Werten abzufragen. Die Einstellung für jedes Attribut im Filter wird verwendet, um zu entscheiden, was mit den Daten geschehen soll. Optional können die Quellinformationen mit den Informationen vom Ziel überschrieben, das Ziel mit der Quelle überschrieben, beide Methoden kombiniert und beide mit den Ergebnissen aktualisiert werden oder es kann einfach nichts getan werden. Im folgenden Flussdiagramm sind der Zusammenführungsprozessor des Herausgebers und der Zusammenführungsprozessor des Abonnenten dargestellt.

Abbildung 6-5 Zusammenführungsprozessor des Herausgebers

Abbildung 6-6 Zusammenführungsprozessor des Abonnenten