Controlar la autenticación de cliente
El mejor método para autenticar a un cliente es instalar una función de devolución de llamada de seguridad mediante la función RpcServerRegisterIf2 o RpcServerRegisterIfEx ; acepta una función de devolución de llamada de seguridad como argumento. Cuando se llama a la función de devolución de llamada de seguridad, realice las comprobaciones necesarias. Se pueden comprobar los atributos de la conexión, la identidad del autor de la llamada o ambos. Para comprobar los atributos de una conexión, llame a la función RpcServerInqCallAttributes o RpcBindingInqAuthClient . Esto permite el filtrado de clientes que no están autenticados, clientes que usan un proveedor de seguridad específico o clientes que no usan protección suficientemente segura (como la privacidad).
Para permitir el acceso a un subconjunto de los usuarios autenticados, use RpcGetAuthorizationContextForClient. Esta función devuelve un contexto de cliente Authz que se puede usar para realizar comprobaciones de acceso muy sofisticadas. Por ejemplo, este método se podría usar para permitir el acceso solo a los vicepresidentes de una organización durante el horario comercial normal y al CEO durante cualquier hora mediante servicios de Active Directory para asignar un nombre de usuario a su título. El usuario se puede suplantar y su nombre obtenido. Una vez que se conoce su identidad, se pueden realizar comprobaciones deseadas.