hansdampf06
Goto Top

LDAP-Zugriff auf SQL-Datenbank

Hallochen Gemeinde!

Gegeben ist eine Businesswebanwendung, die ausschließlich im Intranet verfügbar und genutzt wird. In dieser Webanwendung ist eine Personen-/Kontaktverwaltung enthalten, deren Daten über eine MS-SQL-Server-Datenbank gehostet werden. Es gibt daneben Drittanwendungen, die Kontaktdaten über LDAP abrufen können und somit auch sollen.

Daher bin ich auf der Suche nach einem Add-On, Tool oder ähnlichem, um über das LDAP-Protokoll strukturiert auf die Kontaktdaten zugreifen zu können. Im Fokus steht vor allem ein lesender Zugriff. Als mögliche Kandidaten könnten beispielsweise Apache Directory Server oder OpenLDAP in Betracht kommen. Sicherlich wäre es eine Option, gleichsam wie beispielsweise bei MS Exchange das Active Directory entsprechend zu erweitern. Aber das ist nicht gewünscht und soll allenfalls die ultima ratio sein, wenn es gar nicht anders gehen sollte. Die gesuchte Lösung muss Linux-basiert sein, weil sowohl der MS SQL-Server als auch (künftig) die Webanwendung auf einem Linux-System laufen (soll).

Die gefundenen Ergebnisse der bisherigen Internetsuche konzentrieren sich im Wesentlichen auf das Active Directory und seine Bedeutung als zentrale Ressourcenverwaltung. Auch wenn eine Kontaktverwaltung dem gar nicht so unähnlich ist, erscheint vom derzeitigen Blickwinkel aus ein auf die Kontaktverwaltung spezialisierter eigenständiger Verzeichnisdienst zielführender. Zudem wird dadurch vermieden, das vorhandene Active Directory aufzublähen oder gar zu gefährden.

Was ich bisher noch nicht wirklich gefunden habe, ist, wie beispielsweise OpenLDAP an den MS SQL-Server angebunden werden kann, so dass OpenLDAP die Verzeichnisdaten beim MS SQL-Server abfragt. Erst recht konnte ich bisher nicht wirklich eruieren, welcher der verfügbaren LDAP-Server überhaupt für das hiesige Szenario geeignet ist. Stattdessen ist massenweise der umgekehrte Fall zu finden: der MS SQL-Server greift auf einen LDAP-Server zu. Ähnlich scheint es bei der Alternative eines Frameworks zu sein. Auch hier habe ich bisher nur die Variante des Zugriffs mittels des Frameworks auf einen LDAP-Server gefunden, aber nicht den Ansatz der Bereitstellung des LDAP-Zugriffs auf den Verzeichnisinhalt; könnte der LDAP-Zugriff auf die Kontaktverwaltung über eine Art Webservice implementiert werden, wäre das wohl die zu präferierende Lösung.

Hat jemand einen solchen Anwendungsfall bereits realisiert? Gibt es Erfahrungswerte, welcher der verfügbaren LDAP-Server dafür am besten geeignet ist? Gibt es alternativ irgendein Framework, was das ermöglichen kann?

Für weiterbringende Tipps, Erläuterungen etc. schon im Voraus besten Dank. Ebenso willkommen sind geeignete Links oder sonstige Quellenhinweise, um die Materie weiter vertiefen zu können und um gegebenenfalls einen eigenen Lösungsansatz entwickeln zu können.

Einen gruseligen Halloweenabend und ein schönes Wochenende.

HansDampf06

Content-Key: 618015

Url: https://administrator.de/contentid/618015

Printed on: April 19, 2024 at 21:04 o'clock

Mitglied: 143611
143611 Nov 01, 2020 at 01:18:00 (UTC)
Goto Top
Moin,

hab' ich das richtig verstanden, dass es darum geht, vorhandene Daten im SQL-Server über das LDAP-Protokoll abzufragen?

VG,
schleeke
Member: HansDampf06
HansDampf06 Nov 01, 2020 at 08:57:54 (UTC)
Goto Top
Ganz genau: Es wird der Zugriff auf die SQL-Datenbank über das LDAP-Protokoll benötigt, also eine Art "Middleware", die die Verzeichnisanfrage des Clients in eine SQL-Abfrage konvertiert und das Abfrageergebnis als den gewünschten Verzeichniseintrag an den Client zurückliefert.

