2014-02-20 2 views
0

Я использую RPC (вызовы удаленной процедуры) для локальной связи процесса. Я использовал протокол ncalrpc, написал типичный сервер, используя API RpcServerUseProtseqEp, RpcServerRegisterIf, RPCServerListen и типичный клиент, использующий RpcStringBindingCompose, RpcBindingFromStringBinding. До сих пор все выглядит хорошо, клиент и сервер общаются с помощью удаленного метода.Как использовать Secure RPC?

Теперь я оцениваю вариант обеспечения безопасности этого сообщения. Мне нужно позаботиться о 3-х аспектах в основном: аутентификации клиента, авторизации и конфиденциальности данных &. RpcBindingSetAuthInfo позволяет мне установить уровень аутентификации и авторизацию и SPN. RPC_C_AUTHN_LEVEL_PKT_PRIVACY может использоваться для аутентификации и шифрования данных. 1. Но я не понял, кто действительно делает аутентификацию и как?

  1. Я не понимаю, как SecurityCallback, который может быть зарегистрирован на стороне сервера с помощью RpcServerRegister помогает мне проверить авторизованных клиентов.

  2. Я не получил, кто делает авторизацию и как? Я не уверен, в каких случаях требуется авторизация и как это достигается в RPC. Мое приложение связывается только с локальной машиной.

Кто-то, пожалуйста, уточните мои запросы.

Спасибо,

ответ

0

, если ваше приложение работает локально, это нормально, без вызова шифрования RPC. В случае, если вы хотите проверить RPC вызов с шифрованием, убедитесь, что

  1. вызова RpcServerRegisterAuthInfo (0, RPC_C_AUTHN_WINNT, 0, 0) на сервере стороне.
  2. вызов RpcBindingSetAuthInfo (hRPCBind, 0, RPC_C_AUTHN_LEVEL_PKT_PRIVACY, RPC_C_AUTHN_WINNT, 0, 0) на стороне клиента,

окна будут обрабатывать остальные, такие как шифрование, транспорт.

Смежные вопросы