Clientidentitätswechsel

Die 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 wird von einem Server der Sicherheitskontext des Clients imitiert. Andere Serverprozesse können dann die Anforderung behandeln, wie wenn der ursprüngliche Client es vorgenommen hat.

server impersonates a calling client when making subsequent calls on the client's behalf

Beispielsweise stellt ein Client eine Anforderung an Server A vor. Wenn Server A den Server B abfragen muss, um die Anforderung abzuschließen, wird der Clientsicherheitskontext von Server A imItiert und die Anforderung im Auftrag des Clients an Server B vorgenommen. Server B verwendet den Sicherheitskontext des ursprünglichen Clients anstelle der Sicherheitsidentität für Server A, um zu ermitteln, 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.

Beim Binden kann der Client Qualitäts-of-Service-Informationen über Sicherheit angeben, die angibt, wie der Server den Client imitieren kann. Eine der Einstellungen ermöglicht beispielsweise, dass der Client angeben kann, dass der Server ihn nicht imitieren darf. Weitere Informationen finden Sie unter Quality of Service.

Die Funktion zum Aufrufen anderer Server während des Identitätswechsels des ursprünglichen Clients wird als Delegierung bezeichnet. Wenn die Delegierung verwendet wird, kann ein Server, der einen anderen Server aufruft, einen anderen Server aufrufen und Netzwerkanrufe mit den Anmeldeinformationen des Clients vornehmen. Das heißt, aus Der Perspektive des zweiten Servers sind Anforderungen, die aus dem ersten Server stammen, von Anforderungen, die vom Client stammen, nicht mehr zu unterscheiden. Nicht alle Sicherheitsanbieter unterstützen die Delegierung. Microsoft liefert nur einen Sicherheitsanbieter, der die Delegation unterstützt: Kerberos.

Die Delegierung kann aufgrund der Berechtigungen, die der Client während eines Remoteprozeduraufrufs erhält, eine gefährliche Funktion sein. Deshalb ermöglicht Kerberos Aufrufe mit der Identitätsstufe der Delegierung nur, wenn die gegenseitige Authentifizierung angefordert wird. Domänenadministratoren können die Computer einschränken, auf denen Aufrufe mit Delegierungswechselebene vorgenommen werden, um zu verhindern, dass nicht ahnungslose Clients Anrufe an Server vornehmen, die ihre Anmeldeinformationen missbrauchen könnten.

Eine Ausnahme für die Delegierungsregel besteht: Aufrufe mit ncalrpc. Wenn diese Anrufe ausgeführt werden, ruft der Server Delegierungsrechte ab, auch wenn eine Identitätsstufe des Identitätswechsels angegeben wird. Das heißt, ein Server kann andere Server im Auftrag des Clients aufrufen. Dies funktioniert nur für einen Remoteanruf. Wenn beispielsweise client A lokale Server LB mit ncalrpc local server LB aufruft, kann lb identitäts- und anruft Remoteserver RB. RB kann im Auftrag von Client A handeln, aber nur auf dem Remotecomputer, auf dem RB ausgeführt wird. Es kann keine andere Netzwerkanrufe an Remotecomputer C vornehmen, es sei denn, LB hat eine Identitätsstufe des Stellvertretungs angegeben, wenn er RB aufgerufen hat.

Hinweis

Der Ausdruckswechsel stellt zwei überlappende Bedeutungen dar. Die erste Bedeutung der Identitätswechsel ist der allgemeine Prozess, im Auftrag eines Clients zu handeln. Die zweite Bedeutung ist die spezifische Identitätswechselebene namens Imitierung. Der Kontext des Texts erläutert im Allgemeinen die Bedeutung.