Chat now with support
Chat with Support

Identity Manager 8.0 - Referenzhandbuch für die Zielsystemsynchronisation

Zielsystemsynchronisation mit dem Synchronization Editor Grundlagen für die Zielsystemsynchronisation Einrichten der Synchronisation
Synchronization Editor starten Synchronisationsprojekt erstellen Synchronisation konfigurieren
Mappings einrichten Synchronisationsworkflows einrichten Systemverbindungen herstellen Scope bearbeiten Variablen und Variablensets nutzen Startkonfigurationen einrichten Basisobjekte einrichten
Übersicht der Schemaklassen Anpassen einer Synchronisationskonfiguration Konsistenz der Synchronisationskonfiguration prüfen Synchronisationsprojekt aktivieren
Ausführen der Synchronisation Auswerten der Synchronisation Einrichten der Synchronisation mit den Standardkonnektoren Aktualisieren bestehender Synchronisationsprojekte Zusätzliche Informationen für Experten Fehlerbehebung Anhang: Beispiel für eine Konfigurationsdatei

Fehlerbehebung

Fehlerhafte Abbildung von Objekthierarchien nach der Synchronisation

Wenn Objekte synchronisiert werden, die eine Hierarchie abbilden, können folgende Fehler auftreten:

  • Objekte werden an einer falschen Position innerhalb der Hierarchie abgebildet.
  • Objekte werden nicht eingelesen.
Wahrscheinliche Ursache

Die übergeordneten Objekte konnten nicht referenziert werden. Wenn das übergeordnete Objekt eine Pflichteigenschaft ist, können die untergeordneten Objekte nicht gespeichert werden.

Standardmäßig werden bei der SynchronisationClosed die Objekte in Blöcken zu je 1024 Objekten verarbeitet. Die Reihenfolge, in der die einzelnen Objekte eingelesen werden, ist zufällig. Dadurch kann es passieren, dass ein untergeordnetes Objekt verarbeitet wird, wenn das übergeordnete Objekt noch nicht eingelesen wurde. Das übergeordnete Objekt kann damit nicht zugeordnet werden.

Beispiel: Import von Kostenstellen mit dem CSV Konnektor

Kostenstellen bilden eine Objekthierarchie. Das jeweils übergeordnete Objekt ist über die Spalte UID_ParentProfitCenter zugeordnet. Der gesamte Hierarchiepfad steht in der Spalte FullPath (Vollständiger Name).

Während der Synchronisation kann es passieren, dass eine Kostenstelle vor ihrer übergeordneten Kostenstelle eingelesen wird. Die übergeordnete Kostenstelle kann somit nicht referenziert werden. Da die übergeordnete Kostenstelle keine Pflichteigenschaft ist, wird das Objekt zwar eingelesen, aber es erscheint in der Hierarchie an einer unerwarteten Position. In der Datenbank wird ein anderer vollständiger Name gebildet als in der CSV-Datei angegeben ist. Wenn der vollständige Name als einziges Matching-Kriterium für die Identifikation der Objekte verwendet wird, können die Objekte nun nicht mehr eindeutig zugeordnet werden.

Lösung

Hinweis:

  • Der Lösungsansatz gilt nur, um Referenzen auf denselben Objekttyp aufzulösen.
  • Bei einer großen Datenmenge kann die Synchronisation langsamer werden.
  • Der beschriebene Lösungsansatz ist eine Möglichkeit den Fehler zu verhindern. Je nach konkreter Datensituation kann es auch andere Lösungswege geben.

Um den Fehler zu verhindern

  • Kennzeichnen Sie im ZielsystemschemaClosed die Spalte, die den Hierarchiepfad enthält, als Sortierkriterium und setzen Sie an der StartkonfigurationClosed die Partitionsgröße auf "1".

    Bei der Synchronisation werden die Objekte nach dem Hierarchiepfad sortiert und in dieser Reihenfolge einzeln in die Datenbank eingelesen. Dadurch wird sichergestellt, dass das übergeordnete Objekt bereits vorhanden ist und referenziert werden kann.

  • Stellen Sie am SynchronisationsworkflowClosed die manuelle Abhängigkeitsauflösung ein.

    Das kann in bestimmten Datensituationen notwendig sein, beispielsweise bei der Synchronisation von Kostenstellen. Hier wird der vollständige Name als einziges Matching-Kriterium verwendet. In der One Identity Manager Datenbank wird er per Bildungsregel aus der Bezeichnung der Kostenstelle (Spalte AccountNumber) und dem vollständigen Namen des übergeordneten Objekts gebildet. Bei der automatischen Abhängigkeitsauflösung werden die übergeordneten Objekte erst in einem zweiten SynchronisationsschrittClosed zugeordnet. Nach dem ersten Synchronisationsschritt sind damit noch keine übergeordneten Objekte zugeordnet. Der vollständige Name wird nur aus der Bezeichnung der Kostenstelle gebildet. Alle untergeordneten Objekte haben somit in der Datenbank einen anderen vollständigen Namen als im Zielsystem. Im zweiten Synchronisationsschritt können diese Objekte nicht mehr eindeutig identifiziert werden. Die übergeordneten Objekte können dadurch nicht zugeordnet werden.

    Bei der manuellen Abhängigkeitsauflösung werden alle Property-MappingClosed-Regeln in einem Synchronisationsschritt ausgeführt. Das übergeordnete Objekt wird sofort zugeordnet. Die Bildungsregel ermittelt damit den korrekten vollständigen Namen.

