Windows-Authentifizierung <windowsAuthentication>

Übersicht

Das <windowsAuthentication>-Element definiert Konfigurationseinstellungen für das Internetinformationsdienste (IIS) 7 Windows-Authentifizierungsmodul. Sie können die Windows-Authentifizierung verwenden, wenn Ihr IIS 7-Server in einem Unternehmensnetzwerk ausgeführt wird, dass Microsoft Active Directory Service-Domänenidentitäten oder andere Windows-Konten verwendet, um Benutzer zu identifizieren. Aus diesem Grund können Sie die Windows-Authentifizierung unabhängig davon verwenden, ob Ihr Server Mitglied einer Active Directory-Domäne ist oder nicht.

Die Windows-Authentifizierung (früher NTLM genannt und auch als Windows NT Abfrage/Rückmeldung-Authentifizierung bezeichnet) ist eine sichere Authentifizierungsform, da der Benutzername und das Kennwort vor dem Senden über das Netzwerk gehasht werden. Wenn Sie die Windows-Authentifizierung aktivieren, sendet der Clientbrowser eine stark gehashte Version des Kennworts in einem kryptografischen Austausch mit Ihrem Webserver.

Die Windows-Authentifizierung unterstützt zwei Authentifizierungsprotokolle, Kerberos und NTLM, die im <providers>-Element definiert sind. Wenn Sie die Windows-Authentifizierung unter IIS 7 installieren und aktivieren, ist das Standardprotokoll Kerberos. Das <windowsAuthentication>-Element kann auch ein useKernelMode-Attribut enthalten, das konfiguriert, ob das für Windows Server 2008 neue Kernelmodus-Authentifizierungsfeature verwendet werden soll.

Die Windows-Authentifizierung ist aus den folgenden Gründen für Intranetumgebungen am besten geeignet:

  • Clientcomputer und Webserver befinden sich in derselben Domäne.
  • Administratoren können sicherstellen, dass jeder Clientbrowser Internet Explorer 2.0 oder höher ist.
  • HTTP-Proxyverbindungen, die von NTLM nicht unterstützt werden, sind nicht erforderlich.
  • Kerberos Version 5 erfordert eine Verbindung mit Active Directory, was in einer Internetumgebung nicht möglich ist.

Neu in IIS 7.5

Das <extendedProtection>-Element wurde in IIS 7.5 eingeführt, mit dem Sie die Einstellungen für die neuen erweiterten Schutzfunktionen konfigurieren können, die in die Windows-Authentifizierung integriert wurden.

Kompatibilität

Version Hinweise
IIS 10.0 Das <windowsAuthentication> Element wurde in IIS 10.0 nicht geändert.
IIS 8.5 Das <windowsAuthentication> Element wurde in IIS 8.5 nicht geändert.
IIS 8.0 Das <windowsAuthentication> Element wurde in IIS 8.0 nicht geändert.
IIS 7.5 Das <extendedProtection>-Element wurde in IIS 7.5 hinzugefügt.
IIS 7.0 Das <windowsAuthentication> Element wurde in IIS 7.0 eingeführt.
IIS 6.0 Das <windowsAuthentication>-Element ersetzt Teile der IIS 6.0 AuthType- und AuthFlags-Metabasiseigenschaften.

Setup

Die Standardinstallation von IIS 7 und höher enthält nicht den Windows-Authentifizierungsrollendienst. Um die Windows-Authentifizierung unter IIS zu verwenden, müssen Sie den Rollendienst installieren, die anonyme Authentifizierung für Ihre Website oder Anwendung deaktivieren und dann die Windows-Authentifizierung für die Website oder Anwendung aktivieren.

Hinweis

Nachdem Sie den Rollendienst installiert haben, übernimmt IIS 7 die folgenden Konfigurationseinstellungen in die Datei ApplicationHost.config.

<windowsAuthentication enabled="false" />

Windows Server 2012 oder Windows Server 2012 R2

  1. Klicken Sie auf der Taskleiste auf Server-Manager.
  2. Klicken Sie im Server-Manager auf Verwalten und dann auf Rollen und Features hinzufügen.
  3. Klicken Sie im Assistenten zum Hinzufügen von Rollen und Features auf Weiter. Wählen Sie den Installationstyp aus, und klicken Sie auf Weiter. Wählen Sie den Zielserver aus, und klicken Sie auf Weiter.
  4. Erweitern Sie auf der Seite Serverrollen den Webserver (IIS),erweitern Sie den Webserver, erweitern Sie Sicherheit, und wählen Sie dann Windows-Authentifizierung aus. Klicken Sie auf Weiter.
    Screenshot of the Server Roles page with the Windows Authentication option being highlighted. .
  5. Klicken Sie auf der Seite Features auswählen auf Weiter.
  6. Klicken Sie auf der Seite Installationsauswahl bestätigen auf Installieren.
  7. Klicken Sie auf der Seite Ergebnisse auf Schließen.

