Laden...

Windows Authentifizierung / Domänen-Authentifizierung

Erstellt von exaveal vor 13 Jahren Letzter Beitrag vor 13 Jahren 1.915 Views
E
exaveal Themenstarter:in
96 Beiträge seit 2010
vor 13 Jahren
Windows Authentifizierung / Domänen-Authentifizierung

Hallo!

Ich komme ursprünglich nciht aus der Windowswelt, muss mich aber (zwangsläufig) mit Windows-Authentifizierung für einen Microsoft SQL Server auseinandersetzen.

Ich schreibe eine Anwendung in C# die sich an einem MS SQL Server im Netzwerk anmelden muss. (SQL-Authentifizierung fällt raus).

Folgendes Szenario:
Es gibt sehr viele Benutzerkonten. Nun soll aber nicht für jedes Benutzerkonto erst ein Account auf dem SQL Server angelegt werden müssen. Wie kann sich nun eines dieser Benutzerkonten am Server anmelden?
Kann ich irgendwie sagen, dass alle Benutzer aus dieser Domäne Zugriff haben?
Und wie finde ich genau heraus, in welcher Domäne ich mich derzeit befinde?

Ich habe schon viel in der MSDN dazu gesucht und auch gelesen, aber oft werden soviele Begriffe durcheinander geworfen die für einen Unwissenden schwer zu unterscheiden sind.

Gibt es einen Unterschied zwischen der Anmeldung am Server mit einem Windows-Konto und einem Domänen-Konto?

G
538 Beiträge seit 2008
vor 13 Jahren

Hallo,

du kannst den Zugriff auf die Datenbank bestimmten Gruppen aus deiner Domäne erlauben (Datenbank > Sicherheit, mit SQL Management Studio öffnen). Wenn dein Benutzer nun schon ein gültiges Kerberosticket hat (= er ist an der Domäne angemeldet), dann kann er sich per "Integrated Security" am SQL Server anmelden.
.NET handhabt das für dich, wenn du im ConnectionString entsprechendes angibst.

Die Domäne kannst du theoretisch aus seinem UPN (User Principal Name) auslesen. Ich vermute mal dass System.Security.Principals (weiß grade nicht ob der Namespace stimmt) entsprechende Informationen (vieleicht auch die Domäne selbst) zur Verfügung stellt.

Der Vorteil der Klugheit liegt darin, dass man sich dumm stellen kann - umgekehrt ist das schon schwieriger (K. Tucholsky)
Das Problem mit Internet-Zitaten ist, dass sie oftmals zu unrecht als authentisch angenommen werden. (K. Adenauer)

3.728 Beiträge seit 2005
vor 13 Jahren

Gibt es einen Unterschied zwischen der Anmeldung am Server mit einem Windows-Konto und einem Domänen-Konto?

Ja. Ein Windows-Konto ist nur für einen einzelnen Windows-Computer gültig. Windows-Konten werden lokal in der SAM-Datenbank des Windows-Computers gespeichert. Ein Server kann mit einem Windows-Konto nichts anfangen, da er logischerweise keinen Zugriff auf die lokale SAM-Datenbank des Clients hat.

Domänen-Konten werden in Active Directory in zentralen LDAP-Datenbanken auf den Domänencontrollern der Domäne gespeichert. Ein SQL Server kann die Anmeldung eines Clients, der ein Domänen-Konto hat, durch eine Anfrage beim zuständigen Domänencontroller prüfen lassen.

Zusammenfassung:

Windows-Konten = nur lokal gültig
Domänen-Konten = netzwerkweit gültig, da in zentraler LDAP-Datenbank gespeichert

Es gibt auch eine Möglichkeit, mit Windows-Konten im Netzwerk zu arbeiten. Dafür müssen auf allen beteiligten Computern ++identische ++Benutzernamen und ++identische ++Passwörter erstellt werden! Als Protokoll kann dann auch nicht mehr Kerberos verwendet werden, sondern nur NTLM (NT LAN Manager). Windows handelt das Auth-Protokoll normalerweise automatisch aus.

In einem Produktivnetzwerk würde ich dringend von diesem Holzbein-Workaround abraten.