Anwendungsbereiche für Identitätsdelegierung

Was ist Identitätsdelegierung?

Identitätsdelegierung ist ein Feature der Active Directory-Verbunddienste (Active Directory Federation Services, AD FS), mit dessen Hilfe von Administratoren angegebene Konten die Identität anderer Benutzer annehmen können. Das Konto, das die Identität des Benutzer annimmt, wird als Delegat bezeichnet. Diese Delegierungsmöglichkeit ist für viele verteilte Anwendungen entscheidend, bei denen mehrere Zugriffssteuerungsprüfungen nacheinander für jede Anwendung, Datenbank oder jeden Dienst in der Autorisierungskette für die ursprüngliche Anforderung durchgeführt werden müssen. In vielen realen Anwendungsbereichen muss eine „Front-End“-Webanwendung Daten von einem besser geschützten „Back-End“ abrufen, beispielsweise von einem Webdienst, der mit einer Microsoft SQL Server-Datenbank verbunden ist.

Eine vorhandene Website zur Teilebestellung könnte beispielsweise programmtechnisch so erweitert werden, dass Partnerorganisationen den eigenen Bestellverlauf und den Kontostatus einsehen können. Aus Sicherheitsgründen werden alle Finanzdaten der Partner in einer geschützten Datenbank auf einem dedizierten SQL (Structured Query Language)-Server gespeichert. In diesem Fall hat der Programmcode der Front-End-Anwendung keinerlei Wissen über die Finanzdaten der Partnerorganisation. Daher müssen die entsprechenden Daten von einem anderen Computer im Netzwerk abgerufen werden, der in diesem Fall den Webdienst für die Teiledatenbank (das Back-End) ausführt.

Damit dieser Datenabruf erfolgreich ist, muss für die Teiledatenbank eine Abfolge von Autorisierungs-„Handshakes“ zwischen der Webanwendung und dem Webdienst stattfinden, wie in der folgenden Abbildung gezeigt.

identity delegation

Da die ursprüngliche Anforderung an den Webserver selbst gerichtet war, der sich möglicherweise in einer ganz anderen Organisation befindet als der zugreifende Benutzer, entspricht das mit der Anforderung gesendete Sicherheitstoken nicht den Autorisierungskriterien, die für den Zugriff auf andere Computer als den Webserver erforderlich sind. Daher besteht die einzige Möglichkeit, die Anforderung des zugreifenden Benutzers zu erfüllen, in der Bereitstellung eines zwischengeschalteten Verbundservers innerhalb der Ressourcenpartnerorganisation, der ein neues Sicherheitstoken mit den erforderlichen Zugriffsrechten ausstellt.

Wie funktioniert die Identitätsdelegierung?

Webanwendungen mit Multi-Tier-Anwendungsarchitektur rufen oft Webdienste auf, um gemeinsam genutzte Daten und Funktionen abzurufen. Es ist wichtig für diese Webdienste, die Identität des ursprünglichen Benutzers zu kennen, damit der Dienst Autorisierungsentscheidungen treffen kann und eine Überwachung ermöglicht wird. Die Front-End-Anwendung meldet sich in diesem Fall bei dem Webdienst in Form eines Delegaten, der den Benutzer repräsentiert. AD FS ermöglicht dieses Szenario, indem Active Directory-Konten einer vertrauenden Seite gegenüber als Benutzer auftreten können. Die folgende Abbildung stellt ein solches Szenario mit Identitätsdelegierung dar.

Illustration that shows an identity delegation scenario.

  1. Frank versucht, in der Webanwendung einer anderen Organisation auf den Teilebestellverlauf zuzugreifen. Sein Clientcomputer fordert ein Token von AD FS für die Front-End-Webanwendung der Teilebestellung an und erhält dieses Token.

  2. Der Clientcomputer sendet eine Anforderung an die Web-Anwendung, einschließlich des in Schritt 1 erhaltenen Tokens als Beleg für die Identität des Clients.

  3. Die Webanwendung muss mit dem Webdienst kommunizieren, um die Transaktion mit dem Client abschließen zu können. Die Webanwendung kontaktiert AD FS, um ein Delegierungstoken für die Interaktion mit dem Webdienst zu erhalten. Delegierungstoken sind Sicherheitstoken, die auf einen Delegaten ausgestellt werden, damit dieser als Benutzer auftritt. AD FS gibt ein Delegierungstoken mit Ansprüchen bezüglich des Clients aus, das für den Webdienst vorgesehen ist.

  4. Die Webanwendung verwendet das in Schritt 3 von AD FS erhaltene Token zum Zugriff auf den Webdienst, der als Client auftritt. Durch Untersuchen des Delegierungstokens kann der Webdienst erkennen, dass die Webanwendung als Client auftritt. Der Webdienst führt seine Autorisierungsrichtlinie aus, protokolliert die Anforderung und gibt die ursprünglich von Frank angeforderten Teileverlaufsdaten an die Webanwendung und somit an Frank aus.

Für Delegaten lässt sich in AD FS individuell festlegen, für welche Webdienste Webanwendungen ein Delegierungstoken anfordern können. Der Clientcomputer muss nicht über ein Active Directory-Konto verfügen, damit dieser Vorgang möglich ist. Der Webdienst kann also problemlos die Identität des Delegaten ermitteln, der als der Benutzer fungiert. Somit können Webdienste unterschiedliches Verhalten zeigen, je nachdem, ob sie direkt mit dem Clientcomputer kommunizieren oder über einen Delegaten.

Konfigurieren von AD FS für die Identitätsdelegierung

Mithilfe des AD FS-Verwaltungs-Snap-Ins können Sie AD FS für die Identitätsdelegierung konfigurieren, wenn Sie den Datenabrufprozess vereinfachen möchten. Nach dieser Konfiguration kann AD FS neue Sicherheitstokens erzeugen, die den Autorisierungskontext enthalten, den der Back-End-Dienst möglicherweise benötigt, bevor er den Zugriff auf geschützte Daten freigibt.

AD FS schränkt nicht ein, welche Benutzeridentitäten angenommen werden können. Nach dem Konfigurieren von AD FS für die Identitätsdelegierung wird Folgendes durchgeführt:

  • Es wird festgelegt, an welche Server die Autorität delegiert werden kann, Token anzufordern, mit denen die Identität von Benutzern angenommen werden kann.

  • Der Identitätskontext für das delegierte Clientkonto und der Server, der als Delegat auftritt, werden festgelegt und separat behandelt.

Die Identitätsdelegierung kann durch das Hinzufügen von Autorisierungsregeln zu einer Vertrauensstellung der vertrauenden Seite im AD FS-Verwaltungs-Snap-In konfiguriert werden. Weitere Informationen hierzu finden Sie unter Checklist: Creating Claim Rules for a Relying Party Trust.

Konfigurieren der Front-End-Webanwendung für die Identitätsdelegierung

Entwicklern stehen verschiedene Optionen zur Verfügung, um die Front-End-Webanwendung oder den Front-End-Webdienst in geeigneter Weise zur Weiterleitung von Delegierungsanfragen an einen AD FS-Computer zu programmieren. Weitere Informationen zum Anpassen von Webanwendungen an die Identitätsdelegierung finden Sie im Windows Identity Foundation SDK.

Weitere Informationen

AD FS-Entwurfshandbuch in Windows Server 2012