Windows 8 oder Windows 8.1

  1. Bewegen Sie auf dem Startbildschirm den Mauszeiger ganz nach links unten, klicken Sie mit der rechten Maustaste auf dieStarttaste und klicken Sie dann auf Systemsteuerung.
  2. Klicken Sie in der Systemsteuerungauf Programme und dann auf „Windows-Features aktivieren oder deaktivieren“.
  3. Erweitern Sie Internetinformationsdienste, erweitern Sie World Wide Web Services, erweitern Sie Sicherheit, und wählen Sie dann Windows-Authentifizierung aus.
    Screenshot of the Internet Information Services folder's contained folders, with the Windows Authentication folder being highlighted.
  4. Klicken Sie auf OK.
  5. Klicken Sie auf Schließen.

Windows Server 2008 oder Windows Server 2008 R2

  1. Klicken Sie auf der Taskleiste auf Start, zeigen Sie auf Verwaltungstools, und klicken Sie dann auf Server-Manager.
  2. Erweitern Sie im Hierarchiebereich des Server-Managers die Rollenund klicken Sie dann auf den Webserver (IIS) .
  3. Scrollen Sie im Bereich Webserver (IIS) zum Abschnitt "Rollendienste ", und klicken Sie dann auf "Rollendienstehinzufügen".
  4. Wählen Sie auf der Seite Rollendienste auswählen des Assistenten zum Hinzufügen von RollendienstenWindows-Authentifizierung aus, und klicken Sie dann auf Weiter.
    Screenshot of the Select Role Services page with the Windows Authentication option being highlighted.
  5. Klicken Sie auf der Seite Installationsauswahl bestätigen auf Installieren.
  6. Klicken Sie auf der Seite Ergebnisse auf Schließen.

Windows Vista oder Windows 7

  1. Klicken Sie auf der Taskleiste auf "Start" und dann auf "Systemsteuerung".
  2. Klicken Sie in der Systemsteuerungauf Programmeund dann auf Windows-Features aktivieren oder deaktivieren.
  3. Erweitern Sie Internetinformationsdienste, dann WWW-Dienste und dann Sicherheit.
  4. Wählen Sie Windows-Authentifizierung aus, und klicken Sie dann auf OK.
    Screenshot of the expandable Internet Information Services folder with the Windows Authentication folder being highlighted.

Gewusst wie

So aktivieren Sie die Windows-Authentifizierung für eine Website, Webanwendung oder einen Webdienst

  1. Öffnen Sie den Internet Information Services (IIS) Manager:

    • Wenn Sie Windows Server 2012 oder Windows Server 2012 R2 verwenden:

      • Klicken Sie der der Taskleiste auf Server-Managerdann auf Toolsund dann auf den Internet Information Services (IIS) Manager.
    • Wenn Sie Windows 8 oder Windows 8.1 verwenden:

      • Halten Sie die Windows-Taste gedrückt, drücken Sie den Buchstaben X, und klicken Sie dann auf "Systemsteuerung".
      • Klicken Sie auf Verwaltungund doppelklicken Sie dann auf den Internet Information Services (IIS) Manager.
    • Wenn Sie Windows Server 2008 oder Windows Server 2008 R2 verwenden:

      • Klicken Sie auf der Taskleiste auf Start, zeigen Sie auf Verwaltungund dann auf den Internet Information Services (IIS) Manager.
    • Wenn Sie Windows Vista oder Windows 7 verwenden:

      • Klicken Sie auf der Taskleiste auf "Start" und dann auf "Systemsteuerung".
      • Doppelklicken Sie auf Verwaltungund doppelklicken Sie dann auf den Internet Information Services (IIS) Manager.
  2. Erweitern Sie im Bereich Verbindungen den Servernamen, erweitern Sie Sites und dann die Website, Anwendung oder den Webdienst, für die Sie die Windows-Authentifizierung aktivieren möchten.

  3. Scrollen Sie zum Abschnitt Sicherheit im Bereich Start, und doppelklicken Sie dann auf Authentifizierung.

  4. Wählen Sie im Bereich Authentifizierung die Windows-Authentifizierung, und klicken Sie dann Aktivieren im Bereich Aktionen.
    Screenshot of the Authentication pane which contains the Name and Status fields.


