estrutura RPC_SECURITY_QOS_V2_A (rpcdce.h)
A estrutura RPC_SECURITY_QOS_V2 define as configurações de qualidade de serviço de segurança da versão 2 em um identificador de associação. Consulte Comentários para obter disponibilidade de versão em edições do Windows.
Sintaxe
typedef struct _RPC_SECURITY_QOS_V2_A {
unsigned long Version;
unsigned long Capabilities;
unsigned long IdentityTracking;
unsigned long ImpersonationType;
unsigned long AdditionalSecurityInfoType;
union {
RPC_HTTP_TRANSPORT_CREDENTIALS_A *HttpCredentials;
} u;
} RPC_SECURITY_QOS_V2_A, *PRPC_SECURITY_QOS_V2_A;
Membros
Version
Versão da estrutura RPC_SECURITY_QOS que está sendo usada. Este tópico documenta a versão 2 da estrutura RPC_SECURITY_QOS . Confira RPC_SECURITY_QOS, RPC_SECURITY_QOS_V3, RPC_SECURITY_QOS_V4 e RPC_SECURITY_QOS_V5 para outras versões.
Capabilities
Serviços de segurança que estão sendo fornecidos ao aplicativo. Os recursos são um conjunto de sinalizadores que podem ser combinados usando o operador OR bit a bit.
Valor | Significado |
---|---|
|
Usado quando nenhum recurso específico do provedor é necessário. |
|
Especificar esse sinalizador faz com que o tempo de execução do RPC solicite autenticação mútua do provedor de segurança. Alguns provedores de segurança não dão suporte à autenticação mútua. Se o provedor de segurança não der suporte à autenticação mútua ou a identidade do servidor não puder ser estabelecida, uma chamada de procedimento remoto para esse servidor falhará com o erro RPC_S_SEC_PKG_ERROR.
Nota O RPC depende do SSP para indicar quais opções de segurança foram negociadas com êxito; O RPC, por sua vez, falha em qualquer chamada para a qual o SSP relata que não pôde negociar uma opção. No entanto, alguns provedores de segurança são conhecidos por relatar a negociação bem-sucedida de uma opção mesmo quando a opção não foi negociada com êxito. Por exemplo, o NTLM relatará uma negociação bem-sucedida de autenticação mútua por motivos de compatibilidade com versões anteriores, mesmo que não dê suporte à autenticação mútua. Verifique com o SSP específico que está sendo usado para determinar seu comportamento em relação às opções de segurança.
|
|
Não implementado atualmente. |
|
Aceita as credenciais do cliente mesmo que a AC (autoridade de certificação) não esteja na lista de ACs confiáveis do servidor. Essa constante é usada apenas pelo SSP do SCHANNEL. |
|
Quando especificado, esse sinalizador direciona o runtime RPC no cliente para ignorar um erro para estabelecer um contexto de segurança que dê suporte à delegação. Normalmente, se o cliente solicitar delegação e o sistema de segurança não puder estabelecer um contexto de segurança que dê suporte à delegação, o erro RPC_S_SEC_PKG_ERROR será retornado; quando esse sinalizador é especificado, nenhum erro é retornado.
Nota Sem suporte no Windows XP e em edições de cliente anteriores, sem suporte no Windows 2000 e em edições anteriores do servidor.
|
|
Quando especificado, esse sinalizador especifica ao RPC que o servidor é local para o computador que está fazendo a chamada RPC. Nessa situação, o RPC instrui o mapeador de ponto de extremidade a selecionar apenas os pontos de extremidade registrados pela entidade de segurança especificada nos membros ServerPrincName ou Sid (esses membros estão disponíveis apenas em RPC_SECURITY_QOS_V3, RPC_SECURITY_QOS_V4 e RPC_SECURITY_QOS_V5 ). Confira Comentários para obter mais informações.
Nota Sem suporte no Windows XP e em edições de cliente anteriores, sem suporte no Windows 2000 e em edições anteriores do servidor.
|
IdentityTracking
Define o modo de acompanhamento de contexto. Deve ser definido como um dos valores mostrados na tabela a seguir.
Valor | Significado |
---|---|
|
O contexto de segurança é criado apenas uma vez e nunca é revisado durante toda a comunicação, mesmo que o lado do cliente o altere. Esse será o comportamento padrão se RPC_SECURITY_QOS_V2 não for especificado. |
|
O contexto é revisado sempre que o ModifiedId no token do cliente é alterado. Todos os protocolos usam ModifiedId (consulte observação).
Windows 2000: Todos os protocolos remotos (todos os protocolos diferentes de ncalrpc) usam a AuthenticationID, também conhecida como LogonId, para controlar as alterações na identidade do cliente. O protocolo ncalrpc usa ModifiedId. |
ImpersonationType
Nível no qual o processo do servidor pode representar o cliente.
Valor | Significado |
---|---|
|
Usa o nível de representação padrão. |
|
O cliente não fornece informações de identificação para o servidor. O servidor não pode representar o cliente nem identificar o cliente. Muitos servidores rejeitam chamadas com esse tipo de representação. |
|
O servidor pode obter a identidade do cliente e representar o cliente para executar verificações de ACL (lista de Controle de Acesso), mas não pode representar o cliente. Consulte Níveis de representação para obter mais informações.
Nota Alguns provedores de segurança podem tratar esse tipo de representação como equivalente a RPC_C_IMP_LEVEL_IMPERSONATE.
|
|
O servidor pode representar o contexto de segurança do cliente em seu sistema local, mas não em sistemas remotos. |
|
O servidor pode representar o contexto de segurança do cliente ao atuar em nome do cliente. O servidor também pode fazer chamadas de saída para outros servidores enquanto atua em nome do cliente. O servidor pode usar o contexto de segurança do cliente em outros computadores para acessar recursos locais e remotos como o cliente. |
AdditionalSecurityInfoType
Especifica o tipo de credenciais adicionais presentes na união u . Há suporte para as seguintes constantes:
Constantes com suporte | Significado |
---|---|
|
Nenhuma credencial adicional é passada na união u . |
|
O membro HttpCredentials da união u aponta para uma estrutura RPC_HTTP_TRANSPORT_CREDENTIALS . Esse valor só pode ser usado quando a sequência de protocolo é ncacn_http. Qualquer outra sequência de protocolo retorna RPC_S_INVALID_ARG. |
u
u.HttpCredentials
Conjunto adicional de credenciais a serem passadas para o RPC, na forma de uma estrutura RPC_HTTP_TRANSPORT_CREDENTIALS . Usado quando o membro AdditionalSecurityInfoType é definido como RPC_C_AUTHN_INFO_TYPE_HTTP.
Comentários
A listagem a seguir define a disponibilidade de versões do QOS em vários sistemas operacionais Windows:
- Versão 1: Windows 2000 e posterior.
- Versão 2: Windows XP com Service Pack 1 (SP1) e posterior.
- Versão 3: Windows Server 2003 e posterior.
- Versão 4: Windows Vista e posterior.
- Versão 5: Windows 8 e posterior.
As funções de segurança do lado do cliente RpcBindingInqAuthInfoEx e RpcBindingSetAuthInfo usam a estrutura RPC_SECURITY_QOS para consultar ou definir a qualidade de segurança do serviço para um identificador de associação.
O RPC dá suporte à dica de RPC_C_QOS_CAPABILITIES_LOCAL_MA_HINT (sem suporte no Windows XP e em edições de cliente anteriores, sem suporte no Windows 2000 e em edições anteriores do servidor). Essa dica é usada somente quando pontos de extremidade dinâmicos e autenticação mútua são usados. Além disso, não há suporte para as sequências de protocolo ncadg_ . Se esse sinalizador for usado para uma sequência de protocolo ncadg_ ou sem usar a autenticação mútua, RPC_S_INVALID_ARG será retornado da chamada de função RpcBindingSetAuthInfoEx . Esse sinalizador foi projetado para evitar um ataque de negação de serviço. O uso desse sinalizador força o RPC Runtime a solicitar ao mapeador de ponto de extremidade somente pontos de extremidade registrados pela entidade de segurança especificada nos membros ServerPrincName ou Sid . Isso impede que um invasor no computador local tente enganar seu cliente RPC para se conectar a um ponto de extremidade falso que ele registrou no mapeador do ponto de extremidade. Observe que, como o ataque é apenas local (como de um computador de servidor de terminal com muitos usuários), o sinalizador também funciona apenas para chamadas RPC feitas localmente.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows XP com SP1 [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server 2003 [somente aplicativos da área de trabalho] |
Cabeçalho | rpcdce.h (inclua Rpc.h) |