Freigeben über


Clientidentitätswechsel

Identitätswechsel ist in einer verteilten Computerumgebung nützlich, wenn Server Clientanforderungen an andere Serverprozesse oder an das Betriebssystem übergeben müssen. In diesem Fall stellt ein Server den Sicherheitskontext des Clients imitiert. Andere Serverprozesse können dann die Anforderung so verarbeiten, als ob der ursprüngliche Client sie vorgenommen hat.

Server imitiert einen aufrufenden Client, wenn nachfolgende Aufrufe im Auftrag des Clients

Beispielsweise sendet ein Client eine Anforderung an Server A. Wenn Server A Server B abfragen muss, um die Anforderung abzuschließen, stellt Server A den Clientsicherheitskontext imitiert und die Anforderung im Auftrag des Clients an Server B vor. Server B verwendet den Sicherheitskontext des ursprünglichen Clients anstelle der Sicherheitsidentität für Server A, um zu bestimmen, ob die Aufgabe abgeschlossen werden soll.

Der Server ruft RpcImpersonateClient- auf, um die Sicherheit für den Serverthread mit dem Clientsicherheitskontext zu überschreiben. Nach Abschluss der Aufgabe ruft der Server RpcRevertToSelf oder RpcRevertToSelfEx- auf, um den für den Serverthread definierten Sicherheitskontext wiederherzustellen.

Bei der Bindung kann der Client Qualitäts-of-Service-Informationen zur Sicherheit angeben, die angibt, wie der Server die Identität des Clients imitieren kann. Mit einer der Einstellungen kann der Client beispielsweise angeben, dass der Server den Identitätswechsel nicht zulassen darf. Weitere Informationen finden Sie unter Quality of Service.

Die Funktion zum Aufrufen anderer Server beim Identitätswechsel des ursprünglichen Clients wird Delegierungaufgerufen. Wenn die Delegierung verwendet wird, kann ein Server, der die Identität eines Clients anwendet, einen anderen Server aufrufen und Netzwerkanrufe mit den Anmeldeinformationen des Clients tätigen. Aus Sicht des zweiten Servers sind Anforderungen, die vom ersten Server stammen, von Anforderungen, die vom Client stammen, nicht voneinander zu unterscheiden. Nicht alle Sicherheitsanbieter unterstützen die Delegierung. Microsoft liefert nur einen Sicherheitsanbieter, der delegierung unterstützt: Kerberos.

Die Delegierung kann aufgrund der Berechtigungen, die der Client während eines Remoteprozeduraufrufs erhält, eine gefährliche Funktion sein. Aus diesem Grund lässt Kerberos Anrufe mit der Identitätswechselstufe der Delegierung nur zu, wenn die gegenseitige Authentifizierung angefordert wird. Domänenadministratoren können die Computer einschränken, auf die Anrufe mit Identitätswechselebene der Delegierung erfolgen, um zu verhindern, dass nicht ahnungslose Clients Anrufe an Server tätigen, die ihre Anmeldeinformationen missbrauchen könnten.

Eine Ausnahme der Delegierungsregel ist vorhanden: Aufrufe mit ncalrpc. Wenn diese Aufrufe getätigt werden, erhält der Server Delegierungsrechte, auch wenn eine Identitätswechselebene angegeben ist. Das heißt, ein Server kann andere Server im Auftrag des Clients aufrufen. Dies funktioniert nur für einen Remoteanruf. Wenn z. B. Client A lokale Server-LB mit ncalrpc lokalen Server-LB aufruft, kann die Identität des Remoteservers RB annehmen und aufrufen. RB kann im Auftrag von Client A handeln, aber nur auf dem Remotecomputer, auf dem RB ausgeführt wird. Es kann keinen weiteren Netzwerkaufruf an Remotecomputer C tätigen, es sei denn, LB hat eine Identitätswechselstufe des Delegaten angegeben, wenn er RB aufgerufen hat.

Anmerkung

Der Begriff Identitätswechsel stellt zwei überlappende Bedeutungen dar. Die erste Bedeutung des Identitätswechsels ist der allgemeine Prozess des Handelns im Auftrag eines Kunden. Die zweite Bedeutung ist die spezifische Identitätswechselebene, die als Identitätswechsel bezeichnet wird. Der Kontext des Texts verdeutlicht in der Regel die Bedeutung.