Betrieb mit Windows-Authentifizierung (Kerberos, NTLM)

Wenn Sie Ihre Website mit integrierter Windows-Authentifizierung (also via Kerberos, NTLM, usw.) betreiben, möchten Sie normalerweise trotzdem anonyme Downloads zulassen.

D.h. die hochladenden Benutzer melden sich via Windows-Authentifizierung (oftmals als Single-Sign-On, SSO) am System zum Upload an, und die Empfänger der Uploads, oftmals auch externe Personen, können ohne Windows-Authentifizierung und ohne Anmeldung die Dateien downloaden.

Aus eben diesem Grund kann nicht die gesamte Website komplett mit Windows-Authentifizierung gesichert werden.

Vielmehr muss der IIS so konfiguriert sein, dass nur für diese eine Seite die Windows-Authentifizierung aktiviert ist und alle anderen Seiten auch die Anonymous-Anmeldung zulassen.

Dazu müssen Sie die Datei "applicationHost.config" unter Umständen von Hand bearbeiten.

Vorgehen

Passen Sie die "applicationHost.config"-Datei "%windir%\System32\inetsrv\config\applicationHost.config" an.

Suchen Sie in der Datei einen vorhandenen Eintrag in der Form:

<location path="MyUploaderInstance">
<system.webServer>
<security>
<authentication>
<windowsAuthentication enabled="true" useKernelMode="true">
<extendedProtection tokenChecking="Allow" />
<providers>
<clear />
<add value="NTLM" />
<add value="Negotiate" />
</providers>
</windowsAuthentication>
</authentication>
</security>
</system.webServer>
</location>

"MyUploaderInstance" entspricht dem Namen Ihrer Website, wie Sie in IIS registriert ist. Meistens befindet sich der Eintrag ganz unten in der "applicationHost.config"-Datei.

Fügen Sie direkt unterhalb, also nach dem schließenden "location"-Tag, folgenden neuen Eintrag ein:

<location path="MyUploaderInstance/en/user/ntlm-login">
<system.webServer>
<security>
<authentication>
<anonymousAuthentication enabled="false" />
</authentication>
</security>
</system.webServer>
</location>

Damit deaktivieren Sie die anonyme Anmeldung für exakt die eine Seite, über die sich die Windows-Authentifizierung-Benutzer anmelden. "MyUploaderInstance" entspricht wiederum dem Namen Ihrer Website, wie Sie in IIS registriert ist.

Fügen Sie das obige Fragment wiederholt neu für alle Sprachen ein, die in Ihrem Projekt aktiv sind. Beispielsweise für "de":

<location path="MyUploaderInstance/de/user/ntlm-login">
<system.webServer>
<security>
<authentication>
<anonymousAuthentication enabled="false" />
</authentication>
</security>
</system.webServer>
</location>

Mit diesen Einstellungen stellen Sie sicher, dass Downloads auch ohne NTLM-Authentifizierung durchgeführt werden können und Windows-Anmeldungen über eben die "ntlm-login"-URL stattfinden können.