Função SaslAcceptSecurityContext (sspi.h)
A função SaslAcceptSecurityContext encapsula uma chamada padrão para a função AcceptSecurityContext (Interface do Provedor de Suporte de Segurança AcceptSecurityContext) e inclui a criação de cookies de servidor SASL.
Sintaxe
SECURITY_STATUS SEC_ENTRY SaslAcceptSecurityContext(
[in] PCredHandle phCredential,
[in, optional] PCtxtHandle phContext,
[in] PSecBufferDesc pInput,
[in] unsigned long fContextReq,
[in] unsigned long TargetDataRep,
[out] PCtxtHandle phNewContext,
[in, out] PSecBufferDesc pOutput,
[out] unsigned long *pfContextAttr,
[out, optional] PTimeStamp ptsExpiry
);
Parâmetros
[in] phCredential
Um identificador para as credenciais do servidor. O servidor chama a função AcquireCredentialsHandle com o sinalizador INBOUND definido para recuperar esse identificador.
[in, optional] phContext
Ponteiro para uma estrutura CtxtHandle . Na primeira chamada para AcceptSecurityContext (Geral), esse ponteiro é NULL. Em chamadas subsequentes, phContext é o identificador para o contexto parcialmente formado que foi retornado no parâmetro phNewContext pela primeira chamada.
[in] pInput
Ponteiro para uma estrutura SecBufferDesc gerada por uma chamada de cliente para a função InitializeSecurityContext (Geral) que contém o descritor do buffer de entrada.
A SASL requer um único buffer do tipo SECBUFFER_TOKEN. O buffer está vazio para a primeira chamada para a função AcceptSecurityContext (Geral) e contém a resposta de desafio recebida do cliente para a segunda chamada.
[in] fContextReq
Sinalizadores de bit que especificam os atributos exigidos pelo servidor para estabelecer o contexto. Os sinalizadores de bits podem ser combinados usando operações OR bit a bit. A tabela a seguir mostra os valores possíveis.
[in] TargetDataRep
Indica a representação de dados, como ordenação de bytes, no destino. Esse valor pode ser SECURITY_NATIVE_DREP ou SECURITY_NETWORK_DREP.
[out] phNewContext
Ponteiro para uma estrutura CtxtHandle . Na primeira chamada para AcceptSecurityContext (Geral), esse ponteiro recebe o novo identificador de contexto. Em chamadas subsequentes, phNewContext pode ser o mesmo que o identificador especificado no parâmetro phContext .
[in, out] pOutput
Ponteiro para uma estrutura SecBufferDesc que contém o descritor de buffer de saída. Esse buffer é enviado ao cliente para entrada em chamadas adicionais para InitializeSecurityContext (Geral). Um buffer de saída pode ser gerado mesmo se a função retornar SEC_E_OK. Qualquer buffer gerado deve ser enviado de volta para o aplicativo cliente.
[out] pfContextAttr
Ponteiro para uma variável que recebe um conjunto de sinalizadores de bits indicando os atributos do contexto estabelecido. Para obter uma descrição dos vários atributos, consulte Requisitos de contexto. Os sinalizadores usados para esse parâmetro são prefixados com ASC_RET, como ASC_RET_DELEGATE.
Não marcar para atributos relacionados à segurança até que a chamada de função final retorne com êxito. Sinalizadores de atributo não relacionados à segurança, como o sinalizador ASC_RET_ALLOCATED_MEMORY, podem ser verificados antes do retorno final.
[out, optional] ptsExpiry
Ponteiro para uma estrutura TimeStamp que recebe o tempo de expiração do contexto. É recomendável que o pacote de segurança sempre retorne esse valor no horário local.
Valor retornado
Se a chamada for concluída com êxito, essa função retornará SEC_E_OK. A tabela a seguir mostra alguns valores de retorno de falha possíveis.
Código de retorno | Descrição |
---|---|
|
O processamento Authz não é permitido. |
|
Não há memória suficiente disponível para concluir a solicitação. |
|
Nenhum buffer de token está localizado no parâmetro pOutput ou a mensagem falhou ao descriptografar. |
Comentários
A chamada final da função AcceptSecurityContext (Geral) que retorna SEC_E_OK é identificada. Se um token de retorno for produzido, o processamento sasl será suspenso por uma viagem de ida e volta ao cliente para permitir que o token final seja processado. Após a conclusão da troca, SEC_E_CONTINUE_NEEDED é retornado ao aplicativo com um cookie de servidor SASL adicional criptografado com funções de mensagem SSPI. O cookie do servidor inicial indica se há suporte para INTEGRIDADE e PRIVACIDADE. Esse cookie de servidor inicial é processado pelo cliente e o cliente retorna um cookie cliente para indicar quais serviços o cliente solicita. O cookie do cliente é descriptografado pelo servidor e os serviços finais são determinados para o tráfego de mensagem a seguir.
Requisitos
Cliente mínimo com suporte | Nenhum compatível |
Servidor mínimo com suporte | Windows Server 2003 [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | sspi.h (inclua Security.h) |
Biblioteca | Secur32.lib |
DLL | Secur32.dll |
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de