Requisitos de contexto

Os requisitos de contexto são expressos como uma combinação de sinalizadores de bit passados para a função InitializeSecurityContext (Geral) ou AcceptSecurityContext (Geral ). Esses sinalizadores afetam o contexto de várias maneiras. Nem todos os sinalizadores se aplicam a todos os contextos. Alguns são válidos apenas para o servidor, outros apenas para o cliente.

O chamador usa o parâmetro fContextReq da chamada InitializeSecurityContext (Geral) ou AcceptSecurityContext (Geral) para especificar um conjunto de sinalizadores que indicam os recursos necessários. Quando a função retorna, o parâmetro pfContextAttr indica os atributos do contexto estabelecido. O chamador determina se os atributos de contexto finais são aceitáveis.

Os sinalizadores solicitados ou retornados por InitializeSecurityContext (Geral) são prefixados pelo ISC. Aqueles solicitados ou retornados por AcceptSecurityContext (Geral) são prefixados pelo ASC. Os sinalizadores passados para uma função incluem REQ, enquanto os sinalizadores retornados incluem RET. Por exemplo, um sinalizador de solicitação para autenticação mútua passado para InitializeSecurityContext (Geral) é ISC_REQ_MUTUAL_AUTH. Um servidor que solicita autenticação mútua passa ASC_REQ_MUTUAL_AUTH para AcceptSecurityContext (Geral). Se a autenticação mútua for obtida, InitializeSecurityContext (Geral) retornará ISC_RET_MUTUAL_AUTH e AcceptSecurityContext (Geral) retornará ASC_RET_MUTUAL_AUTH. Se o chamador solicitar autenticação mútua, mas o pacote de segurança indicar que ele não pode ser executado, o chamador deverá decidir se deseja cancelar o contexto ou continuar.

A tabela a seguir descreve os vários sinalizadores de requisito de contexto.

Sinalizador Descrição
DELEGADO
O servidor no aplicativo de transporte pode criar novos contextos de segurança representando o cliente que será aceito por outros servidores como contextos do cliente. O delegado só funcionará se MUTUAL_AUTH estiver definido. No momento, o DELEGATE tem suporte apenas do Kerberos. Além disso, Kerberos delegará apenas a um servidor que tenha o sinalizador TRUSTED_FOR_DELEGATION. Não use esse sinalizador para delegação restrita.
MUTUAL_AUTH
As partes comunicantes devem autenticar suas identidades entre si. Sem MUTUAL_AUTH, o cliente autentica sua identidade no servidor. Com MUTUAL_AUTH, o servidor também deve autenticar sua identidade no cliente.
Ao usar o pacote de segurança do Schannel , o servidor define a constante ASC_RET_MUTUAL_AUTH somente na última chamada para AcceptSecurityContext (Negotiate), após a conclusão bem-sucedida do mapeamento de certificado.
REPLAY_DETECT
O pacote de segurança detecta pacotes reproduzidos e notifica o chamador se um pacote tiver sido reproduzido. O uso desse sinalizador implica todas as condições especificadas pelo sinalizador INTEGRITY.
SEQUENCE_DETECT
O contexto deve ter permissão para detectar a entrega fora de ordem de pacotes posteriormente por meio das funções de suporte à mensagem. O uso desse sinalizador implica todas as condições especificadas pelo sinalizador INTEGRITY.
CONFIDENCIALIDADE
O contexto pode proteger dados em trânsito usando as funções EncryptMessage (Geral) e DecryptMessage (Geral ). O sinalizador CONFIDENTIALITY não funcionará se o contexto gerado for para a conta convidado.
USE_SESSION_KEY
Uma nova chave de sessão deve ser negociada.
PROMPT_FOR_CREDS
Se o cliente for um usuário interativo, o pacote de segurança deverá, se possível, solicitar ao usuário as credenciais apropriadas.
USE_SUPPLIED_CREDS
As informações de credencial específicas do pacote estão disponíveis no buffer de entrada. O pacote de segurança pode usar essas credenciais para autenticar a conexão.
SAVE_SUPPLIED_CREDS
As credenciais fornecidas devem ser armazenadas em cache com as credenciais complementares.
ALLOCATE_MEMORY
O pacote de segurança deve alocar memória. O chamador deve eventualmente chamar a função FreeContextBuffer para liberar memória alocada pelo pacote de segurança.
USE_DCE_STYLE
O chamador espera uma transação de autenticação de três etapas.
DATAGRAMA
A semântica de datagrama deve ser usada. Para obter mais informações, consulte Contextos de datagrama.
CONNECTION
A semântica de conexão deve ser usada. Para obter mais informações, consulte Contextos orientados para conexão.
Fluxo
A semântica de fluxo deve ser usada. Para obter mais informações, consulte Contextos de fluxo.
EXTENDED_ERROR
Mensagens de resposta de erro para o par devem ser geradas se o contexto falhar.
INTEGRIDADE
A integridade do buffer pode ser verificada, mas nenhuma detecção de sequenciamento ou resposta está habilitada.
NO_INTEGRITY
O requisito INTEGRITY é ignorado.
IDENTIFICAR
Quando um servidor representa um contexto que tem esse sinalizador definido, essa representação gera acesso extremamente limitado. A representação com o conjunto IDENTIFI é usada para verificar a identidade do cliente.