estrutura RPC_BINDING_HANDLE_SECURITY_V1_A (rpcdce.h)
A estrutura RPC_BINDING_HANDLE_SECURITY_V1 contém as opções básicas de segurança com as quais criar um identificador de associação RPC.
Sintaxe
typedef struct _RPC_BINDING_HANDLE_SECURITY_V1_A {
unsigned long Version;
unsigned char *ServerPrincName;
unsigned long AuthnLevel;
unsigned long AuthnSvc;
SEC_WINNT_AUTH_IDENTITY_A *AuthIdentity;
RPC_SECURITY_QOS *SecurityQos;
} RPC_BINDING_HANDLE_SECURITY_V1_A, *PRPC_BINDING_HANDLE_SECURITY_V1_A;
Membros
Version
A versão dessa estrutura. Para RPC_BINDING_HANDLE_SECURITY_V1 isso deve ser definido como 1.
ServerPrincName
Ponteiro para uma cadeia de caracteres que contém o nome da entidade de segurança do servidor referenciado pelo identificador de associação. O conteúdo do nome e sua sintaxe são definidos pelo serviço de autenticação em uso.
AuthnLevel
Nível de autenticação a ser executado em chamadas de procedimento remoto feitas usando esse identificador de associação. Para obter uma lista dos níveis de autenticação com suporte para RPC, consulte Constantes no nível de autenticação.
Se AuthnSvc estiver definido como RPC_C_AUTHN_NONE, esse membro também deverá ser definido como RPC_C_AUTHN_NONE.
AuthnSvc
Serviço de autenticação a ser usado ao associar.
Especifique RPC_C_AUTHN_NONE para desativar a autenticação para chamadas de procedimento remoto feitas usando o identificador de associação.
Se RPC_C_AUTHN_DEFAULT for especificado, a biblioteca de tempo de execução RPC usará o serviço de autenticação RPC_C_AUTHN_WINNT para chamadas de procedimento remoto feitas usando o identificador de associação.
Se AuthnLevel estiver definido como RPC_C_AUTHN_NONE, esse membro também deverá ser definido como RPC_C_AUTHN_NONE.
AuthIdentity
SEC_WINNT_AUTH_IDENTITY estrutura que contém as credenciais de autenticação e autorização do cliente apropriadas para o serviço de autenticação e autorização selecionado.
SecurityQos
RPC_SECURITY_QOS estrutura que contém as configurações de qualidade de serviço de segurança para o identificador de associação.
Comentários
Se essa estrutura não for passada para RpcBindingCreate , ou seja, se o parâmetro Security de RpcBindingCreate estiver definido como NULL , os seguintes comportamentos de segurança padrão serão assumidos:
- Para a sequência de protocolo ncalrpc (RPC local), o RPC usará a segurança em nível de transporte. Isso significa que o RPC usará os mecanismos de segurança oferecidos pelo kernel do Windows para fornecer segurança, e o RPC não autenticará o servidor, pois ele se conecta usando a identidade de thread atual. Nesse caso, o rastreamento de identidade é estático, o tipo de representação é definido como "Representação" e o nível de autenticação é definido como "Privacidade".
- Para a sequência de protocolo ncacn_np, o RPC também usará a segurança em nível de transporte. Se a chamada for remota, o RPC usará os mecanismos de segurança fornecidos pelo redirecionador do sistema de arquivos do Windows e não haverá autenticação mútua. Nesse caso, a identidade é a identidade do thread atual, o estado de rastreamento de identidade é estático, o tipo de representação é definido como "Representação" e o nível de autenticação é determinado pelas políticas do computador remoto.
Se a chamada for local, o RPC usará os mecanismos de segurança fornecidos pelo NPFS (Sistema de Arquivos de Pipe Nomeado) e também não haverá autenticação mútua. Nesse caso, a identidade é a identidade do thread atual ou qualquer identidade estabelecida por meio do comando "net use" para o servidor. O estado de acompanhamento de identidade é dinâmico, o tipo de representação é definido como "Representação" e o nível de autenticação é definido como "Privacidade".
- Para as sequências de protocolo ncacn_ip_tcp, ncacn_ip_udp e ncacn_http, nenhuma segurança é usada quando Security é definido como NULL. O servidor não executará a representação e todos os dados serão enviados como texto claro. Para fornecer proteção máxima para dados, o aplicativo deve sempre fornecer dados de segurança.
A tabela a seguir resume as configurações de segurança padrão para as diferentes sequências de protocolo se o parâmetro Security de RpcBindingCreate estiver definido como NULL.
Configurações de segurança padrão | ncalrpc | ncacn_np local | ncacn_np remoto | ncacn_ip_tcp, ncacn_ip_udp e ncacn_http |
---|---|---|---|---|
Mecanismo de Segurança | Windows Kernel | NPFS | Redirecionador do sistema de arquivos | Nenhum |
Nível de autenticação | Privacidade | Privacidade | Dependente da política de servidor | Nenhum |
Autenticação Mútua? | No | No | No | No |
Tipo de representação | Impersonate | Impersonate | Impersonate | N/D |
Tipo de rastreamento de identidade | Estático | Dinâmico | Estático | N/D |
Somente efetivo? | Yes | No | N/D | N/D |
Identidade de Chamada | Thread atual | Thread atual | Configurações atuais de thread ou "uso de rede" | N/D |
Se você criar um identificador de associação rápida chamando a API RpcBindingCreate , o rastreamento de identidade padrão para ncalrpc na ausência de configurações de segurança específicas será estático.
Você deve estar ciente das diferenças nessas duas APIs se estiver alternando entre elas em seu aplicativo.
Depois que o identificador de associação é criado, as APIs RpcBindingSetAuthInfo e RpcBindingSetAuthInfoEx podem ser usadas para alterar as configurações do conjunto de identificadores de associação com essa estrutura.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows Vista [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server 2008 [somente aplicativos da área de trabalho] |
Cabeçalho | rpcdce.h (inclua Rpc.h) |