Verzeichnissicherheit mit NTFS und IIS Authentifizierung
Geschrieben von: Christoph Wille Gerüchteweise habe ich gehört, daß Firmen hin und wieder den Zugang zu bestimmten Bereichen Ihrer Website absichern möchten. Um dies umzusetzen, bietet der Internet Information Server zusammen mit Windows NT/2000 einiges an Verzeichnissicherheit. Und diese Unterstützung ist dergestalt, daß man als ASP Programmierer mitbekommt, wer gerade berechtigtermaßen auf der Seite "surft". In diesem Artikel stelle ich zwei Varianten der IIS Authentifizierung vor, nämlich Basic Authentication und NTLM (NT Lan Manager) Authentication. Der Vorteil von Basic ist daß jeder Browser sie versteht, wohingegen NTLM nur von Internet Explorer unterstützt wird. Der Nachteil von Basic ist die sehr mangelhafte Verschlüsselung (daher eigentlich nur auf SSL Sites empfehlenswert), wohingegen die Sicherheit von NTLM als mehr als ausreichend bezeichnet werden kann. Ein Verzeichnis sichernGrundsätzlich muß man zwei Tasks ausführen, um ein Webverzeichnis abzusichern:
Beginnen wir in der ISM. Auf die gewünschte Site, Verzeichnis oder Datei mit der rechten Maustaste klicken, und Eigenschaften auswählen. Der folgende Screenshot ist für ein Verzeichnis, allerdings haben alle Eigenschaftendialogboxen den Security Tab - entweder Site Security, Directory Security oder File Security. Standardmäßig wäre Anonymous access und Integrated Windows authentication selektiert. Da wir aber Basic Authentication zuerst testen wollen, schalten Sie den anonymen Zugriff ab, und wählen Sie Basic. Sie werden bezüglich der mangelnden Sicherheit gewarnt, aber akzeptieren Sie diese Meldung. Schließen Sie alle Dialogboxen mit OK. Das war das Setup auf der Seite des IIS. Nun kommen wir zur NT Sicherheit. Wählen Sie das zu sicherende Verzeichnis, gehen in die Eigenschaftsdialogbox und wählen Security. Hier wählen Sie Benutzeraccounts und Berechtigungen aus. In diesem Beispiel habe ich nur Administratoren Zugriff gewährt. Für alle Ihre Versuche möchte ich Sie daran erinnern, sich nicht selbst auszusperren! Ein weiterer Tip: geben Sie dem SYSTEM Account immer Vollzugriff. Es erspart vor allem unerfahrenen NT Administratoren einiges an Problemen, öffnet aber keine Sicherheitslücken. Authentication Daten in ASP abfragenDas Verzeichnis ist nun abgesichert. Wenn Sie eine Datei aufrufen, bekommen Sie folgende Dialogbox mit der Aufforderung zur Authentifizierung: Ich habe hier bereits die URL einer Datei eingetippt, die ich für Sie vorbereitet habe. Diese liest alle relevanten Benutzerdaten aus:
<pre> <% strAuthType = Request.ServerVariables("AUTH_TYPE") strUser = Request.ServerVariables("AUTH_USER") strPassword = Request.ServerVariables("AUTH_PASSWORD") Response.Write "Authentifizierungsmethode: " & strAuthType Response.Write vbCrlf Response.Write "Benutzername: " & strUser Response.Write vbCrlf Response.Write "Passwort (nur bei Basic): " & strPassword %> </pre> Sie erhalten über die Request.ServerVariables Collection Zugriff auf die Art der Authentifizierung, sowie den Benutzernamen und das Passwort. Zu letzterem möchte ich ausdrücklich hinzufügen daß dieses nur bei Basic Authentication verfügbar ist - und bei keiner anderen! Bei Ausführung sieht der Output wie folgt aus: Die Sternchen sind übrigens von mir eingesetzt - mein Passwort ist mein Passwort! Der Unterschied: NTLMIm Prinzip kann man das exakt gleiche Script mit NTLM Authentication laufen lassen. Der Unterschied ist nur, daß das Passwort nicht geliefert werden kann - ein Feature von NTLM. Allerdings habe ich das Script geringfügig umgebaut, um die LOGON_USER Variable zu demonstrieren. Diese liefert das gleiche Resultat wie AUTH_USER.
<pre> <% strAuthType = Request.ServerVariables("AUTH_TYPE") strUser = Request.ServerVariables("AUTH_USER") strLogonUser = Request.ServerVariables("LOGON_USER") Response.Write "Authentifizierungsmethode: " & strAuthType Response.Write vbCrlf Response.Write "Benutzername: " & strUser Response.Write vbCrlf Response.Write "Logged-on User: " & strLogonUser %> </pre> Der Output im Browser ist unterschiedlich - wir bekommen die Domain (oder Maschinennamen) zusätzlich zum Benutzernamen geliefert. Und außerdem ist die Method Negotiate, was allerdings nur IE richtig behandeln kann.
Authentifizierungsmethode: Negotiate Benutzername: XITRA-STAGE\Administrator Logged-on User: XITRA-STAGE\Administrator SchlußbemerkungBasic Authentication ist eine gangbare Methode für Sites, die zusätzlich mit SSL gesichert sind. NTLM ist die erste Wahl bei Intranets, die auf Windows + IE aufbauen, weil man damit auch einen Single Sign-on realisieren kann. Download des CodesKlicken Sie hier, um den Download zu starten. Verwandte Artikel
ASP-basierte Basic Authentication Wenn Sie jetzt Fragen haben...Wenn Sie Fragen rund um die in diesem Artikel vorgestellte Technologie haben, dann schauen Sie einfach bei uns in den Community Foren der deutschen .NET Community vorbei. Die Teilnehmer helfen Ihnen gerne, wenn Sie sich zur im Artikel vorgestellten Technologie weiterbilden möchten. Haben Sie Fragen die sich direkt auf den Inhalt des Artikels beziehen, dann schreiben Sie dem Autor! Unsere Autoren freuen sich über Feedback zu ihren Artikeln. Ein einfacher Klick auf die Autor kontaktieren Schaltfläche (weiter unten) und schon haben Sie ein für diesen Artikel personalisiertes Anfrageformular.
Und zu guter Letzt möchten wir Sie bitten, den Artikel zu bewerten. Damit helfen Sie uns, die Qualität der Artikel zu verbessern - und anderen Lesern bei der Auswahl der Artikel, die sie lesen sollten.
©2000-2006 AspHeute.com |