AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Windows Benutzerverwaltung mitverwenden

Windows Benutzerverwaltung mitverwenden

Ein Thema von ralfiii · begonnen am 27. Jan 2011 · letzter Beitrag vom 7. Jun 2019
Antwort Antwort
Seite 1 von 2  1 2   
Benutzerbild von ralfiii
ralfiii

Registriert seit: 30. Mai 2007
489 Beiträge
 
Delphi 2010 Professional
 
#1

Windows Benutzerverwaltung mitverwenden

  Alt 27. Jan 2011, 11:02
Hallo!

Wir haben eine Datenbank-Anwendung mit einer kleinen Benutzerverwaltung (Benutzername, Passwort, pro Benutzer ein paar anwendungsspezifische Rechte und Einstellungen. Weiters können Datensätze optional mit Benutzern verknüpft werden, so dass ein Benutzer wenn er will nur "seine" Daten sieht)

Nun möchten manche Kunden (meist Krankenhäuser) die Benutzer nicht bei uns und in ihrem Netzwerk einpflegen.
Soweit ich das verstehe ist oft ein Dummy-User an einem Rechner angemeldet. Wenn jetzt jemand unsere Software startet soll die SW optional einen Login-Dialog anzeigen. Dabei soll nicht der Anwendungskontext geändert werden, es geht hier primär um die Authentifizierung.

(Ein anderes Verhalten wäre wohl den aktuell benutzte Windows-User zu verwenden. Ich schätze das sollte recht einfach hinzukriegen sein, also konzentriere ich mich mal auf den komplizierteren Fall)

Ich hab mal kurz gegoogelt, da fliegen einem die Begriffe "Active Directory", "Kerberos", "LDAP" etc. nur so um die Ohren - hab davon leider keinen Schimmer davon.

Kann mir jemand mal einen Tip geben?

Und dann hab ich noch eine kleine Spezialfrage: In der alten (recht simpel gestrickten) Version der Software werden für jeden Benutzer individuelle Einstellungen in einer Datenbank abgelegt. Gesetzt den Fall man hat da eine Windows-User-Verifikation, dann könnte natürlich schauen ob ein Benutzer mit dem Namen in der Datenbank schon existiert und wenn nicht den Benutzer dort anlegen.

Ist das ein gangbarer Weg oder ist das aus irgendeinem Grund BÖSE? Und kann es sein, dass ein User seinen Login-Namen ändert so dass der User plötzlich für meine App wie ein neuer User aussieht?

Und zu guter Letzt: Ich schätze Benutzer werden in Gruppen organisiert. Man müsst also bei der Authentifizierung abfragen können ob der Benutzer xxx mit Passwort yyy Mitglied der Gruppe zzz ist. Nur: Wie das alles?

Vielen vielen Dank!
Ralf
  Mit Zitat antworten Zitat
WM_CLOSE

Registriert seit: 12. Mai 2010
Ort: königsbronn
398 Beiträge
 
RAD-Studio 2009 Pro
 
#2

AW: Windows Benutzerverwaltung mitverwenden

  Alt 27. Jan 2011, 11:50
Du kannst es mit MSDN-Library durchsuchenLogonUser versuchen und evtl mit dem programm Bei Google suchenifmember die gruppenzugehörigkeit feststellen
Bei LogonUser das Token einfach wieder schließen
Quelle:http://support.microsoft.com/kb/180548 (auf englisch lesen, da die deutsche übersetzung mies ist)
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#3

AW: Windows Benutzerverwaltung mitverwenden

  Alt 27. Jan 2011, 11:52
Nun möchten manche Kunden (meist Krankenhäuser) die Benutzer nicht bei uns und in ihrem Netzwerk einpflegen.
Einer für alle, alle für einen.
Und Datenklau und Datenmanipulation gibt es ja nur bei der US-Regierung!

Und kann es sein, dass ein User seinen Login-Namen ändert so dass der User plötzlich für meine App wie ein neuer User aussieht?
Davon kannst du aber verschärft ausgehen, ich habe z.B. 4 Identitäten, je nachdem was ich so treiben will.

