Anwendungsidentität
Eintrag zuletzt aktualisiert am: 15.05.2006
Unter welchem Benutzerkontext agiert die Webanwendung auf dem Serversystem? Wird die Identität des autorisierten Benutzers oder eine dedizierte Identität verwendet?
Eine Webanwendung benötigt Rechte auf dem
Webserver, um dort agieren zu können. Zumindest benötigt sie die Rechte, die zu der Webanwendung gehörenden Dateien aus dem
Dateisystem lesen zu dürfen. Darüber hinaus gibt es aber auch Webanwendungen, die auf Systembausteine wie die
Registrierungsdatenbank, Datenbanken oder das
Active Directory zugreifen.
Die Einstellung der Benutzeridentität einer Webanwendung ist eine wichtige Frage. Es gibt grundsätzlich zwei alternative Möglichkeiten:
- Die Webanwendung verwendet den Benutzerkontext des authentifizierten Benutzers als Identität der Webanwendung.
- Die Webanwendung verwendet einen dedizierten Benutzerkontext, der für alle Nutzer der Webanwendung gleich ist.
Für
ASP.NET existieren zwei Sicherheitsarchitekturen hinsichtlich des Zugriffs aus der Webanwendung heraus auf Ressourcen wie Datenbanken,
Dateisystem,
Registrierungsdatenbank und
Active Directory.
Beim Impersonation/Delegation-Modell (auch: Identity-Flow-Modell) werden die Benutzerkonten, die zur
Authentifizierung in der Webanwendung eingesetzt werden, bis zur Systemressource durchgereicht. Alle beteiligten
Prozesse und
Threads übernehmen also den Sicherheitskontext des Aufrufers. Im Trusted-Subsystem-Modell hingegen werden Benutzerkonten auf andere Benutzerkonten oder Rollen abgebildet. Die Anzahl der verschiedenen Benutzeridentitäten verjüngt sich zu den Ressourcen hin.
Microsoft empfiehlt in [
MSDN08] das Trusted-Subsystem-Modell, weil das
Connection Pooling von
ADO.NET besser ausgenutzt werden kann und die Datenbank und andere Ressourcen einfacher administrierbar sind.