Um eine Spalte als Sortierkriterium zu kennzeichnen

  1. Bearbeiten Sie im Synchronization EditorClosed das Zielsystemschema.
    1. Wählen Sie die Kategorie Konfiguration | Zielsystem.
    2. Klicken Sie Verbindung bearbeiten....

      Der Systemverbindungsassistent wird gestartet.

  2. Wählen Sie die Seite, auf der die Option Hierarchische Sortierung bearbeitet werden kann.

    Hinweis: Die Systemverbindungsassistenten der verschiedenen Zielsysteme zeigen unterschiedliche Seiten an. Beispielsweise wählen Sie im Systemverbindungsassistenten für CSV-Systeme die Seite Anzeigeinformationen.
  3. Wählen Sie die Spalte, die den Hierarchiepfad enthält.
  4. Aktivieren Sie die Option Hierarchische Sortierung.
  5. Speichern Sie die Änderungen.

Um die Partitionsgröße anzupassen

  1. Aktivieren Sie im Synchronization Editor den Expertenmodus.
    1. Wählen Sie das Menü Datenbank | Einstellungen...
    2. Aktivieren Sie Expertenmodus aktivieren.
    3. Klicken Sie OK.
  2. Bearbeiten Sie die Eigenschaften der Startkonfiguration.
    1. Wählen Sie die Kategorie Konfiguration | Startkonfigurationen.
    2. Wählen Sie in der Dokumentenansicht die Startkonfiguration und klicken Sie Bearbeiten....
  3. Wählen Sie den Tabreiter Erweitert.
  4. Erfassen Sie im Eingabefeld Partitionsgröße den Wert "1".

    Ausführliche Informationen zu den erweiterten Eigenschaften einer Startkonfiguration finden Sie im One Identity Manager Referenzhandbuch für die Zielsystemsynchronisation.

  5. Klicken Sie OK.
  6. Deaktivieren Sie den Expertenmodus

Um die manuelle Abhängigkeitsauflösung einzustellen

  1. Bearbeiten Sie die Eigenschaften des Workflows.
    1. Wählen Sie die Kategorie Workflows.
    2. Wählen Sie in der Navigationsansicht den Workflow.
    3. Wählen Sie im Workfloweditor die Ansicht Allgemein und klicken Sie Bearbeiten.
  2. Wählen Sie im Eingabefeld Abhängigkeitsauflösung den Wert "Manuell".
  3. Klicken Sie OK.
  4. Speichern Sie die Änderungen.
  5. Aktivieren Sie das SynchronisationsprojektClosed.

Anhang: Beispiel für eine Konfigurationsdatei

Folgender Auszug aus einer Konfigurationsdatei enthält die Änderungen, die für das Beispiel im Abschnitt Anpassen der Konfigurationsdatei notwendig sind.

<?xml version="1.0" encoding="utf-8"?>

<SynchronizationEditorWorkspace Version="1.0">

<Parameters>

<Parameter Name="Database" Display="Connected database" IsQueryParameter="False" IsSecret="False"></Parameter>

<Parameter Name="DBUser" Display="Database server user" IsQueryParameter="False" IsSecret="False"></Parameter>

<Parameter Name="DBPassword" Display="Database server password" IsQueryParameter="True" IsSecret="True"></Parameter>

<Parameter Name="SystemUser" Display="One Identity Manager system user" IsQueryParameter="False" IsSecret="False"></Parameter>

<Parameter Name="SystemPassword" Display="Password of system user" IsQueryParameter="True" IsSecret="True"></Parameter>

<Parameter Name="Domain" Display="Distinguished name of the domain" IsQueryParameter="False" IsSecret="False"></Parameter>

<Parameter Name="DomainController" Display="Distinguished name of the domain controller" IsQueryParameter="False" IsSecret="False"></Parameter>

<Parameter Name="ADUser" Display="Active Directory user" IsQueryParameter="False" IsSecret="False"></Parameter>

<Parameter Name="ADUserPassword" Display="Password of Active Directory user" IsQueryParameter="True" IsSecret="True"></Parameter>

<Parameter Name="SyncProject" Display="Synchronization Project" IsQueryParameter="False" IsSecret="False"></Parameter>

</Parameters>

<Global>

<Data Name="WorkDatabase.ConnectionString" Display="Connection string" Type="System.String, mscorlib">data source=Datenbankserver;initial catalog=$Database$;user id=$DBUser$;pooling=False;Password=$DBPassword$</Data>

<Data Name="WorkDatabase.AuthenticationString" Display="Authentication string" Type="System.String, mscorlib">Module=Authentifizierungsverfahren;User[VI.DB_USER]=$SystemUser$;(Password)Password[VI.DB_Password]=$SystemPassword$</Data>

<!-- … -->

</Global>

<Editors>

<Editor Name="ShellWizard" Type="VI.Projector.Editor.Wizards.ShellWizard, VI.Projector.Editor">

<!-- … -->

<Data Name="ShellDisplay" Display="Script display name" Type="System.String mscorlib">$SyncProject$</Data>

<!-- … -->

<Data Name="MainConnection.ConnectionParameter" Display="Connection parameter" Type="System.String, mscorlib">Authentication=ProjectorAuthenticator;data source=Datenbankserver; DBFactory="VI.DB.ViSqlFactory, VI.DB";initial catalog=$Database$;password=$DBPassword$; pooling=False;user id=$DBUser$</Data>

<!-- … -->

<Data Name="ConnectedSystemConnection.ConnectionParameter" Display="Connection parameter" Type="System.String, mscorlib">ADAuthentication=1;ADEnableras=False;ADEnablerecyclebin=False; ADEnableterminal=True;ADPort=389;ADRootdn=$Domain$;ADServer=$DomainController$; ADTypeEnableExtensions=True;ADTypeExtensions=;baseloginaccount=$ADUser$; basepassword=$ADUserPassword$</Data>

<!-- … -->

</Editor>

</Editors>

</SynchronizationEditorWorkspace>

Related Documents