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.