Sicherheitsauthentifizierung <authentication>

Übersicht

Authentifizierung ist der Mechanismus, mit dem Sie die Identität von Besuchern Ihrer Website oder Webanwendung überprüfen. In der Regel weisen Sie einem Besucher einen Benutzernamen und ein Kennwort zu oder erlauben es einem Besucher, anonym auf öffentliche Inhalte auf Ihrer Website zuzugreifen.

Obwohl Sie die Authentifizierung verwenden, um die Identität eines Besuchers zu bestätigen, verwenden Sie die Autorisierung, um den Zugriff des Besuchers auf die verschiedenen Bereiche Ihrer Website oder Anwendung zu steuern.

IIS 7 unterstützt anonyme Authentifizierung, Standardauthentifizierung, Clientzertifikatzuordnungsauthentifizierung, Digestauthentifizierung, die IIS-Clientzertifikatzuordnungsauthentifizierung und Windows-Authentifizierung. Zusätzliche Authentifizierungsmodi können von Authentifizierungsmodulen von Drittanbietern bereitgestellt werden.

Nachdem Sie eines der Authentifizierungsmodule installiert haben, müssen Sie das ausgewählte Authentifizierungsmodul für die Website, Webanwendung oder den Webdienst aktivieren, für die Sie es verwenden möchten.

Darüber hinaus ermöglicht IIS 7 standardmäßig die Kernelmodusauthentifizierung für Windows (die entweder Kerberos oder NTLM verwendet), Authentifizierungsschema. Die Kernelmodusauthentifizierung bietet die folgenden Vorteile:

  • Ihre Webanwendungen können mit Konten mit niedrigeren Rechten ausgeführt werden.
  • Wenn Sie die Kerberos-Authentifizierung verwenden, können Sie ein anderes Konto als das Standardkonto verwenden, das dem Dienstprinzipalnamen (Service Principle Name, SPN) des Servers zugeordnet ist.
  • Wenn Sie die Kernelmodusauthentifizierung verwenden, können Sie den Kerberos-Anbieter der Windows-Authentifizierung ohne explizite SPN-Konfiguration verwenden.

Kompatibilität

Version Hinweise
IIS 10.0 Das <authentication> Element wurde in IIS 10.0 nicht geändert.
IIS 8.5 Das <authentication> Element wurde in IIS 8.5 nicht geändert.
IIS 8.0 Das <authentication> Element wurde in IIS 8.0 nicht geändert.
IIS 7.5 Das <authentication> Element wurde in IIS 7.5 nicht geändert.
IIS 7.0 Das <authentication> Element wurde in IIS 7.0 eingeführt.
IIS 6.0 N/V

Setup

Das <authentication>-Element ist in der Standardinstallation von IIS 7 enthalten.

Gewusst wie

So deaktivieren Sie die anonyme Authentifizierung

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

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

      • Klicken Sie in 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, wechseln Sie zu der Ebene im Hierarchiebereich, die Sie konfigurieren möchten, und klicken Sie dann auf die Website oder Webanwendung.

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

  4. Wählen Sie im Bereich Authentifizierung die Option Anonyme Authentifizierung, und klicken Sie dann Deaktivieren im Bereich Aktionen.
    Screenshot that shows the Authentication pane. Anonymous Authentication is enabled and selected.

So ändern Sie anonyme Authentifizierungsanmeldeinformationen aus dem IUSR-Konto

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

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

      • Klicken Sie in 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, navigieren Sie zu der Ebene im Hierarchiebereich, den Sie konfigurieren möchten, und klicken Sie dann auf die Website oder Webanwendung.

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

  4. Wählen Sie im Bereich Authentifizierung die Option Anonyme Authentifizierung, und klicken Sie dann Bearbeiten... im Bereich Aktionen.

  5. Führen Sie im Dialogfeld Anonyme Authentifizierungsinformationen bearbeiten eine der folgenden Optionen aus:

    • Wählen Sie Anwendungspoolidentität aus, um den Identitätsgruppe für den Anwendungspool zu verwenden, und klicken Sie dann auf OK.
      Screenshot that shows the Edit Anonymous Authentication Credentials dialog box. Application pool identity is selected.

    • Klicken Sie auf Festlegen..., und geben Sie dann im Dialogfeld Anmeldeinformationen festlegen den Benutzernamen für das Konto im Feld Benutzername ein, geben Sie das Kennwort für das Konto in den Feldern Kennwort und Kennwort bestätigen ein, klicken Sie auf OK, und klicken Sie dann erneut auf OK .
      Screenshot that shows the Set Credentials dialog box.

      Hinweis

      Wenn Sie dieses Verfahren verwenden, gewähren Sie nur dem neuen Konto minimale Berechtigungen auf dem IIS-Servercomputer.


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 in 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 that shows the Authentication pane. Windows Authentication is disabled and selected.

Konfiguration

Die Abschnittsgruppe <authentication> wird im Konfigurationsabschnitt <system.webServer> definiert. Diese Abschnittsgruppe definiert Konfigurationsabschnitte für alle Benutzerauthentifizierungstypen, die Sie auf Ihrem Server installieren und aktivieren können. Sie können sie auf Serverebene in der Datei ApplicationHost.config und auf der Anwendungsebene in der Datei Web.config konfigurieren.

Attribute

Keine

Untergeordnete Elemente

Element Beschreibung
anonymousAuthentication Optionales Element.

Gibt die Einstellungen für die anonyme Authentifizierung an.
basicAuthentication Optionales Element.

Gibt die Einstellungen für die Standardauthentifizierung an.
clientCertificateMappingAuthentication Optionales Element.

Gibt die Einstellungen für die Clientzertifikatzuordnungsauthentifizierung mithilfe von Active Directory an.
digestAuthentication Optionales Element.

Gibt die Einstellungen für die Digestauthentifizierung an.
iisClientCertificateMappingAuthentication Optionales Element.

Gibt die Einstellungen für die Clientzertifikatzuordnungsauthentifizierung mithilfe von IIS an.
windowsAuthentication Optionales Element.

Gibt die Einstellungen für die Windows-Authentifizierung an.

Konfigurationsbeispiel

Im folgenden Konfigurationsbeispiel wird die anonyme Authentifizierung für eine Site namens Contoso deaktiviert. Anschließend werden sowohl die Standardauthentifizierung als auch die Windows-Authentifizierung für die Site aktiviert.

<location path="Contoso">
   <system.webServer>
      <security>
         <authentication>
            <anonymousAuthentication enabled="false" />
            <basicAuthentication enabled="true" defaultLogonDomain="Contoso" />
            <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 werden sowohl die Standardauthentifizierung als auch 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/basicAuthentication /enabled:"True" /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 basicAuthenticationSection = config.GetSection("system.webServer/security/authentication/basicAuthentication", "Contoso");
         basicAuthenticationSection["enabled"] = true;

         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 basicAuthenticationSection As ConfigurationSection = config.GetSection("system.webServer/security/authentication/basicAuthentication", "Contoso")
      basicAuthenticationSection("enabled") = True

      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 basicAuthenticationSection = adminManager.GetAdminSection("system.webServer/security/authentication/basicAuthentication", "MACHINE/WEBROOT/APPHOST/Contoso");
basicAuthenticationSection.Properties.Item("enabled").Value = true;

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 basicAuthenticationSection = adminManager.GetAdminSection("system.webServer/security/authentication/basicAuthentication", "MACHINE/WEBROOT/APPHOST/Contoso")
basicAuthenticationSection.Properties.Item("enabled").Value = True

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

adminManager.CommitChanges()