<identity>-Element
Steuert die Anwendungsidentität der Webanwendung. Dieses Element kann auf jeder Ebene deklariert werden (Computer-, Site-, Anwendungs-, Unterverzeichnis- oder Seitenebene).
<configuration>
<system.web>
<identity>
<identityimpersonate="true|false" userName="domain\username" password="password"/>
Erforderliche Attribute
Attribut | Option | Beschreibung |
---|---|---|
impersonate | Gibt an, ob für jede Anforderung Identitätswechsel des Clients verwendet werden. | |
true | Gibt an, dass der Clientidentitätswechsel verwendet wird. | |
false | Gibt an, dass der Clientidentitätswechsel nicht verwendet wird. |
Optionale Attribute
Attribut | Beschreibung |
---|---|
userName | Gibt den Benutzernamen an, der zu verwenden ist, wenn impersonate auf true festgelegt ist.
userName und password werden als Klartext in der Konfigurationsdatei gespeichert. Obwohl IIS Konfigurationsdateien nicht als Antwort auf eine User-Agent-Anforderung überträgt, können Konfigurationsdateien auf andere Weise gelesen werden. Beispielsweise hat ein authentifizierter Benutzer mit den richtigen Anmeldeinformationen für die Domäne, in der sich der Server befindet, Zugriff auf solche Dateien. Aus Gründen der Sicherheit unterstützt der Identitätsabschnitt die Speicherung von verschlüsselten userName-Attributen und password-Attributen in der Registrierung. Die Anmeldeinformationen müssen im REG_BINARY-Format vorliegen und mit den Verschlüsselungsfunktionen der Datensicherungs-API (Data Protection API, DPAPI) von Windows 2000 und Windows XP verschlüsselt werden. Weitere Informationen finden Sie in den Abschnitten "Hinweise" und "Beispiel" weiter unten. |
password | Gibt das Kennwort an, das zu verwenden ist, wenn impersonate auf true festgelegt ist. Informationen zum Speichern von verschlüsselten Workerprozess-Anmeldeinformationen in der Registrierung finden Sie in der Beschreibung des Attributs userName. |
Hinweise
Speichern von Benutzername und Kennwort in der Registrierung
Um den Benutzernamen und das Kennwort zu verschlüsseln und in der Registrierung zu speichern, legen Sie die Attribute userName und password folgendermaßen fest.
userName="registry:HKLM\Software\AspNetProcess,Name"
password="registry:HKLM\Software\AspNetProcess,Pwd"
Der Bereich der Zeichenfolge zwischen dem Schlüsselwort registry und dem Komma gibt den Namen des Registrierungsschlüssels an, der von ASP.NET geöffnet wird. Der Abschnitt hinter dem Komma enthält die Bezeichnung eines einzelnen Zeichenfolgenwerts, aus dem ASP.NET die Anmeldeinformationen entnimmt. Das Komma ist obligatorisch, und die Anmeldeinformationen müssen in der HKLM-Struktur gespeichert werden. Wenn das Konfigurationsformat unzulässig ist, startet ASP.NET den Workerprozess nicht und folgt dem aktuellen Codepfad für Fehler bei der Kontoerstellung.
Die Anmeldeinformationen müssen im REG_BINARY-Format vorliegen und die Daten enthalten, die durch einen Aufruf der Windows-API-Funktion CryptProtectData ausgegeben werden. Sie können die verschlüsselten Anmeldeinformationen mit der ASP.NET-Konsolenanwendung Set Registry (Aspnet_setreg.exe) erzeugen und in der Registrierung speichern. Diese Anwendung verwendet CryptProtectData, um die Verschlüsselung auszuführen. Sie können Aspnet_setreg.exe zusammen mit dem Visual C++-Quellcode und der Dokumentation von der Website www.asp.net downloaden. Suchen Sie dazu in dieser Website nach "aspnet_setreg".
Konfigurieren Sie den Zugriff auf den Schlüssel mit den verschlüsselten Anmeldeinformationen so, dass nur Administratoren und SYSTEM der Zugriff ermöglicht wird. Da der Schlüssel von dem ASP.NET-Prozess gelesen wird, der als SYSTEM ausgeführt wird, müssen Sie die folgenden Berechtigungen festlegen:
Administrators:F
SYSTEM:F
CREATOR OWNER:F
ProcessAccount:R
Zwei Verteidigungsstrategien zum Schutz der Daten stehen also zur Verfügung:
- Aufgrund der ACL-Berechtigungen ist der Zugriff auf die Daten nur für Administratoren möglich.
- Angreifer müssen Code auf dem Server ausführen (CryptUnprotectData), um die Anmeldeinformationen für das Konto wiederherzustellen.
Beispiel
Im folgenden Beispiel wird der Clientidentitätswechsel auf true festgelegt.
<configuration>
<system.web>
<identity impersonate="true"/>
</system.web>
</configuration>
Im folgenden Beispiel wird festgelegt, dass der verschlüsselte Benutzername und das verschlüsselte Kennwort in der Registrierung unter dem benutzerdefinierten Schlüssel AspNetIdentity
gespeichert sind.
<configuration>
<system.web>
<identity>
userName="registry:HKLM\Software\AspNetIdentity,Name"
password="registry:HKLM\Software\AspNetIdentity,Pwd"
</identity>
</system.web>
</configuration>
Anforderungen
Enthalten in: <system.web>
Webplattform: IIS 5.0, IIS 5.1, IIS 6.0
Konfigurationsdatei: Machine.config, Web.config
Konfigurationsabschnittshandler: System.Web.Configuration.IdentityConfigHandler