Single Sign-On für eigene Anwendung

Aber mal ein ganz anderer Gedankengang: Wenn dein Programm gestartet wird reicht es doch eigentlich wenn du feststellst ob der gerade aktive User ein User der Domaine ist. Denn wenn der Benutzer Domainmitglied ist und auf dem Rechner eingeloggt ist kann man ja davon ausgehen das er das Passwort dort schon richtig eingegeben hat.
Soweit ich mich erinnern kann muss man für eine Abfrage nach Benutzername oder Benutzergruppen nicht speziell authentifiziert sein, was bedeutet das dein Programm das Passwort nicht kennen muss. Und wie man den Benutzernamen bekommt haben wir ja eh weiter oben schon mal gehabt.
 
Heißt das das deine Benutzer bis jetzt Passwort und Benutzernamen eingeben mussten?
Für die Identifikation im Programm selber, hier konnten Benutzer eigene Benutzernamen und Passwörter völlig unabhängig von den Windowsbenutzernamen und Passwörtern eintragen und auf diese wurde beim Programmstart geprüft.

Dies sollte verhindert werden wenn die "Windows-Anmeldung benutzen?" aktiviert wird, indem der aktuelle Windows-Benutzername mit dem Benutzernamen in der Datenbank verglichen wird und somit gesagt werden kann, dass der Windows-Benutzer "rudolf" der Anwendungsbenutzer "rudolf" mit der ID = 25 ist (diese Id wird dann intern benötigt um Einträge in anderen Tabellen einzutragen etc.).

Wenn man nichts eingeben soll wird sicher das Hauptproblem werden das Passwort des Benutzers herauszufinden.

Ich glaube wir reden hier an einander vorbei, oder meinst du hier nicht das Windows-Passwort? Ich möchte nämlich nicht die Passwörter auslesen! In dem Datenbankfeld "pw" stehen eigene völlig unabhängig vom OS vergebene Passwörter, diese müssen auch nicht mit den vom OS synchronisiert werden. Diese sind nur für den Fall da, dass Anwender bzw. dessen Administrator einstellen, dass die Anwendungseigene Benutzer-Identifikation benutzt werden soll.

Aber mal ein ganz anderer Gedankengang: Wenn dein Programm gestartet wird reicht es doch eigentlich wenn du feststellst ob der gerade aktive User ein User der Domaine ist. Denn wenn der Benutzer Domainmitglied ist und auf dem Rechner eingeloggt ist kann man ja davon ausgehen das er das Passwort dort schon richtig eingegeben hat.

Das stimmt, d. h. das würde ja in etwa meine oben genannte Idee entsprechen, das SSO über den Benutzer- und Domännamen zu implementieren.

Soweit ich mich erinnern kann muss man für eine Abfrage nach Benutzername oder Benutzergruppen nicht speziell authentifiziert sein, was bedeutet das dein Programm das Passwort nicht kennen muss. Und wie man den Benutzernamen bekommt haben wir ja eh weiter oben schon mal gehabt.

Ok vielen Dank :D

Gruß
RudolfG
 
Hi

Was ich meinte war: Wenn du überprüfen willst ob ein angemeldeter Benutzer wirklich ein gültiger Domänenbenutzer ist müsstest du eine Anfrage mit Benutzernamen und Windowspasswort an das LDAP-Service stellen. Hierzu fehlt dir aber das Passwort.

Das stimmt, d. h. das würde ja in etwa meine oben genannte Idee entsprechen, das SSO über den Benutzer- und Domännamen zu implementieren.

Ja genau, jedoch sind unter Windows Server die Kombination aus Benutzernamen und Domäne keine eindeutige Identifizierung. Es gibt eine sog. SSID die genau diese Daten und eine eindeutige Identifizierung zu einem Master-Domänenkontroller beinhaltet. Über diese SSID kannst du dir später mal auch die Gruppen und sonstige Information aus dem Active Directory laden.

Soweit so gut. Ich hab jetzt schon leicht den Überblick verloren. Sind jetzt noch konkrete Fragen von dir offen?
 
Hi

Was ich meinte war: Wenn du überprüfen willst ob ein angemeldeter Benutzer wirklich ein gültiger Domänenbenutzer ist müsstest du eine Anfrage mit Benutzernamen und Windowspasswort an das LDAP-Service stellen. Hierzu fehlt dir aber das Passwort.

Ok, kann man als normaler Windows-Benutzer eine LDAP-Abfrage über das Passwort und den Benutzernamen ausführen? Oder benötigt man dafür spezielle Berechtigungen? Wie habt ihr das den in eurer Anwendung (für deine Dipl-Arbeit) gemacht bzw. wie seit ihr an das aktuelle Windows-Passwort gekommen?

Es gibt eine sog. SSID die genau diese Daten und eine eindeutige Identifizierung zu einem Master-Domänenkontroller beinhaltet. Über diese SSID kannst du dir später mal auch die Gruppen und sonstige Information aus dem Active Directory laden.

Ok und an diese SSID komme ich über eine LDAP-Abfrage in dem AD nur mit dem aktuellen Windows-Benutzernamen?

...jedoch sind unter Windows Server die Kombination aus Benutzernamen und Domäne keine eindeutige Identifizierung....
.

Diese Aussage verwirt mich gerade, wie erkennt den Windows als welcher der beiden Benutzer "rudolf" ich aus ein und der selben Domäne mich anmelden möchte

Soweit so gut. Ich hab jetzt schon leicht den Überblick verloren. Sind jetzt noch konkrete Fragen von dir offen?

Außer, die in diesem Beitrag gestellten hat sich das soweit erledigt :D

Danke :D

Gruß
RudolfG
 
Zuletzt bearbeitet:
Hi

In unserer Anwendung musste aus Sicherheitsgründen der Windows-Benutzername und das Passwort eingegeben werden, da unsere Anwendung auch auf einigen embedded systems gelaufen ist und somit der angemeldete Benutzer nicht mit dem Benutzer übereingestimmt hat der dann in unserer Software arbeiten wollte.

Ok, kann man als normaler Windows-Benutzer eine LDAP-Abfrage über das Passwort und den Benutzernamen ausführen?
Du kannst entweder eine Art anonyme Anfrage stellen, z.B.: Ist Benutzer x mit Passwort y eine gültige Kombination. Für manche andere Anfragen kann es notwendig sein sich explizit in LDAP zu authentifizieren. Was genau anonym geht und was nicht weiß ich leider nicht.

Die SSID kannst du aus der Domänen-Kennung und dem Benutzernamen irgendwie berechnen. Wie genau weiß ich auch nicht, aber man findet dazu mit google glaub ich ganz gute Resultate.

Diese Aussage verwirt mich gerade, wie erkennt den Windows als welcher der beiden Benutzer "rudolf" ich aus ein und der selben Domäne mich anmelden möchte
In einer Domäne ist der Benutzername eindeutig, es können jedoch zwei Domänen mit gleichem Namen bestehen, welche den gleichen Benutzernamen enthalten.
 
Zurück