Sicherheitautorisierung <authorization>

Übersicht

Mit dem <authorization>-Element können Sie die Benutzerkonten konfigurieren, die auf Ihre Website oder Anwendung zugreifen können. Verwenden Sie die Autorisierung in Kombination mit der Authentifizierung, um den Zugriff auf Inhalte auf Ihrem Server zu sichern. Die Authentifizierung bestätigt die Identität eines Benutzers, während die Autorisierung bestimmt, auf welche Ressourcen Benutzer zugreifen können oder nicht.

IIS definiert zwei Arten von Autorisierungsregeln, Zulassen und Verweigern von Regeln:

  • Mithilfe von Regeln können Sie die Benutzerkonten oder Benutzergruppen definieren, die auf eine Website, eine Anwendung oder alle Websites auf einem Server zugreifen können.
  • Mit Deny-Regeln können Sie die Benutzerkonten oder Benutzergruppen definieren, die nicht auf eine Website, eine Anwendung oder alle Websites auf einem Server zugreifen können.

Kompatibilität

Version Hinweise
IIS 10.0 Das <authorization>-Element wurde in IIS 10.0 nicht geändert.
IIS 8.5 Das <authorization>-Element wurde in IIS 8.5 nicht geändert.
IIS 8.0 Das <authorization>-Element wurde in IIS 8.0 nicht geändert.
IIS 7.5 Das <authorization>-Element wurde in IIS 7.5 nicht geändert.
IIS 7.0 Das <authorization>-Element wurde in IIS 7.0 eingeführt.
IIS 6.0 Die <authorization>-Auflistung ersetzt die IIS 6.0-Metabasiseigenschaften AzEnable, AzStoreName, AzScopeName und AzImpersonationLevel.

Setup

Um die Autorisierung für Websites und Anwendungen auf Ihrem Webserver zu unterstützen und zu konfigurieren, müssen Sie das URL-Autorisierungsmodul installieren. Führen Sie dazu die folgenden Schritte aus:

Windows Server 2012 oder Windows Server 2012 R2

  1. Klicken Sie auf der Taskleiste auf Server-Manager. Klicken Sie im Server-Manager auf Verwalten und dann auf Rollen und Features hinzufügen. - 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. – Erweitern Sie auf der Seite ServerrollenWebserver (IIS), erweitern Sie Webserver-, erweitern Sie Sicherheit, und wählen Sie dann URL-Autorisierung aus. Klicken Sie auf Weiter.
    Image of Web Server and Security pane expanded with U R L Authorization highlighted. . Klicken Sie auf der Seite Features auswählen auf Weiter. - Klicken Sie auf der Seite Installationsauswahl bestätigen auf Installieren. - 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 die Starttaste und klicken Sie dann auf Systemsteuerung. Klicken Sie in der Systemsteuerungauf Programme und Funktionenund dann auf Windows-Features aktivieren oder deaktivieren. - Erweitern Sie Internetinformationsdienste, erweitern Sie World Wide Web Services, erweitern Sie Sicherheit und wählen Sie dann URL-Autorisierung aus.
    Image of World Wide Web Services and Security pane expanded and U R L Authorization selected.- Auf OK klicken.
  2. 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. Erweitern Sie im Hierarchiebereich des Server-Managers die Rollenund klicken Sie dann auf den Webserver (IIS). Scrollen Sie im Bereich Webserver (IIS) zum Abschnitt Rollendienste, und klicken Sie dann auf Rollendienste hinzufügen. - Wählen Sie auf der Seite Rollendienste des Assistenten Rollendienste hinzufügendieURL-Autorisierung aus, und klicken Sie dann auf Weiter.
    Screenshot of Security pane expanded in Select Role Services page of the Add Role Services Wizard with U R L Authorization selected.- Klicken Sie auf der Seite Installationsauswahl bestätigen auf Installieren. - 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. Klicken Sie in der Systemsteuerungauf Programme und Funktionenund dann auf Windows-Features aktivieren oder deaktivieren. - Erweitern Sie Internetinformationsdienste, wählen Sie URL-Autorisierung aus, und klicken Sie dann auf OK.
    Image of Internet Information Services pane expanded and U R L Authorization selected.

Gewusst wie

So fügen Sie eine Autorisierungsregel hinzu

  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 Websites, und navigieren Sie dann zu der Website oder Anwendung, für die Sie die Autorisierung konfigurieren möchten.

  3. Doppelklicken Sie im Startbereich auf Autorisierungsregeln.
    Image of Home pane with Authorization Rules highlighted.

  4. Um eine neue Autorisierungsregel hinzuzufügen, klicken Sie im Bereich Aktionen auf Regel zum Erlauben hinzufügen... oder Regel zum Verweigern hinzufügen...

  5. Wenden Sie die für Ihre Website oder Anwendung erforderlichen Autorisierungseinstellungen an, und klicken Sie dann auf OK. Zum Beispiel:

    • Beispiel Nr. 1: Hinzufügen einer Zulassungsregel für alle Benutzer für bestimmte HTTP-Verben:
      Image of Adding an Allow rule for all users for specific H T T P verbs dialog box showing verbs typed in the box for Apply this rule to specific verbs.

    • Beispiel Nr. 2: Hinzufügen einer Verweigerungsregel für einen bestimmten Benutzer für alle HTTP-Verben:
      Image of dialog box for Add Deny Authorization Rule for a specific user for all H T T P verbs.

      Hinweis

      Wenn Sie eine vorhandene Regel bearbeiten oder löschen möchten, wählen Sie die Regel im Bereich Autorisierungsregeln aus, und klicken Sie dann im Bereich Aktionen auf bearbeiten oder Entfernen. Wenn Sie auf Bearbeiten klicken, wird ein Dialogfeld angezeigt, in dem Sie die Regel bearbeiten können. Dieses Dialogfeld ähnelt den Dialogfeldern Hinzufügen einer Autorisierungsregel zulassen und Hinzufügen einer Autorisierungsregel ablehnen.

Konfiguration

Sie können das <authorization>-Element auf Serverebene in der Datei ApplicationHost.config oder auf Website- oder Anwendungsebene in der entsprechenden Datei Web.config konfigurieren.

Sie können Standardautorisierungsregeln für den gesamten Server festlegen, indem Sie Autorisierungsregeln auf Serverebene konfigurieren. Sie können diese Regeln entfernen, löschen oder außer Kraft setzen, indem Sie spezifischere Regeln für Ihre Websites oder Anwendungen konfigurieren.

Attribute

Attribut Beschreibung
bypassLoginPages Optionales boolesches Attribut.

Gibt an, ob die Autorisierungsprüfung für die Seite, die als Anmeldeseite für die Formularauthentifizierung angegeben wurde, übersprungen werden soll. Dadurch können nicht authentifizierte Benutzer auf die Anmeldeseite zugreifen, um sich anzumelden.

Der Standardwert ist true.

Untergeordnete Elemente

Element Beschreibung
add Optionales Element.

Fügt der Sammlung von Autorisierungsregeln eine Autorisierungsregel hinzu.
remove Optionales Element.

Entfernt einen Verweis auf eine Autorisierungsregel zur Sammlung von Autorisierungsregeln.
clear Optionales Element.

Entfernt alle Verweise auf Autorisierungsregeln aus der Sammlung von Autorisierungsregeln.

Konfigurationsbeispiel

Im folgenden Konfigurationsbeispiel, das in einer Web.config-Datei enthalten ist, werden die Standard-IIS-Autorisierungseinstellungen entfernt, die allen Benutzern den Zugriff auf Website- oder Anwendungsinhalte ermöglichen. Anschließend wird eine Autorisierungsregel konfiguriert, mit der nur Benutzer mit Administratorrechten auf den Inhalt zugreifen können.

<configuration>
   <system.webServer>
      <security>
         <authorization>
            <remove users="*" roles="" verbs="" />
            <add accessType="Allow" users="" roles="Administrators" />
         </authorization>
      </security>
   </system.webServer>
</configuration>

Beispielcode

In den folgenden Beispielen wird eine Zulassungsregel hinzugefügt, mit der Benutzer in der Gruppe „Administratoren“ auf eine Website mit dem Namen Contoso zugreifen können.

AppCmd.exe

appcmd.exe set config "Contoso" -section:system.webServer/security/authorization /+"[accessType='Allow',roles='administrators']"

Hinweis

Sie können optional den Parameter Commit auf apphost 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.GetWebConfiguration("Contoso");
         ConfigurationSection authorizationSection = config.GetSection("system.webServer/security/authorization");
         ConfigurationElementCollection authorizationCollection = authorizationSection.GetCollection();

         ConfigurationElement addElement = authorizationCollection.CreateElement("add");
         addElement["accessType"] = @"Allow";
         addElement["roles"] = @"administrators";
         authorizationCollection.Add(addElement);

         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.GetWebConfiguration("Contoso")
      Dim authorizationSection As ConfigurationSection = config.GetSection("system.webServer/security/authorization")
      Dim authorizationCollection As ConfigurationElementCollection = authorizationSection.GetCollection
      Dim addElement As ConfigurationElement = authorizationCollection.CreateElement("add")
      addElement("accessType") = "Allow"
      addElement("roles") = "administrators"
      authorizationCollection.Add(addElement)
      serverManager.CommitChanges()
   End Sub
End Module

JavaScript

var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST/Contoso";
var authorizationSection = adminManager.GetAdminSection("system.webServer/security/authorization", "MACHINE/WEBROOT/APPHOST/Contoso");
var authorizationCollection = authorizationSection.Collection;

var addElement = authorizationCollection.CreateNewElement("add");
addElement.Properties.Item("accessType").Value = "Allow";
addElement.Properties.Item("roles").Value = "administrators";
authorizationCollection.AddElement(addElement);

adminManager.CommitChanges();

VBScript

Set adminManager = CreateObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST/Contoso"
Set authorizationSection = adminManager.GetAdminSection("system.webServer/security/authorization", "MACHINE/WEBROOT/APPHOST/Contoso")
Set authorizationCollection = authorizationSection.Collection

Set addElement = authorizationCollection.CreateNewElement("add")
addElement.Properties.Item("accessType").Value = "Allow"
addElement.Properties.Item("roles").Value = "administrators"
authorizationCollection.AddElement(addElement)

adminManager.CommitChanges()