Die SQL-Datenbank ist streng relational aufgebaut und objektorientiert strukturiert, so dass das schon sehr gut einer Verzeichnisstruktur entgegenkommen sollte.
Member: akretschmer
akretschmer Nov 01, 2020 at 10:03:34 (UTC)
Goto Top
wenn Du mal Google nach z.B. "ldap postgresql backend" befragst bekommst Du etliche Anleitungen, wie man das machen kann - allerdings mit PostgreSQL.
Member: HansDampf06
HansDampf06 Nov 01, 2020 updated at 11:38:59 (UTC)
Goto Top
Zitat von @akretschmer:

... Google nach z.B. "ldap postgresql backend" befragst ...

Besten Dank! Bei Apache Directory Server und OpenLDAP war ich freilich auf "backend" gestoßen, was ja auch mehr als naheliegend ist. Aber irgendwie war ich diesbezüglich nicht wirklich weitergekommen. Möglicherweise lag es auch daran, dass beispielsweise bei OpenLDAP als Standardbackend die Oracle Berkeley DB verwendet wird und ich nicht zugleich die Option einer anderen Datenquelle wahrgenommen habe ...

Wie mit Hilfe Deines Tipps ein erster fokussierter Rundblick zeigt, sollte anstelle einer Anbindung von PostgreSQL jede andere SQL-Datenbank über ODBC verwendbar sein. Hierfür sehe ich vorerst keine nennenswerten Schwierigkeiten, auch nicht hinsichtlich der etwaigen Anpassung der SQL-Syntax. In jedem Fall lässt sich das schon einmal mit OpenLDAP realisieren, das wohl der Standard / die Referenz bei der Protokollumsetzung sein soll. Und bei OpenLDAP öffnet sich ein ganz großes Scheunentor an Informationsquellen ... face-smile

Dann bleibt nur noch die Erstellung der passenden Schematas und deren Verknüpfung mit geeigneten SQL-Abfragen. Aber auch das sollte jetzt, wo ich doch den roten Faden aufnehmen kann, letztlich gleichfalls keine Hürde darstellen.
Mitglied: 143611
143611 Nov 01, 2020 at 11:38:58 (UTC)
Goto Top
Hi nochmal,

ist Eure Webanwendung auf einen MS SQL Server angewiesen? Falls nicht, wäre der Hinweis von akretschmer evtl. relevant. Damit lässt sich die DB zwar immer noch nicht per LDA-Protokoll ansprechen, aber man könnte die Daten aus dem MS SQL Server in den postgreSQL-Server migrieren.
Dort lägen dann alle Daten (Business-Anwendung + Verzeichnisdienst-Daten) wenigstens auf einem SQL-Server.

P.S. Eine Möglichkeit, einen (beliebigen) SQL-Server per LDAP anzusprechen, ist mir nicht bekannt. Gucke ich mir die LDAP-Query-Syntax an, wüsste ich auch nicht, wie man dort Relationen unterbringen könnte - ist aber auch nicht gerade meine Domäne.

VG,
schleeke
Member: HansDampf06
HansDampf06 Nov 01, 2020 at 12:00:18 (UTC)
Goto Top
Die Datenbank ist der eigentliche Kern der gesamten Anwendung und "Web" eher "nur" die Shell / das Interface. Der Wechsel auf ein anderes Datenbanksystem würde erfordern, nicht nur die Datenbank als solches zu wechseln. Es müsste von grundauf das neue Datenbanksystem erarbeitet, Erfahrungen gesammelt und dann auch noch die Webanwendung migriert werden. Allein die dann erforderlichen Syntaxanpassungen sind mehr als nur eine Fleißarbeit. Das wäre unter dem Strich ein völliger Neuanfang und kommt schlichtweg nicht in Betracht.

Hingegen ist für einen Zugriff über einen ODBC-Datenbanktreiber das gar nicht notwendig, weil der Treiber eine standardisierte Schnittstelle liefert, so dass das Datenbanksystem für OpenLDAP transparent wird und somit eher keine wirkliche Rolle mehr spielen sollte.
Übrigens erfolgt der Zugriff auf die Datenbank beispielsweise aus MS Office heraus ohnehin bereits über ODBC, was unterstreicht, dass ein Wechsel des Datenbanksystems als untunlich anzusehen ist. Entscheidend ist allein, dass OpenLDAP über ODBC andere Datenbanksystem als Backend verwenden kann. PostgreSQL wird, soweit ich es gesehen habe, auch nur als illustres Beispiel dargestellt. Immerhin ist ein MS SQL-Server, den es auch erst seit 2017 als Linuxportierung gibt, nicht unbedingt für Linux typisch.