
Wir sind in der Situation, dass wir unseren Kunden anbieten möchten, ihre Benutzer selbst verwalten zu können. Es handelt sich dabei um ca. 300 Kunden mit bis zu insgesamt 10.000 Benutzern.
Neben dem Erstellen, Aktualisieren und Entfernen von Benutzern lesen sie sehr oft Informationen über Benutzer, um Statistiken und andere nützliche verfügbare Informationen zu erhalten. Alle diese Funktionen sollten auf einer Intranet-Webseite (.NET Framework 4) verfügbar sein, auf die die Benutzer über Citrix oder ähnliches zugreifen.
Das Problem ist nun, dass wir wirklich möchten, dass die Benutzer AD nicht für jede Anfrage direkt abfragen, sondern auf eine Datenbank zugreifen, die mit AD synchronisiert ist. Es würde ausreichen, diese Synchronisierung mehrmals am Tag auszuführen (vielleicht alle 5 Stunden). Wenn sie einen Benutzer erstellen, sollte dieser nicht sofort verfügbar sein, sondern innerhalb von zwei Tagen überprüft und dann erstellt werden (der nächste Schritt wäre, diese manuelle Überprüfung zu entfernen, aber das liegt außerhalb des Rahmens dieser Frage).
Was halten Sie von dieser Synchronisierung von AD? Hat jemand Erfahrung damit und wird das auch in anderen Organisationen gemacht, wo es viele Anfragen gibt, die besser von einer Datenbank als von AD (nehme ich an) bearbeitet werden können?
Gibt es Techniken, um ein solches Skript zu schreiben, das AD mit Datenbanktabellen synchronisiert? Meine Hauptsorge gilt den Gruppen/Mitglieder-Beziehungen, die ziemlich kompliziert sein können. Oder gibt es Software, die AD mit einer Datenbank synchronisiert?
Wir freuen uns über jeden Kommentar. Vielen Dank.
Antwort1
Sie können Lightweight Directory Services (früher ADAM) einrichten, um das AD-Schema und die AD-Objekte in eine externe LDAP-Datenbank zu replizieren, die Benutzer abfragen und die gewünschten Informationen abrufen können. Auf diese Weise können Sie genau festlegen, was Sie extern verfügbar machen, indem Sie nur die Objekte synchronisieren, die Sie veröffentlichen möchten, und andere AD-Objekte nicht verfügbar machen.
Antwort2
Das Synchronisieren von Active Directory aus einer Datenbank ist eine recht häufige Anforderung – nicht unbedingt für den von Ihnen beschriebenen Anwendungsfall, sondern häufiger für Unternehmen, die ihre Mitarbeiter in einem HR-Tool verwalten, das sie in einer Datenbank speichert.
Sie können den Inhalt der Datenbank ganz einfach mit AD synchronisieren, indem SieLDAP-Synchronisierungs-Connector (LSC)Dabei handelt es sich um ein Open-Source-Tool, das speziell für diesen Zweck entwickelt wurde. Kurz gesagt ersetzt dieses Tool das Skript, das Sie möglicherweise von Hand schreiben, abzüglich der Fehler, auf die Sie stoßen werden, und mit verschiedenen Funktionen, die die Synchronisierung erleichtern.
Ich habe eine ähnliche Synchronisierung von einer Oracle-Datenbank zu einem LDAP-Server (denken Sie daran, dass AD auch ein LDAP-Server ist) für über 70.000 Benutzer, einschließlich Gruppenmitgliedschaften, eingerichtet. Nach der ersten Initialisierung lief die Synchronisierung in etwas weniger als 10 Minuten.
Der folgende Link dürfte für Sie von Interesse sein, unabhängig davon, ob Sie LSC anwenden oder nicht:Viele technische Tipps zur Synchronisierung von Daten mit/in Active Directory.
Antwort3
Wenn Sie über einige Programmierkenntnisse verfügen, können Sie einrichten und anpassenpSSOd. Es beinhaltet:
- Ein Perl-Skript, das AD mit einem OpenLDAP-Server oder einer SQL-Datenbank synchronisiert.
- AService für UnixDaemon, der es Ihnen ermöglicht, auch Passwörter zu synchronisieren.