So aktivieren Sie erweiterten Schutz für die Windows-Authentifizierung

  1. Öffnen Sie den Internet Information Services (IIS) Manager:

    • Wenn Sie Windows Server 2012 oder Windows Server 2012 R2 verwenden:

      • Klicken Sie der der Taskleiste auf Server-Managerdann auf Toolsund dann auf den Internet Information Services (IIS) Manager.
    • Wenn Sie Windows 8 oder Windows 8.1 verwenden:

      • Halten Sie die Windows-Taste gedrückt, drücken Sie den Buchstaben X, und klicken Sie dann auf "Systemsteuerung".
      • Klicken Sie auf Verwaltungund doppelklicken Sie dann auf den Internet Information Services (IIS) Manager.
    • Wenn Sie Windows Server 2008 oder Windows Server 2008 R2 verwenden:

      • Klicken Sie auf der Taskleiste auf Start, zeigen Sie auf Verwaltungund dann auf den Internet Information Services (IIS) Manager.
    • Wenn Sie Windows Vista oder Windows 7 verwenden:

      • Klicken Sie auf der Taskleiste auf "Start" und dann auf "Systemsteuerung".
      • Doppelklicken Sie auf Verwaltungund doppelklicken Sie dann auf den Internet Information Services (IIS) Manager.
  2. Erweitern Sie im Bereich Verbindungen den Servernamen, erweitern Sie Sites und dann die Website, Anwendung oder den Webdienst, für die Sie den erweiterten Schutz für Windows-Authentifizierung aktivieren möchten.

  3. Scrollen Sie zum Abschnitt Sicherheit im Bereich Start, und doppelklicken Sie dann auf Authentifizierung.

  4. Wählen Sie im Bereich Authentifizierung die Option Windows-Authentifizierung aus.

  5. Klicken Sie im Bereich Aktionen auf Aktivieren.
    Screenshot of the Authentication pane and its Group by field.

  6. Klicken Sie im Bereich Aktionen auf Erweiterte Einstellungen.

  7. Wenn das Dialogfeld Erweiterte Einstellungen angezeigt wird, wählen Sie im Dropdownmenü Erweiterter Schutz eine der folgenden Optionen aus:

    • Wählen Sie Annehmen aus, wenn Sie den erweiterten Schutz aktivieren möchten, während Sie Unterstützung für Clients bereitstellen, die keinen erweiterten Schutz unterstützen.
    • Wählen Sie Erforderlich aus, wenn Sie den erweiterten Schutz aktivieren möchten, ohne Unterstützung auf der Downlevelebene bereitzustellen.
      Screenshot of the Advanced Settings dialog box with the Extended Protection field's Accept option being highlighted.
  8. Klicken Sie auf OK, um das Dialogfeld Erweiterte Einstellungen zu schließen.

Konfiguration

Das <windowsAuthentication>-Element kann auf Site-, Anwendungs- oder virtuelle Verzeichnisebene in der Datei ApplicationHost.config konfiguriert werden.

Attribute

Attribut Beschreibung
authPersistNonNTLM Optionales Boolean -Attribut.

Gibt an, ob IIS automatisch jede Nicht-NTLM-Anforderung (z. B. Kerberos) erneut authentifiziert, auch solche in derselben Verbindung. False aktiviert mehrere Authentifizierungen für dieselben Verbindungen.

Hinweis: Eine Einstellung von true bedeutet, dass der Client nur einmal in derselben Verbindung authentifiziert wird. IIS speichert ein Token oder Ticket auf dem Server für eine TCP-Sitzung, die eingerichtet bleibt.

Der Standardwert ist false.
authPersistSingleRequest Optionales Boolean -Attribut.

Wenn Sie dieses Kennzeichen auf true festlegen, wird angegeben, dass die Authentifizierung nur für eine einzelne Anforderung für eine Verbindung beibehalten wird. IIS setzt die Authentifizierung am Ende jeder Anforderung zurück und erzwingt die erneute Authentifizierung für die nächste Anforderung der Sitzung.

Der Standardwert ist false.
enabled Erforderliches boolesches Attribut.

Gibt an, ob die Windows-Authentifizierung aktiviert ist.

Der Standardwert ist false.
useKernelMode Optionales Boolean -Attribut.

Gibt an, ob die Windows-Authentifizierung im Kernelmodus ausgeführt wird. True gibt an, dass Windows-Authentifizierung den Kernelmodus verwendet.

Die Kernelmodusauthentifizierung kann die Leistungsfähigkeit der Authentifizierung verbessern und Authentifizierungsprobleme mit Anwendungspools verhindern, die für die Verwendung einer benutzerdefinierten Identität konfiguriert sind.

Wenn Sie die Kerberos-Authentifizierung verwenden und eine benutzerdefinierte Identität für den Anwendungspool konfiguriert ist, sollten Sie diese Einstellung nicht deaktivieren.

Der Standardwert ist true.

