2014-02-20 74 views
0

我正在使用RPC(遠程過程調用)進行本地進程通信。我已經使用ncalrpc協議,使用API​​ RpcServerUseProtseqEp,RpcServerRegisterIf,RPCServerListen和使用RpcStringBindingCompose,RpcBindingFromStringBinding的典型客戶端編寫了一個典型的服務器。目前爲止,客戶端和服務器都使用遠程方法進行通信。如何使用安全RPC?

現在我正在評估使此通信安全的選項。我需要主要關注3個方面,客戶端認證,授權和數據專用&的完整性。 RpcBindingSetAuthInfo允許我設置認證級別和授權服務以及一個SPN。 RPC_C_AUTHN_LEVEL_PKT_PRIVACY可用於驗證和加密數據。 1.但我不明白誰是真正的認證,以及如何?

  1. 我不明白如何使用RpcServerRegister在服務器端註冊的SecurityCallback幫助我檢查授權客戶端。

  2. 我沒有得到誰授權以及如何?我不確定在哪些情況下需要授權以及如何在RPC中實現授權。我的應用程序只在本地機器上通信。

有人請澄清我的疑問。

感謝,

回答

0

如果您的應用程序在本地運行,它的確定,無加密的RPC調用。 如果你想測試與加密RPC調用,使在服務器端 肯定

  1. 呼叫RpcServerRegisterAuthInfo(0,0,RPC_C_AUTHN_WINNT,0)。
  2. 呼叫RpcBindingSetAuthInfo(hRPCBind,0,RPC_C_AUTHN_LEVEL_PKT_PRIVACY,RPC_C_AUTHN_WINNT,0,0)上的客戶端,

窗口將處理的其餘部分,例如加密,傳輸。