Und zu guter Letzt: Ich schätze Benutzer werden in Gruppen organisiert. Man müsst also bei der Authentifizierung abfragen können ob der Benutzer xxx mit Passwort yyy Mitglied der Gruppe zzz ist. Nur: Wie das alles?
Das wäre sinnvoll, aber es kommt darauf an ob diese Gruppen Resourcen oder Funktions-orientiert definiert werden.
Und aus mir unverständlichen Gründen wehren sich viele Benutzer dagegen, in Gruppen "gestopft" zu werden. Aber wenn ich mich mich richtig erinnere, stellt sich ein Benutzer automatisch auch als Gruppenmitglied vor. Du mußt also nur Fragen ist der Benutzer Gruppenmitglied. Eine aufwendige Suche entfällt.

Aber wenn eh nur ein Benutzer sich einloggt (wie wäre es mit SA?), dann ist es doch eh einerlei?

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#4

AW: Windows Benutzerverwaltung mitverwenden

  Alt 27. Jan 2011, 11:53
Ich würde ebenfalls mit LogonUser arbeiten. anstelle den Benutzernamen dann weiter zu verwenden würde ich lieber die UserID verwenden um umbenennen etc. mit abzudecken.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
WM_CLOSE

Registriert seit: 12. Mai 2010
Ort: königsbronn
398 Beiträge
 
RAD-Studio 2009 Pro
 
#5

AW: Windows Benutzerverwaltung mitverwenden

  Alt 27. Jan 2011, 12:22
so villeicht: http://www.delphi-forum.de/viewtopic...highlight=sspi
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#6

AW: Windows Benutzerverwaltung mitverwenden

  Alt 27. Jan 2011, 12:30
Ich würde ebenfalls mit LogonUser arbeiten. anstelle den Benutzernamen dann weiter zu verwenden würde ich lieber die UserID verwenden um umbenennen etc. mit abzudecken.
Du meinst die SID?

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von ralfiii
ralfiii

Registriert seit: 30. Mai 2007
489 Beiträge
 
Delphi 2010 Professional
 
#7

AW: Windows Benutzerverwaltung mitverwenden

  Alt 27. Jan 2011, 13:09
Um das Umfeld mal zu simulieren wollt ich schnell so ein Mini-Netzwerk aufbauen (mit virtuellen Maschinen versteht sich).

Kann man ein "normales" WinXP prof. zu einem Domänenkontroller machen (ich schätze sowas brauch ich als Server, oder?)

