Modul 6 – Extranetsicherheit
Auf dieser Seite
Modulübersicht
Zielsetzung
Betrifft
Verwendung dieses Moduls
Vorbereitung
Bereitstellen eines Webdienstes
Bereitstellen einer Webanwendung
Zusammenfassung
Modulübersicht
Ein Extranet ist ein logisches Netzwerk, das es zwei oder mehr Organisationen ermöglicht, Ressourcen und Anwendungen über (sogar öffentliche) physikalische Netzwerke hinweg freizugeben. Durch die Beteiligung mehrerer Organisationen gestaltet sich die Sicherheitsarchitektur einer Extranetanwendung schwieriger, da Anwendungen in die verschiedenen Systeme und Standards aller Organisationen integriert werden müssen. Da die Anwendung freigegebene oder öffentliche Netzwerke nutzt, muss zwischen vertrauenswürdigen und nicht vertrauenswürdigen Benutzern unterschieden werden. Außerdem muss sichergestellt sein, dass eine vertrauenswürdige Organisation keinen Einblick in die geheimen Informationen einer anderen Organisation hat. Wenn die Anwendung vertrauliche oder kommerziell wertvolle Informationen verarbeitet, sind sichere Kommunikationskanäle unerlässlich.
In diesem Modul werden die Ansätze zur Behebung von Problemen hinsichtlich Authentifizierung, Autorisierung und sicherer Kommunikation für extranetbasierte Webanwendungen erläutert. Der Schwerpunkt liegt hierbei auf den Anforderungen häufig verwendeter Architekturen von verteilten Anwendungen.
Zielsetzung
Themenbereiche:
Sichern Ihrer .NET-Extranetanwendung
Erläutern der Sicherheitsprobleme und empfohlener Lösungen im Zusammenhang mit der Implementierung einer extranetbasierten Anwendung als:
ASP.NET-Webdienst
ASP.NET-Webanwendung
Festlegen des optimalen Ansatzes zur Implementierung von Authentifizierung, Autorisierung und sicherer Kommunikation in einer extranetbasierten verteilten Webanwendung.
Betrifft
Die Informationen in diesem Modul gelten für folgende Produkte und Technologien:
Windows XP oder Windows 2000 Server (mit Service Pack 3) und höhere Betriebssysteme
Microsoft Internetinformationsdienste (IIS) 5.0 und höher
Microsoft Active Directory
.NET Framework Version 1.0 (mit Service Pack 2) und höhere Versionen
SQL Server 2000 (mit Service Pack 2) und höhere Versionen
Verwendung dieses Moduls
Empfehlungen für eine erfolgreiche Arbeit mit diesem Modul:
Sie müssen über Erfahrungen hinsichtlich der Entwicklung mit ASP.NET, SQL Server und IIS sowie deren Konfiguration verfügen.
Sie müssen über Erfahrung mit der Konfiguration von Windows-Sicherheit und Active Directory verfügen.
Sie müssen über Erfahrung mit der Konfiguration von Enterprise Services-(COM+-)Anwendungen verfügen.
Lesen Sie Modul 1, "Einführung". Hier wird die Bedeutung von Authentifizierung, Autorisierung und sicherer Kommunikation für verteilte Webanwendungen erläutert.
Lesen Sie Modul 2, "Sicherheitsmodell für ASP.NET-Anwendungen". Hier finden Sie eine Übersicht der Architektur und Technologien, die bei der Erstellung verteilter ASP.NET-Webanwendungen zum Einsatz kommen. Außerdem wird hervorgehoben, wo Authentifizierung, Autorisierung und sichere Kommunikation in diese Architektur integriert werden können.
Verwenden Sie das aktuelle Modul in Kombination mit den folgenden Modulen:
"Vorgehensweise: Erstellen eines benutzerdefinierten Kontos zur Ausführung von ASP.NET".
"Vorgehensweise: Verwenden von IPSec zum Sichern der Kommunikation zwischen zwei Servern".
"Vorgehensweise: Aufrufen eines Webdienstes mit Clientzertifikaten von ASP.NET".
"Vorgehensweise: Verwenden der Formularauthentifizierung mit der Active Directory".
Vorbereitung
Bei Extranetanwendungen handelt es sich um Anwendungen, für die Ressourcen via Internet über zwei unterschiedliche Unternehmen oder Abteilungen hinweg freigegeben wurden. Eine der größten Herausforderungen bei Extranetanwendungen ist die Ausarbeitung eines Authentifizierungsansatzes, dem beide Parteien zustimmen. Ihre Möglichkeiten sind in diesem Fall eventuell beschränkt, da die Zusammenarbeit mit bestehenden Authentifizierungsmechanismen erforderlich ist.
Extranetanwendungen weisen in der Regel einige gemeinsame Merkmale auf:
Im Vergleich zu Internetszenarios ist eine genauere Steuerung von Benutzerkonten möglich.
Hinsichtlich der Benutzerkonten ist möglicherweise ein höherer Vertrauensgrad gegeben als bei Anwendungen mit Internetbenutzern.
Zu den in diesem Modul erläuterten Szenarios zählen folgende:
Bereitstellen eines Webdienstes
Bereitstellen einer Webanwendung
Hinweis: In den in diesem Modul beschriebenen Szenarios wird das Kennwort des standardmäßigen ASPNET-Kontos geändert, über das ASP.NET-Anwendungen ausgeführt werden, um doppelte Konten zu Authentifizierungszwecken auf Remotecomputern erstellen zu können. Hierfür ist eine Aktualisierung des <processModel>-Elements von Machine.config erforderlich. <processModel>-Anmeldeinformationen sollten in machine.config nicht als unverschlüsselter Text gespeichert werden. Verwenden Sie stattdessen das Dienstprogramm aspnet_setreg.exe, um verschlüsselte Anmeldeinformationen in der Registrierung zu speichern. Weitere Informationen finden Sie in Modul 8, "ASP.NET-Sicherheit", sowie in Artikel Q329290, "HOWTO: Use the ASP.NET Utility to Encrypt Credentials and Session State Connection Strings" (englischsprachig) in der Microsoft Knowledge Base.
Bereitstellen eines Webdienstes
Stellen Sie sich ein Austauschszenario mit Business-to-Business-Partnern vor, in dem ein Verleger seine Dienste über das Internet zur Verfügung stellt und verkauft. Sie stellt ausgewählten Partnerfirmen über einen Webdienst Informationen zur Verfügung. Die Benutzer innerhalb der einzelnen Partnerfirmen greifen über eine intranetbasierte interne Webanwendung auf den Webdienst zu. Dieses Szenario ist in Abbildung 6.1 dargestellt.
Abbildung 6.1
Austausch zwischen Business-to-Business-Partnern über den Extranet-Webdienst
Merkmale
Dieses Szenario weist folgende Merkmale auf:
Der Verleger stellt einen Webdienst über das Internet bereit.
Die Anmeldeinformationen (X.509-Clientzertifikate) der Partnerfirma (nicht eines einzelnen Benutzers) werden durch den Herausgeber geprüft, um den Zugriff auf Ressourcen zu autorisieren. Dem Herausgeber müssen die einzelnen Anmeldungen des Benutzers in der Partnerfirma nicht bekannt sein.
Clientzertifikate werden Konten des Active Directory®-Verzeichnisdienstes innerhalb des Verlagsunternehmens zugeordnet.
Das Extranet enthält eine Active Directory-Version, die von der (internen) Active Directory-Firmenversion unabhängig ist. Diese Active Directory-Extranetversion befindet sich in einer separaten Gesamtstruktur, die eine eigene Vertrauensgrenze aufweist.
Die Webdienstautorisierung basiert auf dem zugeordneten Active Directory-Konto. Sie können separate Autorisierungsentscheidungen nutzen, basierend auf der Identität der Partnerfirma (die durch separate Active Directory-Konten pro Firma dargestellt werden).
Der Zugriff auf die Datenbank erfolgt über eine einzelne vertrauenswürdige Verbindung, die der ASP.NET-Webdienst-Prozessidentität entspricht.
Die vom Webdienst abgerufenen Daten sind vertraulich und müssen während der Übertragung (intern innerhalb des Verlagsunternehmens und extern bei der Übermittlung über das Internet) gesichert werden.
Sichern des Szenarios
In diesem Szenario ruft die interne Webanwendung der jeweiligen Partnerfirma Daten über den Webdienst vom Verlagsunternehmen ab und stellt diese dann den jeweiligen Benutzern zur Verfügung. Der Verleger benötigt zur Authentifizierung von Partnerfirmen einen sicheren Mechanismus, obwohl die Identität einzelner Benutzer in Partnerfirmen nicht von Bedeutung ist.
Da die Daten, die zwischen den beiden Firmen über das Internet ausgetauscht werden, vertraulich sind, müssen sie bei der Übertragung durch SSL (Secure Socket Layer) gesichert werden.
Eine Firewall, die nur eingehende Verbindungen von den IP-Adressen von Extranetpartnerfirmen zulässt, wird eingesetzt, um zu verhindern, dass andere unbefugte Internetbenutzer Netzwerkverbindungen zum Webdienstserver öffnen.
Tabelle 6.1: Sicherheitsmaßnahmen
Kategorie |
Detail |
---|---|
Authentifizierung |
|
Autorisierung |
|
Sichere Kommunikation |
|
Das Ergebnis
Aus Abbildung 6.2 geht die empfohlene Sicherheitskonfiguration für dieses Szenario hervor.
Abbildung 6.2
Die empfohlene Sicherheitskonfiguration für das Austauschszenario mit Business-to-Business-Partnern des Webdienstes
Schritte zur Sicherheitskonfiguration
Als Vorbereitung empfiehlt es sich, folgende Punkte zu bedenken:
Erstellen benutzerdefinierter ASP.NET-Konten (siehe "Vorgehensweise: Erstellen eines benutzerdefinierten Kontos zum Ausführung von ASP.NET" in diesem Handbuch)
Erstellen eines Datenbankkontos mit minimalen Rechten (siehe Modul 12, "Datenzugriffssicherheit")
Konfigurieren von SSL auf einem Webserver (siehe "Vorgehensweise: Einrichten von SSL auf einem Webserver" in diesem Handbuch)
Konfigurieren von IPSec (siehe "Vorgehensweise: Verwenden von IPSec zum Sichern der Kommunikation zwischen zwei Servern" in diesem Handbuch)
Konfigurieren von IPSec durch Firewalls (siehe Artikel Q233256, "How to Enable IPSec Traffic Through a Firewall" (englischsprachig) in der Microsoft® Knowledge Base).
Aufrufen eines Webdienstes unter Verwendung von SSL (siehe "Vorgehensweise: Aufrufen eines Webdienstes unter Verwendung von SSL" in diesem Handbuch). Diese Technik ist innerhalb der Partnerfirma erforderlich.
Konfigurieren der Partneranwendung
In diesem Modul wird nicht auf Details der Partneranwendung und ihrer Sicherheitskonfiguration eingegangen. Folgende Punkte müssen jedoch berücksichtigt werden, um die Kommunikation zwischen der Partneranwendung und dem Webdienst zu ermöglichen:
Die Webanwendung der Partnerfirma kann einen Authentifizierungsmechanismus wählen, mit dem die internen Benutzer authentifiziert und autorisiert werden. Diese Benutzer werden nicht zur weiteren Authentifizierung an den Webdienst übergeben.
Die Webanwendung der Partnerfirma führt im Namen ihrer Benutzer Aufrufe des Webdienstes durch. Die Benutzer sind nicht in der Lage, den Webdienst direkt aufzurufen.
Die Webanwendung der Partnerfirma verwendet ein Clientzertifikat, um sich beim Webdienst zu identifizieren.
Wenn es sich bei der Partneranwendung um eine ASP.NET-Webanwendung handelt, muss eine "Out of Process"-Zwischenkomponente (eine Enterprise Services-Anwendung bzw. ein Windows-Dienst) verwendet werden, um das Zertifikat zu laden und es an den Webdienst weiterzuleiten.
Weitere Informationen dazu, warum dies erforderlich ist und mit welchen Schritten dies erreicht werden kann, finden Sie unter "Vorgehensweise: Aufrufen eines Webdienstes mit Clientzertifikaten von ASP.NET" in diesem Handbuch.
Konfigurieren des Extranet-Webservers
IIS konfigurieren | |
Schritt | Weitere Informationen |
---|---|
Anonymen Zugriff für das virtuelle Stammverzeichnis des Webdienstes deaktivieren | Verwenden Sie das IIS-MMC-Snap-In, um mit IIS-Authentifizierungseinstellungen zu arbeiten. Wählen Sie das virtuelle Verzeichnis Ihrer Anwendung aus, klicken Sie mit der rechten Maustaste und wählen Sie dann Eigenschaften. Siehe "Vorgehensweise: Einrichten von SSL auf einem Webserver" in diesem Handbuch. |
Active Directory konfigurieren (Extranet) | |
Schritt | Weitere Informationen |
---|---|
Active Directory-Konten zur Darstellung von Partnerfirmen einrichten | Es wird eine separate Active Directory-Extranetversion verwendet. Diese befindet sich in ihrer eigenen Gesamtstruktur und ist vollkommen unabhängig von der Active Directory-Firmenversion. |
Zertifikatszuordnung konfigurieren | Siehe "Step-by-Step Guide to Mapping Certificates to User Accounts" (englischsprachig) im Microsoft TechNet. |
ASP.NET konfigurieren (Webdienst) | ||
Schritt | Weitere Informationen | |
---|---|---|
ASP.NET-Webdienst für die Windows-Authentifizierung konfigurieren | Web.config im virtuellen Stammverzeichnis des Webdienstes konfigurieren <authentication mode="Windows" /> | |
Kennwort des ASPNET-Kontos (das zur Ausführung von ASP.NET verwendet wird) auf ein bekanntes sicheres Kennwort zurücksetzen | Hierdurch ist die Erstellung eines doppelten lokalen Kontos (mit demselben Benutzernamen und Kennwort) auf dem Datenbankserver möglich. Dieser Schritt ist erforderlich, damit das ASPNET-Konto auf Netzwerk-Authentifizierungsanforderungen vom Datenbankserver antworten kann, wenn über die Windows-Authentifizierung eine Verbindung hergestellt wird. Als Alternative kann in diesem Fall ein Domänenkonto mit minimalen Rechten verwendet werden (wenn die Windows-Authentifizierung durch die Firewall zulässig ist). Weitere Informationen finden Sie unter "Prozessidentität für ASP.NET" in Modul 8, "ASP.NET-Sicherheit." Machine.config bearbeiten in %windir%\Microsoft.NET\Framework\v1.0.3705\CONFIG Attribute für benutzerdefinierten Kontobenutzernamen und Kennwort für das <processModel>-Element festlegen Standard <!-- userName="Computer" password="AutoGenerate" --> Wird zu <!-- userName="registry:HKLM\SOFTWARE\YourSecureApp\ processModel\ASPNET_SETREG,userName" password="registry:HKLM\SOFTWARE\YourSecureApp\ processModel\ASPNET_SETREG,password" --> Beachten Sie, dass das Dienstprogramm aspnet_setreg.exe zur Speicherung eines verschlüsselten Kennworts in der Registrierung verwendet wurde. |
|
Konfigurieren von SQL Server
Schritt |
Weitere Informationen |
---|---|
Windows-Konto auf dem Microsoft SQL Server™-Computer erstellen, das dem ASP.NET-Prozesskonto des Webdienstes entspricht (Standard: ASPNET) |
Der Benutzername und das Kennwort müssen Ihrem ASP.NET-Prozesskonto entsprechen. Dem Konto folgende Rechte zuweisen: |
SQL Server für Windows-Authentifizierung konfigurieren |
|
SQL Server-Anmeldung für das ASPNET-Konto erstellen |
Hiermit wird der Zugriff auf SQL Server ermöglicht. |
Neuen Datenbankbenutzer erstellen und den Anmeldenamen dem Datenbankbenutzer zuordnen |
Hiermit wird der Zugriff auf die angegebene Datenbank ermöglicht. |
Neue benutzerdefinierte Datenbankrolle in der Datenbank erstellen und den Datenbankbenutzer in die Rolle einfügen |
|
Datenbankberechtigungen für die Datenbankrolle einrichten |
Minimale Rechte gewähren |
Konfigurieren sicherer Kommunikationsvorgänge
Schritt |
Weitere Informationen |
---|---|
Website auf dem Webserver für SSL konfigurieren |
Siehe "Vorgehensweise: Einrichten von SSL auf einem Webserver" in diesem Handbuch. |
IPSec zwischen Webserver und Datenbankserver konfigurieren |
Siehe "Vorgehensweise: Verwenden von IPSec zum Sichern der Kommunikation zwischen zwei Servern" in diesem Handbuch. |
Analyse
ASP.NET wird auf dem Webserver als lokales Konto mit minimalen Rechten ausgeführt (standardmäßiges ASPNET-Konto).
Von den ASP.NET-Webanwendungen in den Partnerfirmen wird die integrierte Windows-Authentifizierung verwendet, um zu ermitteln, wer auf den Webdienst zugreifen kann.
Von der ASP.NET-Webanwendung in der Partnerfirma wird eine Enterprise Services-Zwischenanwendung verwendet, um Clientzertifikate abzurufen und an den Webdienst gerichtete Aufrufe vorzunehmen.
Das Verlagsunternehmen verwendet den im Zertifikat enthaltenen Namen der Partnerorganisation, um die Zertifikatszuordnung innerhalb von IIS durchzuführen.
Der Webdienst verwendet das zugeordnete Active Directory-Konto für die Autorisierung. Hierbei kommen PrincipalPermission-Forderungen und Rollenüberprüfungen in .NET zum Einsatz.
Durch die Windows-Authentifizierung bei SQL Server werden die Anmeldeinformationen nicht auf dem Webserver gespeichert sowie nicht über das interne Netzwerk an den SQL Server-Computer übermittelt. Wenn Sie mit der SQL-Authentifizierung arbeiten, muss die Verbindungszeichenfolge (bestehend aus Benutzername und Kennwort) sowohl in der Anwendung als auch bei der Übermittlung über das Netzwerk gesichert werden. Verwenden Sie DPAPI oder eine der in Modul 12, "Datenzugriffssicherheit", erläuterten Alternativstrategien für die sichere Speicherung, um Verbindungszeichenfolgen zu speichern und IPSec zum Schützen der Verbindungszeichenfolge (und vertraulicher Anwendungsdaten) bei der Übertragung zwischen Webdienst und Datenbank einzusetzen.
SSL zwischen Partnerfirmen und dem Webdienst schützt die über das Internet übermittelten Daten.
IPSec zwischen dem Webdienst und der Datenbank schützt die Daten bei der Übertragung an die bzw. von der Datenbank im Firmennetzwerk. In einigen Szenarios, in denen der Partner und der Verleger über ein privates Netzwerk kommunizieren, ist IPSec neben dem Sichern der Kommunikation möglicherweise auch für die Computerauthentifizierung zu verwenden.
Nachteile
Ein dupliziertes Windows-Konto auf dem Datenbankserver (ein Konto, das dem lokalen ASP.NET-Prozesskonto in IIS entspricht) führt zu höherem Verwaltungsaufwand. Kennwörter müssen regelmäßig manuell aktualisiert und synchronisiert werden.
Da die rollenbasierte Sicherheit in .NET auf der Windows-Gruppenmitgliedschaft basiert, setzt diese Lösung voraus, dass Windows-Gruppen korrekt in derjenigen Granularitätsebene eingerichtet werden, die den Kategorien von Benutzern (mit denselben Sicherheitsberechtigungen) entspricht, die auf die Anwendung zugreifen. In diesem Szenario müssen Active Directory-Konten Mitglied einer Partnergruppe sein.
Fragen & Antworten
- Der Datenbank ist nicht bekannt, wer der ursprüngliche Aufrufer ist. Wie kann ich eine Überwachungsliste erstellen?
Überwachen Sie die Aktivität des Endbenutzers (Partnerfirma) im Webdienst. Übermitteln Sie die Identität der Partnerfirma auf Anwendungsebene an die Datenbank. Verwenden Sie hierzu gespeicherte Prozedurparameter.
Verwandte Szenarios
Das Verlagsunternehmen stellt möglicherweise nicht vertrauliche Daten zur Verfügung, beispielsweise Softcopys von Zeitschriften, Zeitungen usw. In diesem Szenario kann der Verleger jedem Partner einen eindeutigen Benutzernamen und ein eindeutiges Kennwort zur Verfügung stellen, mit denen man eine Verbindung herstellen und die Daten vom Webdienst abrufen kann.
In diesem verwandten Szenario wird die Website des Verlegers zur Authentifizierung von Benutzern über die Standardauthentifizierung konfiguriert. Die Partneranwendung verwendet den Benutzernamen und das Kennwort, um die Anmeldeinformationen für den Webdienst-Proxy explizit festzulegen.
Weitere Informationen
Weitere Informationen zur Konfiguration von Webdienst-Proxys finden Sie in Modul 10, "Webdienstesicherheit".
Bereitstellen einer Webanwendung
In diesem Szenario gewährt das Verlagsunternehmen seinen Partnern exklusiven Zugriff auf ihre Anwendungen über das Internet und macht eine Partnerportalanwendung verfügbar, um Dienstleistungen anzubieten, Partnern aktuelle Produktinformationen zur Verfügung zu stellen, die Onlinezusammenarbeit zu ermöglichen usw. Dieses Szenario ist in Abbildung 6.3 dargestellt.
Abbildung 6.3
Szenario mit Partnerportal
Szenariomerkmale
Dieses Szenario weist folgende Merkmale auf:
In der Webanwendung des Partners können Anmeldeinformationen entweder über eine Formularanmeldeseite oder über ein Anmeldedialogfeld eingegeben werden. Hierbei kommt in IIS die Standardauthentifizierung zum Einsatz.
Die Anmeldeinformationen werden anhand einer separaten Active Directory-Version innerhalb des Extranet-Perimeternetzwerks (auch als Demilitarized Zones (DMZ), also "demilitarisierte Zonen" oder überwachte Subnetze bezeichnet) geprüft. Diese Active Directory-Extranetversion befindet sich in einer separaten Gesamtstruktur, die eine eigene Vertrauensgrenze aufweist.
Der Zugriff auf die Datenbank erfolgt über eine einzelne vertrauenswürdige Verbindung, die der ASP.NET-Webanwendungs-Prozessidentität entspricht.
Die Autorisierung von Webanwendungen basiert entweder auf einem GenericPrincipal-Objekt (das im Rahmen der Prozesses für die Formularauthentifizierung erstellt wurde) oder auf einem WindowsPrincipal-Objekt (wenn die Standardauthentifizierung zum Einsatz kommt).
Die von der Webanwendung abgerufenen Daten sind vertraulich und müssen während der Übertragung (intern innerhalb des Verlagsunternehmens und extern bei der Übermittlung über das Internet) gesichert werden.
Sichern des Szenarios
Da die Daten, die zwischen den beiden Firmen über das Internet ausgetauscht werden, vertraulich sind, müssen sie bei der Übertragung durch SSL (Secure Socket Layer) gesichert werden.
Eine Firewall, die nur eingehende Verbindungen von den IP-Adressen von Extranetpartnerfirmen zulässt, verhindert, dass andere unbefugte Internetbenutzer Netzwerkverbindungen zum Webserver öffnen.
Tabelle 6.2: Sicherheitsmaßnahmen
Kategorie |
Detail |
---|---|
Authentifizierung |
|
Autorisierung |
|
Sichere Kommunikation |
|
Das Ergebnis
Aus Abbildung 6.4 geht die empfohlene Sicherheitskonfiguration für dieses Szenario hervor.
Abbildung 6.4
Empfohlene Sicherheitskonfiguration für das Szenario mit Partnerportal
Konfigurieren des Extranet-Webservers
IIS konfigurieren | |
Schritt | Weitere Informationen |
---|---|
Aktivieren Sie für die Formularauthentifizierung den anonymen Zugriff für das virtuelle Stammverzeichnis der Webanwendung |
|
Active Directory konfigurieren (Extranet) | |
Schritt | Weitere Informationen |
---|---|
Active Directory-Konten zur Darstellung von Partnerbenutzern einrichten | Es wird eine separate Active Directory-Extranetversion verwendet. Diese befindet sich in ihrer eigenen Gesamtstruktur und ist vollkommen unabhängig von der Active Directory-Firmenversion. |
ASP.NET konfigurieren | |
Schritt | Weitere Informationen |
---|---|
ASP.NET-Webanwendung zur Verwendung der Windows-Authentifizierung konfigurieren (für IIS-Standardauthentifizierung) | Web.config im virtuellen Stammverzeichnis des Webdienstes konfigurieren <authentication mode="Windows" />
<authentication mode="Formulare" /> |
Kennwort des ASPNET-Kontos (das zur Ausführung von ASP.NET verwendet wird) auf ein bekanntes sicheres Kennwort zurücksetzen | Hierdurch können Sie ein doppeltes lokales Konto (mit demselben Benutzernamen und Kennwort) auf dem Datenbankserver erstellen. Dieser Schritt ist erforderlich, damit das ASPNET-Konto auf Netzwerk-Authentifizierungsanforderungen vom Datenbankserver antworten kann, wenn über die Windows-Authentifizierung eine Verbindung hergestellt wird. Als Alternative kann in diesem Fall ein Domänenkonto mit minimalen Rechten verwendet werden (wenn die Windows-Authentifizierung durch die Firewall zulässig ist). Weitere Informationen finden Sie unter "Prozessidentität für ASP.NET" in Modul 8, "ASP.NET-Sicherheit". Machine.config bearbeiten, in %windir%\Microsoft.NET\Framework\v1.0.3705\CONFIG Attribute für benutzerdefinierten Kontobenutzernamen und Kennwort für das <processModel>-Element festlegen Standard <!-- userName="Computer" password="AutoGenerate" --> Wird zu <!-- userName="registry:HKLM\SOFTWARE\YourSecureApp Beachten Sie, dass das Dienstprogramm aspnet_setreg.exe zur Speicherung eines verschlüsselten Kennworts in der Registrierung verwendet wurde. |
Konfigurieren von SQL Server
Schritt |
Weitere Informationen |
---|---|
Windows-Konto auf dem Microsoft SQL Server™-Computer erstellen, das dem ASP.NET-Prozesskonto des Webdienstes entspricht (Standard: ASPNET) |
Der Benutzername und das Kennwort müssen Ihrem ASP.NET-Prozesskonto entsprechen. Dem Konto folgende Rechte zuweisen: |
SQL Server für Windows-Authentifizierung konfigurieren |
|
SQL Server-Anmeldung für das ASPNET-Konto erstellen |
Hiermit wird der Zugriff auf SQL Server ermöglicht. |
Neuen Datenbankbenutzer erstellen und den Anmeldenamen dem Datenbankbenutzer zuordnen |
Hiermit wird der Zugriff auf die angegebene Datenbank ermöglicht. |
Neue benutzerdefinierte Datenbankrolle in der Datenbank erstellen und den Datenbankbenutzer in die Rolle einfügen |
|
Datenbankberechtigungen für die Datenbankrolle einrichten |
Minimale Rechte gewähren |
Konfigurieren sicherer Kommunikationsvorgänge
Schritt |
Weitere Informationen |
---|---|
Website auf dem Webserver für SSL konfigurieren |
Siehe "Vorgehensweise: Einrichten von SSL auf einem Webserver" in diesem Handbuch. |
IPSec zwischen Webserver und Datenbankserver konfigurieren |
Siehe "Vorgehensweise: Verwenden von IPSec zum Sichern der Kommunikation zwischen zwei Servern" in diesem Handbuch. |
Analyse
ASP.NET wird auf dem Webserver als lokales Konto mit minimalen Rechten ausgeführt (standardmäßiges ASPNET-Konto).
SSL wird zwischen Browser und Webanwendung verwendet, um die Anmeldeinformationen der Formular- bzw. Standardauthentifizierung zu schützen (die Übermittlung erfolgt in beiden Fällen in Klartext, obwohl bei der Standardauthentifizierung die Base64-Verschlüsselung zum Einsatz kommt). SSL dient außerdem zum Schutz der von der Webanwendung zurückgegebenen anwendungsspezifischen Daten.
Bei der Formularauthentifizierung wird SSL für sämtliche Seiten (nicht nur die Anmeldeseite) verwendet, um den Authentifizierungs-Cookie zu schützen, der im Anschluss an die erstmalige Authentifizierung bei allen nachfolgenden Webanforderungen übermittelt wird.
Wenn SSL nur auf der ersten Anmeldeseite zur Verschlüsselung der Anmeldeinformationen verwendet wird, die zu Authentifizierungszwecken übermittelt werden, sollte sichergestellt werden, dass das Formularauthentifizierungsticket (Bestandteil des Cookies) geschützt ist, da es bei allen nachfolgenden Webanforderungen zwischen Client und Server übermittelt wird. Um das Formularauthentifizierungsticket zu verschlüsseln, konfigurieren Sie das protection-Attribut des <Formulare>-Elements gemäß nachfolgender Darstellung und verwenden die Verschlüsseln -Methode der FormsAuthentication-Klasse, um das Ticket zu verschlüsseln.
<authentication mode="Formulare"> <forms name="MyAppFormsAuth" loginUrl="login.aspx" protection="Alle" timeout="20" path="/" > </forms> </authentication>
Über das protection="Alle"-Attribut wird festgelegt, dass beim Aufruf von FormsAuthentication.Encrypt durch die Anwendung das Ticket überprüft (Integritätsprüfung) und verschlüsselt werden soll. Rufen Sie diese Methode auf, wenn Sie das Authentifizierungsticket erstellen (normalerweise unter Verwendung des Ereignishandlers der Anmeldeschaltfläche der Anwendung).
string encryptedTicket = FormsAuthentication.Encrypt(authTicket);
Weitere Informationen zur Formularauthentifizierung und zur Ticketverschlüsselung finden Sie in Modul 8, "ASP.NET-Sicherheit".
Ebenso wird SSL bei der Standardauthentifizierung für sämtliche Seiten verwendet, da die Standardanmeldeinformationen bei allen Webseitenanforderungen übermittelt werden, nicht nur bei der ersten, bei der der Benutzer die Standardanmeldeinformationen angibt.
Für die Standardauthentifizierung erstellt ASP.NET automatisch ein WindowsPrincipal-Objekt, das für den authentifizierten Aufrufer steht, und verknüpft es mit der aktuellen Webanforderung (HttpContext.User), wo es durch die .NET-Autorisierung verwendet wird (einschließlich PrincipalPermission-Forderungen und .NET-Rollen).
Für die Formularauthentifizierung muss Code entwickelt werden, mit dem die angegebenen Anmeldeinformationen anhand Active Directory geprüft werden. Außerdem muss ein GenericPrincipal-Objekt erstellt werden, das den authentifizierten Benutzer darstellt.
Durch die Windows-Authentifizierung beim SQL Server werden die Anmeldeinformationen nicht auf dem Webserver gespeichert und nicht über das interne Netzwerk an den SQL Server-Computer übermittelt.
Durch IPSec zwischen dem Webdienst und der Datenbank werden die Daten bei der Übertragung an die bzw. von der Datenbank im Firmennetzwerk geschützt.
Nachteile
Die Verwendung eines duplizierten Windows-Kontos auf dem Datenbankserver (ein Konto, das dem lokalen ASP.NET-Prozesskonto in IIS entspricht) führt zu höherem Verwaltungsaufwand. Kennwörter müssen regelmäßig manuell aktualisiert und synchronisiert werden.
Bei der Standardauthentifizierung wird im Browser ein Popup-Dialogfeld eingeblendet. Um den Anmeldevorgang nahtloser zu gestalten, empfiehlt sich die Verwendung der Formularauthentifizierung.
Verwandte Szenarios
Keine Konnektivität zwischen Extranet und Firmennetzwerk
Um die Sicherheit zusätzlich zu erhöhen, kann die Extranetanwendung so eingerichtet werden, dass keine Konnektivität zurück zum Firmennetzwerk erforderlich ist. In diesem Szenario gilt Folgendes:
Eine separate SQL Server-Datenbank befindet sich im Extranet, die Replizierung von Daten erfolgt von der internen Datenbank in die Extranetdatenbank.
Router werden eingesetzt, um Verbindungen vom Extranet zum Firmennetzwerk zu unterbinden. Andere Verbindungen können über bestimmte hohe Ports hergestellt werden.
Verbindungen vom Firmennetzwerk zum Extranet sollten über einen dedizierten Server mit starken Überwachungs- und Protokollierungsfunktionen hergestellt werden. Bei diesem Server müssen sich Benutzer authentifizieren, bevor sie auf das Extranet zugreifen.
Weitere Informationen
Ziehen Sie folgende Microsoft TechNet-Artikel zurate:
- "Deploying SharePoint Portal Server in an Extranet Environment" (englischsprachig)
Weitere Informationen zur Verwendung der Formularauthentifizierung mit Active Directory finden Sie unter "Vorgehensweise: Verwenden der Formularauthentifizierung mit Active Directory" in diesem Handbuch.
Zusammenfassung
In diesem Kapitel wurde erläutert, wie zwei häufige Extranetanwendungsszenarios gesichert werden.
Intranet- und Internetanwendungsszenarios werden in Modul 5, "Intranetsicherheit", und Modul 7, "Internetsicherheit", erläutert.