RPC委派

‎服务器调用‎‎RpcImpersonateClient‎‎以使用客户端安全上下文覆盖服务器线程的安全性。任务完成后,服务器将调用‎‎RpcRevertToSelf‎‎或‎‎RpcRevertToSelfEx‎‎来还原为服务器线程定义的安全上下文。‎

‎绑定时,客户端可以指定有关安全性的服务质量信息QOS,这些信息指定服务器如何模拟客户端。例如,其中一个设置允许客户端指定不允许服务器模拟它。有关详细信息,请参‎‎阅服务质量‎‎。‎

‎在模拟原始客户端时调用其他服务器的功能称为‎‎委派‎‎。使用委派时,模拟客户端的服务器可以调用另一台服务器,并且可以使用客户端的凭据进行网络调用。也就是说,从第二台服务器的角度来看,来自第一台服务器的请求与来自客户端的请求无法区分。并非所有安全提供程序都支持委派。微软只提供一个支持委派的安全提供商:Kerberos。‎

‎委派可能是一种危险的功能,因为客户端在远程过程调用期间授予服务器特权。这就是为什么 Kerberos 仅在请求相互身份验证时才允许具有模拟委派级别的调用。域管理员可以限制使用委派模拟级别进行呼叫的计算机,以防止毫无戒心的客户端调用可能滥用其凭据的服务器。

‎存在委派规则的一个例外: 使用‎‎ncalrpc 的‎‎调用 。进行这些调用时,服务器将获得委派权限,即使指定了模拟的模拟级别也是如此。也就是说,服务器可以代表客户端调用其他服务器。这仅适用于一个远程呼叫。例如,如果客户端 A 使用‎‎ncalrpc‎‎调用本地服务器 LB,则本地服务器 LB 可以模拟并调用远程服务器 RB。RB 将能够代表客户端 A 执行操作,但只能在运行 RB 的远程计算机上执行操作。它不能对远程计算机 C 进行另一次网络调用,除非 LB 在调用 RB 时指定了代理的模拟级别。‎

 
原文地址:https://www.cnblogs.com/jjkv3/p/15726383.html