Untergeordnete Elemente

Element Beschreibung
extendedProtection Optionales Element.

Gibt erweiterte Schutzoptionen für Windows-Authentifizierung an.

Hinweis: Dieses Element wurde in IIS 7.5 hinzugefügt.
providers Optionales Element.

Gibt Security Support Provider an, die für die Windows-Authentifizierung verwendet werden.

Konfigurationsbeispiel

Das folgende Standardelement <windowsAuthentication> ist in der Stammdatei ApplicationHost.config in IIS 7.0 konfiguriert und deaktiviert standardmäßig die Windows-Authentifizierung. Außerdem werden die beiden Windows-Authentifizierungsanbieter für IIS 7.0 definiert.

<windowsAuthentication enabled="false">
   <providers>
      <add value="Negotiate" />
      <add value="NTLM" />
   </providers>
</windowsAuthentication>

Im folgenden Beispiel wird die Windows-Authentifizierung aktiviert und die anonyme Authentifizierung für eine Website namens Contoso deaktiviert.

<location path="Contoso">
   <system.webServer>
      <security>
         <authentication>
            <anonymousAuthentication enabled="false" />
            <windowsAuthentication enabled="true" />
         </authentication>
      </security>
   </system.webServer>
</location>

Beispielcode

In den folgenden Beispielen wird die anonyme Authentifizierung für eine Site namens Contoso deaktiviert. Anschließend wird die Windows-Authentifizierung für die Site aktiviert.

AppCmd.exe

appcmd.exe set config "Contoso" -section:system.webServer/security/authentication/anonymousAuthentication /enabled:"False" /commit:apphost

appcmd.exe set config "Contoso" -section:system.webServer/security/authentication/windowsAuthentication /enabled:"True" /commit:apphost

Hinweis

Sie müssen unbedingt den Commitparameterapphost festlegen, wenn Sie AppCmd.exe verwenden, um diese Einstellungen zu konfigurieren. Dadurch werden die Konfigurationseinstellungen auf den entsprechenden Speicherortabschnitt in der Datei ApplicationHost.config festgelegt.

C#

using System;
using System.Text;
using Microsoft.Web.Administration;

internal static class Sample {

   private static void Main() {

      using(ServerManager serverManager = new ServerManager()) { 
         Configuration config = serverManager.GetApplicationHostConfiguration();

         ConfigurationSection anonymousAuthenticationSection = config.GetSection("system.webServer/security/authentication/anonymousAuthentication", "Contoso");
         anonymousAuthenticationSection["enabled"] = false;

         ConfigurationSection windowsAuthenticationSection = config.GetSection("system.webServer/security/authentication/windowsAuthentication", "Contoso");
         windowsAuthenticationSection["enabled"] = true;

         serverManager.CommitChanges();
      }
   }
}

VB.NET

Imports System
Imports System.Text
Imports Microsoft.Web.Administration

Module Sample
   Sub Main()
      Dim serverManager As ServerManager = New ServerManager
      Dim config As Configuration = serverManager.GetApplicationHostConfiguration

      Dim anonymousAuthenticationSection As ConfigurationSection = config.GetSection("system.webServer/security/authentication/anonymousAuthentication", "Contoso")
      anonymousAuthenticationSection("enabled") = False

      Dim windowsAuthenticationSection As ConfigurationSection = config.GetSection("system.webServer/security/authentication/windowsAuthentication", "Contoso")
      windowsAuthenticationSection("enabled") = True

      serverManager.CommitChanges()
   End Sub
End Module

JavaScript

var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";

var anonymousAuthenticationSection = adminManager.GetAdminSection("system.webServer/security/authentication/anonymousAuthentication", "MACHINE/WEBROOT/APPHOST/Contoso");
anonymousAuthenticationSection.Properties.Item("enabled").Value = false;

var windowsAuthenticationSection = adminManager.GetAdminSection("system.webServer/security/authentication/windowsAuthentication", "MACHINE/WEBROOT/APPHOST/Contoso");
windowsAuthenticationSection.Properties.Item("enabled").Value = true;

adminManager.CommitChanges();

VBScript

Set adminManager = CreateObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"

Set anonymousAuthenticationSection = adminManager.GetAdminSection("system.webServer/security/authentication/anonymousAuthentication", "MACHINE/WEBROOT/APPHOST/Contoso")
anonymousAuthenticationSection.Properties.Item("enabled").Value = False

Set windowsAuthenticationSection = adminManager.GetAdminSection("system.webServer/security/authentication/windowsAuthentication", "MACHINE/WEBROOT/APPHOST/Contoso")
windowsAuthenticationSection.Properties.Item("enabled").Value = True

adminManager.CommitChanges()