Ich hab mal angefangen Windows Server 2008 runterzuladen (http://www.microsoft.com/downloads/d...7-32212b520f50)
wenn das simpler ginge, dann wär ich natürlich auch nicht böse.

Danke,
Ralf
  Mit Zitat antworten Zitat
Benutzerbild von Assarbad
Assarbad

Registriert seit: 8. Okt 2010
Ort: Frankfurt am Main
1.234 Beiträge
 
#8

AW: Windows Benutzerverwaltung mitverwenden

  Alt 27. Jan 2011, 13:28
(Ein anderes Verhalten wäre wohl den aktuell benutzte Windows-User zu verwenden. Ich schätze das sollte recht einfach hinzukriegen sein, also konzentriere ich mich mal auf den komplizierteren Fall)
Ist ja ohnehin der Fall. Eben nur ohne explizite Abfrage in dem Fall.

Ich hab mal kurz gegoogelt, da fliegen einem die Begriffe "Active Directory", "Kerberos", "LDAP" etc. nur so um die Ohren - hab davon leider keinen Schimmer davon.
LDAP ist eine Untermenge der seit Windows 2000 (Server) unterstützten ADS (Active Directory Services).

Stell dir das Active Directory als eine Datenbank mit diversen angeschlossenen externen Elementen (Computer, Code) vor. Du kannst dort auch Daten speichern und bspw. über Zugehörigkeit zu einer OU (Organizational Unit) Regeln festlegen. Und das ist definitiv jeglicher selbstgebastelten Lösung vorzuziehen, wenn ADS/LDAP im Zielnetzwerk benutzt wird. Andere Verzeichnisdienste ala Novell bieten sicher auch Möglichkeiten ... aber die kenne ich nicht gut genug.

Zu Kerberos habe ich keine Ahnung. Habe ich noch nie richtig verstanden.

Ist das ein gangbarer Weg oder ist das aus irgendeinem Grund BÖSE? Und kann es sein, dass ein User seinen Login-Namen ändert so dass der User plötzlich für meine App wie ein neuer User aussieht?
Nur wenn du nach dem Namen gehst. Du solltest entweder die SID oder die RID (letzte Ziffernfolge in einer SID) nehmen.

Und zu guter Letzt: Ich schätze Benutzer werden in Gruppen organisiert. Man müsst also bei der Authentifizierung abfragen können ob der Benutzer xxx mit Passwort yyy Mitglied der Gruppe zzz ist. Nur: Wie das alles?
Geht sowohl mit ADS/LDAP als auch mit normalen Windowsmitteln (NT-Plattform).

Kann man ein "normales" WinXP prof. zu einem Domänenkontroller machen (ich schätze sowas brauch ich als Server, oder?)
Für ADS braucht's eine Serverversion. Für nur LDAP gibt es verschiedene andere Lösungen (inklusive Linux).

Für XP gab es eine Art abgespeckten Verzeichnisdienst von MS, der aber im Prinzip mit ADS nicht wirklich vergleichbar ist, sondern eher mit LDAP.
Oliver
"... aber vertrauen Sie uns, die Physik stimmt." (Prof. Harald Lesch)
  Mit Zitat antworten Zitat
Benutzerbild von ralfiii
ralfiii

Registriert seit: 30. Mai 2007
489 Beiträge
 
Delphi 2010 Professional
 
#9

AW: Windows Benutzerverwaltung mitverwenden

  Alt 28. Jan 2011, 12:17
LDAP ist eine Untermenge der seit Windows 2000 (Server) unterstützten ADS (Active Directory Services).
Ok, verstehe. Ich suche eine Lösung mit der ich mit geringem Aufwand eine möglichst grosse Kundenzahl versorgen kann. Da klingt LDAP also nicht schlecht.

Zitat:
kann es sein, dass ein User seinen Login-Namen ändert so dass der User plötzlich für meine App wie ein neuer User aussieht?
Nur wenn du nach dem Namen gehst. Du solltest entweder die SID oder die RID (letzte Ziffernfolge in einer SID) nehmen.
Ich krieg da einen irre langen String, z.B. S-1-5-21-3926681305-3518172317-3193622278-1107
Ist da nun die "1107" die eindeutige Benutzerkennung?

Und noch eine Kleinigkeit:
Wenn ich LogonUser auf einem Rechner ausführe wo der Benutzer sich an einer Domäne angemeldet hat dann läuft alles perfekt.
Mach ich das bei mit auf meinem Entwicklungsrechner (lokaler Benutzer) und gebe den korrekten Usernamen/Passwort an, dann liefert LogonUser (mit LOGON32_LOGON_INTERACTIVE, oder?) True ganz egal ob ich die Domäne leer lasse oder eine falsche Angebe.
Gebe ich eine falsche Domäne an, dann liefert LookupAccountNameW "Der RPC-Server ist nicht verfügbar." als Fehler. Nix grosses, ist mir nur aufgefallen.
  Mit Zitat antworten Zitat
Benutzerbild von Assarbad
Assarbad

Registriert seit: 8. Okt 2010
Ort: Frankfurt am Main
1.234 Beiträge
 
#10

AW: Windows Benutzerverwaltung mitverwenden

  Alt 28. Jan 2011, 12:29
Ich krieg da einen irre langen String, z.B. S-1-5-21-3926681305-3518172317-3193622278-1107
Ist da nun die "1107" die eindeutige Benutzerkennung?
RID == relative ID

Eindeutig ja, aber nur auf diesem Rechner. Nur der komplette irre lange String ist eineindeutig und sollte dies auch global sein (es handelt sich im Prinzip um eine GUID), wobei der Teil am Anfang den Rechner identifiziert. Bei Domänenkonten wäre dies die Domäne, nicht der lokale Rechner.
Oliver
"... aber vertrauen Sie uns, die Physik stimmt." (Prof. Harald Lesch)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 04:59 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz