Compartilhar via


estrutura RPC_SECURITY_QOS_V4_A (rpcdce.h)

A estrutura RPC_SECURITY_QOS_V4 define as configurações de qualidade de serviço de segurança da versão 4 em um identificador de associação. Consulte Comentários sobre a disponibilidade de versão em edições do Windows.

Sintaxe

typedef struct _RPC_SECURITY_QOS_V4_A {
  unsigned long Version;
  unsigned long Capabilities;
  unsigned long IdentityTracking;
  unsigned long ImpersonationType;
  unsigned long AdditionalSecurityInfoType;
  union {
    RPC_HTTP_TRANSPORT_CREDENTIALS_A *HttpCredentials;
  } u;
  void          *Sid;
  unsigned int  EffectiveOnly;
} RPC_SECURITY_QOS_V4_A, *PRPC_SECURITY_QOS_V4_A;

Membros

Version

Versão da estrutura RPC_SECURITY_QOS que está sendo usada. Este tópico documenta a versão 4 da estrutura RPC_SECURITY_QOS . Confira RPC_SECURITY_QOS, RPC_SECURITY_QOS_V2, RPC_SECURITY_QOS_V3 e RPC_SECURITY_QOS_V5 para outras versões.

Capabilities

Serviços de segurança que estão sendo fornecidos ao aplicativo. Funcionalidades é um conjunto de sinalizadores que podem ser combinados usando o operador OR bit a bit.

Valor Significado
RPC_C_QOS_CAPABILITIES_DEFAULT
Não são necessárias funcionalidades específicas do provedor.
RPC_C_QOS_CAPABILITIES_MUTUAL_AUTH
O tempo de execução RPC solicita 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; Por sua vez, uma chamada RPC falhará se o SSP relatar 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, embora 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.
 
RPC_C_QOS_CAPABILITIES_MAKE_FULLSIC
Não implementado atualmente.
RPC_C_QOS_CAPABILITIES_ANY_AUTHORITY
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.
RPC_C_QOS_CAPABILITIES_IGNORE_DELEGATE_FAILURE
O runtime do RPC no cliente ignora 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 de servidor anteriores.
 
RPC_C_QOS_CAPABILITIES_LOCAL_MA_HINT
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 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 de servidor anteriores.
 

IdentityTracking

O modo de acompanhamento de contexto como um dos valores a seguir.

Valor Significado
RPC_C_QOS_IDENTITY_STATIC
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_V4 não for especificado.
RPC_C_QOS_IDENTITY_DYNAMIC
O contexto de segurança é revisado sempre que a ModifiedId no token do cliente é alterada. 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

O nível no qual o processo do servidor pode representar o cliente.

Valor Significado
RPC_C_IMP_LEVEL_DEFAULT
Usa o nível de representação padrão.
RPC_C_IMP_LEVEL_ANONYMOUS
O cliente não fornece informações de identificação ao servidor. O servidor não pode representar o cliente ou identificar o cliente. Muitos servidores rejeitam chamadas com esse tipo de representação.
RPC_C_IMP_LEVEL_IDENTIFY
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.
 
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.
RPC_C_IMP_LEVEL_DELEGATE
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

O tipo de credenciais adicionais presentes na união u . Há suporte para as seguintes constantes:

Constantes com suporte Significado
0
Nenhuma credencial adicional é passada na união u .
RPC_C_AUTHN_INFO_TYPE_HTTP
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.

Sid

Ponteiro para um SID (identificador de segurança). O SID é uma alternativa ao membro ServerPrincName e apenas um pode ser especificado. O membro sid não poderá ser definido como não NULL se o provedor de segurança for o SSP do SCHANNEL. Algumas sequências de protocolo usam Sid internamente para segurança e outras usam um ServerPrincName. Por exemplo, ncalrpc usa um Sid internamente e, se o chamador souber o SID e o ServerPrincName, uma chamada usando ncalrpc poderá ser concluída muito mais rapidamente em alguns casos se o SID for passado. Por outro lado, as sequências de protocolo ncacn_ e ncadg_ usam um ServerPrincName internamente e, portanto, podem executar chamadas mais rapidamente quando fornecido o ServerPrincName.

EffectiveOnly

Se definido, somente os privilégios habilitados serão vistos pelo servidor.

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 edições do Windows também dão suporte a versões de nível inferior. Por exemplo, o Windows Server 2003 dá suporte à versão 3, mas também dá suporte às versões 1 e 2.

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 serviço de segurança de 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.

Nota Alguns provedores de segurança, como Kerberos, dão suporte ao tipo de representação de delegação. Em edições do Windows que dão suporte ao tipo de representação de delegação, se o cliente tiver solicitado a delegação, mas o provedor de segurança não puder for for fornecido, a chamada falhará com PRC_S_SEC_PKG_ERROR a menos que o sinalizador RPC_C_QOS_CAPABILITIES_IGNORE_DELEGATE_FAILURE seja especificado.
 

Requisitos

   
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)

Confira também

RPC_BINDING_HANDLE_SECURITY_V1

RPC_HTTP_TRANSPORT_CREDENTIALS

RPC_SECURITY_QOS

RPC_SECURITY_QOS_V2

RPC_SECURITY_QOS_V3

RPC_SECURITY_QOS_V5

RpcBindingInqAuthInfoEx

RpcBindingSetAuthInfoEx