AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Integration Active Directory + Benutzerverwaltung
Thema durchsuchen
Ansicht
Themen-Optionen

Integration Active Directory + Benutzerverwaltung

Ein Thema von TigerLilly · begonnen am 28. Apr 2021 · letzter Beitrag vom 29. Jul 2021
Antwort Antwort
slemke76

Registriert seit: 29. Mär 2005
Ort: Quakenbrück
146 Beiträge
 
#1

AW: Integration Active Directory + Benutzerverwaltung

  Alt 29. Jul 2021, 18:53
Hallo,

An Stelle einer Login-Box würde ich wohl beim AD nach dem angemeldeten Benutzer(namen) fragen.
also, grundsätzlich gibt es zwei Möglichkeiten:

1. (einfacher) - du präsentierst dem User einen Login Dialog und prüfst seine Eingaben per ldaps:// (ldap:// - also unverschlüsselt wird wohl bald abgeschaltet) gegen das Active Directory und ggf. gegen Mitgliedschaft in irgendwelchen OUs oder Gruppen (darf Programm nutzen oder nicht oder mit Berechtigungen, etc.). Er kann sich dann mit seinem Login und Passwort in deiner Anwendung anmelden. Ändert er sein Windows-Passwort, muss er das neue Kennwort auch in deiner Anwendung nutzen. Deine Anwendung braucht für die ldaps:// Abfrage ebenfalls einen User im Active Directory. Ein ganz einfacher mit ein ein paar speziellen Berechtigungen reicht, nicht den Administrator nehmen. Quellen: siehe unten. Bitte ggf. auch die maximale Anzahl der Ergebnis-Objekte hochsetzen. Quelle: siehe ebenfalls unten.

2. Authentifizierung mittels NTLM oder Kerberos, Realisierung eines "echten" Single-Sign-Ons (SSO). Der User bekommt keine Login-Box zu sehen, deine Anwendung kommuniziert mit dem Server und der User ist "magisch" eingeloggt. Das wird auch gerne für Web-Anwendungen gemacht.
2a. NTLM - Erklärung - siehe hier: http://www.microsoftnow.com/2008/10/...-returned.html Das Protokoll ist relativ alt, wenn man etwas vorhandenes nutzen kann, würde ich das vielleicht (!) machen, aber es ist zu erwarten, dass viele Admins das in absehbarer Zeit abschalten (meine bescheidene Meinung ) - oder Microsoft die Admins dazu zwingt.
2b. Kerberos - Erklärung - siehe hier: https://de.wikipedia.org/wiki/Kerberos_(Protokoll) - das würde ich machen, da aktuell & sicherlich noch lange unterstüzt. Allerdings gibt es in Delphi aktuell nur wenig, wo man "abgucken" könnte. Ich habe für den MSSQL-Server das hier gefunden: https://stackoverflow.com/questions/...authentication und würde gerne selber eine Erweiterung für die Indy-Komponenten machen, die es erlaubt, HTTP-Requests per Kerberos zu authentifizieren, siehe: https://www.delphipraxis.net/184110-...dl-import.html - da geht das Abrufen eines Tickets schon einmal.

Ein "Mapping" des Benutzers/Benutzergruppe gegen Berechtigungen in deinem Programm brauchst du auf alle Fälle.

Ich hoffe, ein paar Ansatzpunkte geliefert zu haben Wenn du in Richtung Kerberos weiter gehst, wäre ein Gedankenaustausch hier oder in dem anderem Thread prima.

Edit:
Ich habe mir mal den Link oben (rathlev-home.de) angesehen, in dem es heißt
Zitat:
Viel einfacher ist es, das hier vorgestellte Konsolenprogramm AuthAds zu integrieren. Es wird mit den erforderlichen Parametern aufgerufen und liefert als ExitCode einen Wert, der Aufschluss darüber gibt.
Ernsthaft? Habe ich gerade ein Brett vor dem Kopf? Ich tausche dann einfach die AuthAds.exe gegen ein Programm aus, dass den gewünschten Exit-Code liefert und ich bin authentifiziert?

Edit2:
Zitat:
Ich nutz dazu
OpenProcessToken(GetCurrentProcess(), TOKEN_READ, TokenHandle)
und
GetTokenInformation(TokenHandle, TokenGroups,..)
Das macht in deinem Fall wahrscheinlich am meisten Sinn.

Grüße
Sebastian



Quellen:
LDAP:
https://community.cisco.com/t5/email...n/td-p/1971060
https://docs.microsoft.com/en-us/pre...ectedfrom=MSDN
http://www.microsoftnow.com/2008/10/...-returned.html

Kerberos:
https://www.apriorit.com/dev-blog/67...sa-service-api
https://blog.varonis.de/wie-funktion...entifizierung/

Geändert von slemke76 (29. Jul 2021 um 19:25 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:38 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz