FTP-Autorisierung: <authorization>-Element
Ü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.
IIS definiert zwei Arten von Autorisierungsregeln – Zulassungs- und Verweigerungsregeln:
- Mithilfe von Zulassungsregeln können Sie die Benutzerkonten oder Benutzergruppen festlegen, die auf eine Site, eine Anwendung oder alle Sites auf einem Server zugreifen können.
- Mithilfe von Verweigerungsregeln können Sie die Benutzerkonten oder Benutzergruppen festlegen, die nicht auf eine Site, eine Anwendung oder alle Sites 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 des <system.ftpServer/security> -Elements wird als Feature von IIS 7.5 bereitgestellt. |
IIS 7.0 | Das <authorization> -Element des <system.ftpServer/security> -Elements wurde in FTP 7.0 als separater Download für IIS 7.0 eingeführt. |
IIS 6.0 | N/V |
Hinweis
Die Dienste FTP 7.0 und FTP 7.5 waren nicht im Lieferumfang von IIS 7.0 enthalten, daher mussten die Module unter der folgenden URL heruntergeladen und installiert werden:
Bei Windows 7 und Windows Server 2008 R2 wird der FTP 7.5-Dienst als Feature für IIS 7.5 bereitgestellt, sodass das Herunterladen des FTP-Diensts nicht mehr erforderlich ist.
Setup
Um die FTP-Veröffentlichung für Ihren Webserver zu unterstützen, müssen Sie den FTP-Dienst installieren. Führen Sie dazu die folgenden Schritte aus:
Windows Server 2012 oder Windows Server 2012 R2
Klicken Sie auf der Taskleiste auf Server-Manager.
Klicken Sie im Server-Manager auf das Menü 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 Serverrollen den Eintrag Webserver (IIS), und wählen Sie dann FTP-Server aus.
Hinweis
Um die Authentifizierung mittels ASP.NET-Mitgliedschaft oder IIS-Manager für den FTP-Dienst zu unterstützen, müssen Sie zusätzlich zu FTP-Dienst die Option FTP-Erweiterbarkeit auswählen.
.
Klicken Sie auf Weiter, und wählen Sie dann auf der Seite Features auswählen erneut Weiter aus.
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
Klicken Sie auf dem Startbildschirm in der unteren linken Ecke mit der rechten Maustaste auf die Schaltfläche Start, und klicken Sie dann auf Systemsteuerung.
Klicken Sie in der Systemsteuerung auf Programme und Features und dann auf Windows-Features aktivieren oder deaktivieren.
Erweitern Sie Internetinformationsdienste, und wählen Sie dann FTP-Server aus.
Hinweis
Um die Authentifizierung mittels ASP.NET-Mitgliedschaft oder IIS-Manager für den FTP-Dienst zu unterstützen, müssen Sie auch FTP-Erweiterbarkeit auswählen.
Klicken Sie auf OK.
Klicken Sie auf Schließen.
Windows Server 2008 R2
Klicken Sie auf der Taskleiste auf Start, zeigen Sie auf Verwaltung, und klicken Sie dann auf Server-Manager.
Erweitern Sie im Hierarchiebereich des Server-Managers den Eintrag Rollen, und klicken Sie dann auf Webserver (IIS).
Scrollen Sie im Bereich Webserver (IIS) zum Abschnitt Rollendienste, und klicken Sie dann auf Rollendienste hinzufügen.
Erweitern Sie auf der Seite Rollendienste auswählen des Assistenten zum Hinzufügen von Rollendiensten den Eintrag FTP-Server.
Wählen Sie FTP-Dienst aus.
Hinweis
Um die Authentifizierung mittels ASP.NET-Mitgliedschaft oder IIS-Manager für den FTP-Dienst zu unterstützen, müssen Sie auch FTP-Erweiterbarkeit auswählen.
Klicken Sie auf Weiter.
Klicken Sie auf der Seite Installationsauswahl bestätigen auf Installieren.
Klicken Sie auf der Seite Ergebnisse auf Schließen.
Windows 7
Klicken Sie auf der Taskleiste auf Start und dann auf Systemsteuerung.
Klicken Sie in der Systemsteuerung auf Programme und Features und dann auf Windows-Features aktivieren oder deaktivieren.
Erweitern Sie Internetinformationsdienste und dann FTP-Server.
Wählen Sie FTP-Dienst aus.
Hinweis
Um die Authentifizierung mittels ASP.NET-Mitgliedschaft oder IIS-Manager für den FTP-Dienst zu unterstützen, müssen Sie auch FTP-Erweiterbarkeit auswählen.
Klicken Sie auf OK.
Windows Server 2008 oder Windows Vista
Laden Sie das Installationspaket unter der folgenden URL herunter:
Befolgen Sie die Anweisungen in der folgenden exemplarischen Vorgehensweise, um den FTP-Dienst zu installieren:
Gewusst wie
Hinzufügen einer FTP-Autorisierungsregel
Öffnen Sie Internetinformationsdienste-Manager (IIS):
Vorgehensweise unter Windows Server 2012 oder Windows Server 2012 R2:
- Klicken Sie auf der Taskleiste auf Server-Manager, dann auf Tools und danach auf Internetinformationsdienste-Manager (IIS).
Vorgehensweise unter Windows 8 oder Windows 8.1:
- Halten Sie die Windows-Logo-Taste gedrückt, drücken Sie den Buchstaben X, und klicken Sie dann auf Systemsteuerung.
- Klicken Sie auf Verwaltung, und doppelklicken Sie dann auf Internetinformationsdienste-Manager (IIS).
Vorgehensweise unter Windows Server 2008 oder Windows Server 2008 R2:
- Klicken Sie auf der Taskleiste auf Start, zeigen Sie auf Verwaltung, und klicken Sie dann auf Internetinformationsdienste-Manager (IIS).
Vorgehensweise unter Windows Vista oder Windows 7:
- Klicken Sie auf der Taskleiste auf Start und dann auf Systemsteuerung.
- Doppelklicken Sie auf Verwaltung und dann auf Internetinformationsdienste-Manager (IIS).
Erweitern Sie im Bereich Verbindungen den Servernamen, erweitern Sie den Knoten Sites, und navigieren Sie dann zu der Site oder URL, für die Sie die Autorisierung konfigurieren möchten.
Doppelklicken Sie im Bereich Start auf Autorisierungsregeln.
Um eine neue Autorisierungsregel hinzuzufügen, klicken Sie im Bereich Aktionen auf Zulassungsregel hinzufügen oder Ablehnungsregel hinzufügen.
Wenden Sie die erforderlichen Autorisierungseinstellungen für Ihre Site oder Anwendung an. Beachten Sie die folgenden zwei Abschnitte:
Zugriff auf diese Inhalte erlauben für: Verwenden Sie die Optionsfelder, um anzugeben, für wen die Zugriffsregel gilt:
- Alle Benutzer
- Alle anonymen Benutzer
- Bestimmte Rollen oder Benutzergruppen (mehrere Gruppen/Rollen können durch Kommas getrennt werden)
- Bestimmte Benutzer (mehrere Benutzer können durch Kommas getrennt werden)
Berechtigungen: Verwenden Sie das Kontrollkästchen, um die Zugriffsberechtigung Lesen oder Schreiben für die Regel anzugeben.
Klicken Sie auf OK.
Konfiguration
Sie können das <authorization>
-Element in der Datei „ApplicationHost.config“ auf Site- oder URL-Ebene 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 Sites oder URLs konfigurieren.
Attribute
Keine
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 aus der Sammlung von Autorisierungsregeln. |
clear |
Optionales Element. Entfernt alle Verweise auf Autorisierungsregeln aus der Sammlung von Autorisierungsregeln. |
Konfigurationsbeispiel
Das folgende Beispiel veranschaulicht mehrere sicherheitsbezogene Konfigurationseinstellungen im <system.ftpServer>
-Element für eine FTP-Site. Insbesondere zeigen die <location>
-Einstellungen in diesem Beispiel, wie Sie:
- eine FTP-Autorisierungsregel für Lese- und Schreibzugriff für die Administratorengruppe festlegen
- Optionen für die FTP-Anforderungsfilterung festlegen, die Dateien mit den Dateiendungen „*.exe“, „*.bat“ und „*.cmd“ verweigern
- FTP-Anforderungsgrenzwerte für eine maximale Inhaltslänge von 1.000.000 Bytes und eine maximale URL-Länge von 1.024 Bytes festlegen
- den FTP-Zugriff auf das virtuelle Verzeichnis „_vti_bin“ blockieren, das mit den FrontPage-Servererweiterungen (FPSE) verwendet wird
- IP-Filterungsoptionen für FTP festlegen, die den Zugriff von 127.0.0.1 zulassen und den Zugriff vom IP-Adressbereich 169.254.0.0/255.255.0.0 verweigern
<location path="ftp.example.com">
<system.ftpServer>
<security>
<authorization>
<add accessType="Allow" roles="administrators" permissions="Read, Write" />
</authorization>
<requestFiltering>
<fileExtensions allowUnlisted="true">
<add fileExtension=".exe" allowed="false" />
<add fileExtension=".bat" allowed="false" />
<add fileExtension=".cmd" allowed="false" />
</fileExtensions>
<requestLimits maxAllowedContentLength="1000000" maxUrl="1024" />
<hiddenSegments>
<add segment="_vti_bin" />
</hiddenSegments>
</requestFiltering>
<ipSecurity enableReverseDns="false" allowUnlisted="true">
<add ipAddress="127.0.0.1" allowed="true" />
<add ipAddress="169.254.0.0" subnetMask="255.255.0.0" allowed="false" />
</ipSecurity>
</security>
</system.ftpServer>
</location>
Beispielcode
In den folgenden Beispielen werden zwei FTP-Autorisierungsregeln für die Standardwebsite hinzugefügt. Die erste Regel ermöglicht den Lese- und Schreibzugriff für die Administratorengruppe, und die zweite Regel verweigert den Lese- und Schreibzugriff für das Gastkonto.
AppCmd.exe
appcmd.exe set config "Default Web Site" -section:system.ftpServer/security/authorization /+"[accessType='Allow',roles='administrators',permissions='Read, Write']" /commit:apphost
appcmd.exe set config "Default Web Site" -section:system.ftpServer/security/authorization /+"[accessType='Deny',users='guest',permissions='Read, Write']" /commit:apphost
Hinweis
Sie müssen den commit-Parameter auf apphost
festlegen, wenn Sie „AppCmd.exe“ verwenden, um diese Einstellungen zu konfigurieren. Dadurch werden die Konfigurationseinstellungen in den entsprechenden Location-Abschnitt der Datei „ApplicationHost.config“ committet.
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 authorizationSection = config.GetSection("system.ftpServer/security/authorization", "Default Web Site");
ConfigurationElementCollection authorizationCollection = authorizationSection.GetCollection();
ConfigurationElement addElement = authorizationCollection.CreateElement("add");
addElement["accessType"] = @"Allow";
addElement["roles"] = @"administrators";
addElement["permissions"] = @"Read, Write";
authorizationCollection.Add(addElement);
ConfigurationElement addElement1 = authorizationCollection.CreateElement("add");
addElement1["accessType"] = @"Deny";
addElement1["users"] = @"guest";
addElement1["permissions"] = @"Read, Write";
authorizationCollection.Add(addElement1);
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 authorizationSection As ConfigurationSection = config.GetSection("system.ftpServer/security/authorization", "Default Web Site")
Dim authorizationCollection As ConfigurationElementCollection = authorizationSection.GetCollection
Dim addElement As ConfigurationElement = authorizationCollection.CreateElement("add")
addElement("accessType") = "Allow"
addElement("roles") = "administrators"
addElement("permissions") = "Read, Write"
authorizationCollection.Add(addElement)
Dim addElement1 As ConfigurationElement = authorizationCollection.CreateElement("add")
addElement1("accessType") = "Deny"
addElement1("users") = "guest"
addElement1("permissions") = "Read, Write"
authorizationCollection.Add(addElement1)
serverManager.CommitChanges()
End Sub
End Module
JavaScript
var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";
var authorizationSection = adminManager.GetAdminSection("system.ftpServer/security/authorization", "MACHINE/WEBROOT/APPHOST/Default Web Site");
var authorizationCollection = authorizationSection.Collection;
var addElement = authorizationCollection.CreateNewElement("add");
addElement.Properties.Item("accessType").Value = "Allow";
addElement.Properties.Item("roles").Value = "administrators";
addElement.Properties.Item("permissions").Value = "Read, Write";
authorizationCollection.AddElement(addElement);
var addElement1 = authorizationCollection.CreateNewElement("add");
addElement1.Properties.Item("accessType").Value = "Deny";
addElement1.Properties.Item("users").Value = "guest";
addElement1.Properties.Item("permissions").Value = "Read, Write";
authorizationCollection.AddElement(addElement1);
adminManager.CommitChanges();
VBScript
Set adminManager = createObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"
Set authorizationSection = adminManager.GetAdminSection("system.ftpServer/security/authorization", "MACHINE/WEBROOT/APPHOST/Default Web Site")
Set authorizationCollection = authorizationSection.Collection
Set addElement = authorizationCollection.CreateNewElement("add")
addElement.Properties.Item("accessType").Value = "Allow"
addElement.Properties.Item("roles").Value = "administrators"
addElement.Properties.Item("permissions").Value = "Read, Write"
authorizationCollection.AddElement(addElement)
Set addElement1 = authorizationCollection.CreateNewElement("add")
addElement1.Properties.Item("accessType").Value = "Deny"
addElement1.Properties.Item("users").Value = "guest"
addElement1.Properties.Item("permissions").Value = "Read, Write"
authorizationCollection.AddElement(addElement1)
adminManager.CommitChanges()