Tags:
create new tag
, view all tags

LDAPS Synchronisation

OU Attribut

Das OU Attribut die Menge aller Gruppen, in denen ein User Mitglied ist. Es bildet nicht nur die direkten Mitgliedschaften ab, sondern auch alle geerbten (durch Verschachtelung der Gruppen). Im Unterschied zum memberOf Attribut im Active Directory ist das OU-Attribut keines, das sich selbständig aktualisiert. Das bedeutet, dass in der nethz-DB effizient festgestellt werden muss, welche User zu aktualisieren sind.

Folgende Use-Cases müssen dabei beachtet werden:

  • User kommt zu einer Gruppe hinzu oder weg
  • Untergruppe kommt zu einer Gruppe hinzu (oder weg)
  • LDAPS-Destination für eine Gruppe wird geändert
  • Gruppe wird umbenannt

In allen Fällen hat dies nicht nur Auswirkungen auf die LDAPS-Gruppe selber sondern auch auf eine Menge von Usern.

In der nethz Datenbank werden Gruppen und deren Mitglieder in den Tabellen

  • ngroup (Gruppen)
  • ngroup_member (Gruppen - User)
  • ngroup_includes (Gruppen - Untergruppen)

gespeichert. Auf den Tabellen registrieren Trigger (*ins_aft) jedwelche Änderungen. In unserem Fall (LDAPS) sind es folgende:

Trigger/Prozedur Beschreibung
ngroup_member_ins_aft schreibt alle Änderungen zunächst in die Zwischentabelle ngroup_member_changes
ngroup_member_del_aft analog wie oben
ngroup_member_ins_aft_stmt Statement-Trigger, welcher die Prozedur ngroup_member_changes_proc aufruft
ngroup_member_del_aft_stmt analog wie oben
ngroup_member_changes_proc läuft alle Einträge in der Temporärtabelle ngroup_member_changes durch. Erstellt Einträge in der Tabelle sync_uname_destination, sofern die Destination für diese Gruppe das Flag destination.sync_uname_member_of=1 gesetzt hat. Bei bereits vorhandenen Einträgen wird das Flag is_synched=0 gesetzt sowie when_changed=SYSTIMESTAMP
ngroup_includes_ins_aft schreibt alle Änderungen zunächst in die Zwischentabelle ngroup_includes_changes
ngroup_includes_del_aft dito.
ngroup_includes_ins_aft_stmt Statement-Trigger, welcher die Prozedur ngroup_includes_changes_proc aufruft
ngroup_includes_del_aft_stmt analog wie oben
ngroup_includes_changes_proc analog wie ngroup_member_changes_proc mit dem Unterschied, dass hier alle in der Untergruppe enthaltenen User geprüft werden
ngroup_up_aft Falls der Name einer Gruppe geändert wurde, werden alle betroffenen User in sync_uname_destination markiert
ngroup_destination_aft_stmt wird nach INSERT oder DELETE aufgerufen (d.h. Destination wird hinzugefügt oder entfernt). Bei einem entsprechenden destination.sync_uname_member_of Flag werden alle User in sync_uname_destination für den Update markiert

Synchronisationssjobs (z.B. update_Ngroup_LDAPS.pl) arbeiten die Tabelle sync_uname_destination ab und aktualisieren die notwendigen User. Nach einem erfolgreichen Update wird das Flag is_synched=1 gesetzt und when_last_synched auf SYSTIMESTAMP.

TODO

DONE Gruppennamen-Änderungen haben zur Folge, dass sämtliche User aktualisiert werden müssen.

DONE Änderung an Destination bewirken ebenfalls, dass sämtliche betroffenen User aktualisiert werden müssen.

TODO Das Aktualisieren des OU Attributes ist längerfristig über ein sog. Overlay-Attribut zu ersetzen. Insbesondere bei Gruppen mit sehr vielen Einzelmitgliedern (> 500) ist das Aktualisieren des OU-Attributs sehr zeitaufwändig. Mit dem Einsatz von Overlays würde das Synchronisieren wegfallen; das Attribut würde beim Aufruf eines bestimmten Users jeweils neu berechnet. Erste Tests waren diesbezüglich erfolgreich, allerdings sind zur Zeit nur distinguishedNames als Attribute möglich.

-- Vermeul Swen - 2016-09-13

Topic revision: r2 - 2016-09-13 - SwenVermeul
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2017 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback