<Zugriff> auf Zugriffssicherheit

Übersicht

Mit dem <access>-Element können Sie konfigurieren, ob eine Website oder Anwendung Clientzertifikate für die Authentifizierung verwendet, und Sie können die für die Verschlüsselung dieser Zertifikate erforderliche kryptografische Stärke definieren.

Das <access>-Element enthält ein sslFlags-Attribut, das Sie auf einen der folgenden Werte festlegen können:

  • Keine. Diese Standardeinstellung deaktiviert SSL für die Site oder Anwendung.
  • Ssl. Die Site oder Anwendung erfordert SSL.
  • SslNegotiateCert. Die Site oder Anwendung akzeptiert Clientzertifikate für die Authentifizierung.
  • SslRequireCert. Für die Site oder Anwendung sind Clientzertifikate für die Authentifizierung erforderlich.
  • Ssl128. Die Site oder Anwendung erfordert eine 128-Bit-SSL-Zertifikatverschlüsselung.

Sie können das Zugriffselement verwenden, um eine Site, eine Anwendung oder ein virtuelles Verzeichnis zu konfigurieren, um Clientzertifikate zu benötigen. Legen Sie dazu eine HTTPS-Bindung für Ihre Site oder Anwendung fest und fordern Sie dann Zertifikate von einer Zertifizierungsstelle an und empfangen Sie sie. Die Zertifikate können Internetserverzertifikate, Domänenserverzertifikate oder selbstsignierte Serverzertifikate sein. Internetserverzertifikate erfordern eine Zertifizierungsstelle, die Ihren bzw. Ihre Server nach dem Anfordern ein Zertifikat ausstellt. Ein Domänenserverzertifikat wird von einem Zertifizierungsstellencomputer ausgestellt, der auf der Domäne Ihres Unternehmens ausgeführt wird, und kann Ihnen dabei helfen, den Zugriff auf interne Ressourcen nur für Mitarbeiter zu steuern, die das Zertifikat installiert haben. Sie können ein selbstsigniertes Zertifikat verwenden, um Probleme mit Drittanbieterzertifikaten zu beheben, Internetinformationsdienste (IIS) 7 remote zu verwalten, einen sicheren privaten Kanal zwischen dem Server und einer ausgewählten Benutzergruppe zu erstellen oder Anwendungsfeatures zu testen, die auf SSL basieren.

Kompatibilität

Version Hinweise
IIS 10.0 Das <access>-Element wurde in IIS 10.0 nicht geändert.
IIS 8.5 Das <access>-Element wurde in IIS 8.5 nicht geändert.
IIS 8.0 Das <access>-Element wurde in IIS 8.0 nicht geändert.
IIS 7.5 Das <access>-Element wurde in IIS 7.5 nicht geändert.
IIS 7.0 Das <access>-Element wurde in IIS 7.0 eingeführt.
IIS 6.0 Das <access>-Element ersetzt die IIS 6.0 Metabasiseigenschaften SSLAlwaysNegoClientCert und AccessSSLFlags.

Setup

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

Gewusst wie

Anfordern von Secure Sockets Layer

  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-Manager, dann auf Tools und 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 Verwaltung und 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. Wechseln Sie im Bereich Verbindungen zu der Site, Anwendung oder zu dem Verzeichnis, für die Sie SSL-Anforderungen konfigurieren möchten. SSL kann nicht auf Serverebene konfiguriert werden.

  3. Doppelklicken Sie im Bereich Start auf SSL-Einstellungen.
    Screenshot of the Home pane with the S S L Settings icon being highlighted.

  4. Klicken Sie im Bereich SSL-Einstellungen auf SSL anfordern.

  5. Klicken Sie im Bereich Aktionen auf Übernehmen.

Konfiguration

Sie können das <access>-Element auf Serverebene in der Datei ApplicationHost.config oder auf Site-, Anwendungs- oder Verzeichnisebene in der entsprechenden Web.config-Datei konfigurieren.

Attribute

Attribut Beschreibung
sslFlags Die zulässigen Werte für das sslFlags-Attribut sind im Folgenden aufgeführt. Der Standardwert ist None.
Wert Beschreibung
None Deaktiviert SSL
Ssl Erfordern von SSL.
SslNegotiateCert Clientzertifikate für die Authentifizierung akzeptieren.
SslRequireCert Clients-Zertifikate für die Authentifizierung erfordern.
SslMapCert Authentifizierung durch Clientzertifikatszuordnung aktivieren.
Ssl128 128-Bit-SSL erfordern.

Untergeordnete Elemente

Keine.

Konfigurationsbeispiel

Im folgenden Konfigurationsbeispiel, wenn es in der Datei ApplicationHost.config enthalten ist, ist eine SSL-Verbindung zwischen einer Website mit dem Namen Contoso und allen Clientbrowsern erforderlich.

<location path="Contoso">
   <system.webServer>
      <security>
         <access sslFlags="ssl">
      </security>
   </system.webServer>
</location>

Beispielcode

In den folgenden Beispielen machen SSL erforderlich, um auf eine Website mit dem Namen Contoso zuzugreifen.

AppCmd.exe

appcmd.exe set config "Contoso" -section:system.webServer/security/access /sslFlags:"Ssl" /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 accessSection = config.GetSection("system.webServer/security/access", "Contoso");
         accessSection["sslFlags"] = @"Ssl";
         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 accessSection As ConfigurationSection = config.GetSection("system.webServer/security/access", "Contoso")
      accessSection("sslFlags") = "Ssl"
      serverManager.CommitChanges()
   End Sub
End Module

JavaScript

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

var accessSection = adminManager.GetAdminSection("system.webServer/security/access", "MACHINE/WEBROOT/APPHOST/Contoso");
accessSection.Properties.Item("sslFlags").Value = "Ssl";

adminManager.CommitChanges();

VBScript

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

Set accessSection = adminManager.GetAdminSection("system.webServer/security/access", "MACHINE/WEBROOT/APPHOST/Contoso")
accessSection.Properties.Item("sslFlags").Value = "Ssl"

adminManager.CommitChanges()