C# [ASP Net Core] LDAP Authentisierung

Magic1416

Lieutenant
Registriert
Dez. 2003
Beiträge
513
Hallo,

ich entwickle gerade eine Blazor Server Side Anwendung fürs Intranet und scheitere gerade an dem Thema Authentisierung.

Ich möchte folgendes realisieren:
  • Webserver IIS
  • Login Page mit Username und Passwort. Nicht dieses Browser PopUp Window, welches erscheint, wenn man Windows Authentisierung aktiviert.
  • Kein Passthrough. Man muss sich mit getrennten Konten anmelden können.
  • Authentisierung über LDAP am Active Directory (On premise)
  • Rollen über AD Gruppen abgebildet

Nach tagelangem googlen hat sich bisher noch kein konkreter Lösungsansatz für meine Anforderung ergeben. Lediglich Ansätze, wie das Problem grundsätzlich gelöst werden könnte. Das wären IdentityServer4 ( https://identityserver4.readthedocs.io/en/latest/ ) ,die LDAP Extension von Novell ( https://www.nuget.org/packages/Novell.Directory.Ldap.NETStandard/ ) und letztendlich die Extension, welche beide Komponenten vereint ( https://www.nuget.org/packages/IdentityServer.LdapExtension/ ). Diese Themen sind viel komplexer, als ich das erwartet hatte. Viele Blogs, welche man im Web findet, befassen sich so gut wie nie mit LDAP Authentisierung.

Ich brauche einen "Door Opener", einen Ansatz wie das richtig gemacht wird, auf was geachtet werden muss, dass das sicher ist usw.

Wie auch immer eure Hilfe aussieht, ich danke Euch dafür.

Gruß Magic
 
IdentityServer4 wird demnächst kommerziell, also nicht mehr Open Source. Das ist sicher ein potentieller Faktor in der Entscheidung. IdentityServer4 ist recht komplex, ich kenne mich damit nicht aus und kann da auch keine Empfehlung abgeben.

Ich habe LDAP Authentifizierung schonmal in einer sehr simplen Variante (nicht in C#) implementiert, die Novell library sieht so aus also ob sie für diese Art von Integration geeignet wäre. Die grundsätzliche Idee dabei ist das man sich mit den Zugangsdaten die der User eingibt beim LDAP Server anmeldet (LDAP bind) und dann den Benutzer aus dem Verzeichnis anfragt. Wenn das funktioniert, dann hat man gültige Zugangsdaten und bekommt einen User Eintrag mit den Informationen die halt im LDAP verwaltet werden. Das ganze muss man dann in sein eigenes Login System integrieren, z.B. wenn man da Rollen und Berechtigungen übernehmen will.

Wenn du es so low-level direkt gegen den LDAP Server implementieren willst würde ich als erstes mal mit einem CLI LDAP client rumprobieren und mir grundlegende LDAP Befehle anschauen.
 
Zurück
Oben