Compartilhar via


Função de retorno de chamada SpAcceptLsaModeContextFn (ntsecpkg.h)

Função de expedição de servidor usada para criar um contexto de segurança compartilhado por um servidor e um cliente.

A função SpAcceptLsaModeContext é chamada quando o servidor chama a função AcceptSecurityContext (Geral) da Interface do Provedor de Suporte de Segurança.

Sintaxe

SpAcceptLsaModeContextFn Spacceptlsamodecontextfn;

NTSTATUS Spacceptlsamodecontextfn(
  [in]  LSA_SEC_HANDLE CredentialHandle,
  [in]  LSA_SEC_HANDLE ContextHandle,
  [in]  PSecBufferDesc InputBuffer,
  [in]  ULONG ContextRequirements,
  [in]  ULONG TargetDataRep,
  [out] PLSA_SEC_HANDLE NewContextHandle,
  [out] PSecBufferDesc OutputBuffer,
  [out] PULONG ContextAttributes,
  [out] PTimeStamp ExpirationTime,
  [out] PBOOLEAN MappedContext,
  [out] PSecBuffer ContextData
)
{...}

Parâmetros

[in] CredentialHandle

Opcional. Manipule para as credenciais a serem usadas para o contexto.

[in] ContextHandle

Opcional. Manipule para o contexto atual.

[in] InputBuffer

Ponteiro para uma estrutura SecBufferDesc que contém informações do cliente.

[in] ContextRequirements

Sinalizadores que indicam os requisitos de contexto. A tabela a seguir lista os valores válidos.

Valor Significado
ASC_REQ_DELEGATE
O servidor tem permissão para representar o cliente.
ASC_REQ_MUTUAL_AUTH
O cliente e o servidor são necessários para provar sua identidade.
ASC_REQ_REPLAY_DETECT
O contexto de segurança dará suporte à detecção de pacotes reproduzidos.
ASC_REQ_SEQUENCE_DETECT
O contexto de segurança dará suporte à detecção de mensagens fora de ordem.
ASC_REQ_USE_SESSION_KEY
Uma nova chave de sessão deve ser negociada.
ASC_REQ_PROMPT_FOR_CREDS
Se o cliente for um usuário interativo, o pacote deverá, se possível, solicitar ao usuário as credenciais apropriadas.
ASC_REQ_USE_SUPPLIED_CREDS
O buffer de entrada contém informações de credencial específicas do pacote que devem ser usadas para autenticar a conexão.
ASC_REQ_ALLOCATE_MEMORY
O pacote deve alocar memória. O chamador deve eventualmente chamar a função FreeContextBuffer para liberar memória alocada pelo pacote de segurança.
ASC_REQ_USE_DCE_STYLE
O chamador espera uma transação de autenticação mútua de três etapas.
ASC_REQ_DATAGRAM
Um canal de comunicação do tipo datagram deve ser usado. Para obter mais informações, consulte Contextos de datagrama.
ASC_REQ_CONNECTION
Um canal de comunicação do tipo conexão deve ser usado. Para obter mais informações, consulte Contextos orientados à conexão.
ASC_REQ_EXTENDED_ERROR
Se o contexto falhar, gere uma mensagem de resposta de erro para enviar de volta ao cliente.
ASC_REQ_STREAM
Um canal de comunicação do tipo fluxo deve ser usado. Para obter mais informações, consulte Contextos de Stream.
ASC_REQ_INTEGRITY
A integridade do buffer pode ser verificada; no entanto, mensagens reproduzidas e fora de sequência não serão detectadas.

[in] TargetDataRep

Sinalizador que indica a representação de dados, como ordenação de bytes, a ser usada. Contém SECURITY_NATIVE_DREP ou SECURITY_NETWORK_DREP.

[out] NewContextHandle

Ponteiro para um LSA_SEC_HANDLE. Na primeira chamada para AcceptSecurityContext, esse ponteiro recebe o novo identificador de contexto. Em chamadas subsequentes, NewContextHandle pode ser o mesmo que o identificador especificado no parâmetro ContextHandle .

[out] OutputBuffer

Ponteiro para uma estrutura SecBufferDesc que recebe informações a serem enviadas ao cliente.

[out] ContextAttributes

Ponteiro para sinalizadores que especificam os atributos de contexto aos quais o servidor dá suporte. Para obter uma lista de valores válidos, consulte o parâmetro ContextRequirements .

[out] ExpirationTime

Ponteiro para um TimeStamp que recebe o tempo de expiração do contexto.

[out] MappedContext

Ponteiro para um valor booliano. Defina MappedContext como TRUE se o pacote de segurança implementar as funções SSP/AP no modo de usuário.

[out] ContextData

Opcional. Ponteiro para uma estrutura SecBuffer que recebe dados específicos do contexto a serem copiados ao criar o contexto de segurança do modo de usuário. A memória para ContextData deve ser alocada usando a função AllocateLsaHeap . A LSA (Autoridade de Segurança Local ) liberará a memória.

Retornar valor

Se a função SpAcceptLsaModeContext for bem-sucedida e não for necessário mais processamento para estabelecer o contexto de segurança, retorne STATUS_SUCCESS. Se o processamento adicional for necessário, a função deverá retornar SEC_I_CONTINUE_NEEDED.

Se a função não criar o contexto de segurança por qualquer outro motivo, retorne um código NTSTATUS indicando o motivo.

Comentários

SpInitLsaModeContext é a função do lado do cliente para criar um contexto de segurança.

SSP/APs devem implementar a função SpAcceptLsaModeContext . O nome real fornecido à implementação cabe ao desenvolvedor.

Um ponteiro para a função SpAcceptLsaModeContext está disponível na estrutura SECPKG_FUNCTION_TABLE recebida da função SpLsaModeInitialize .

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows XP [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2003 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho ntsecpkg.h

Confira também

AllocateLsaHeap

SpInitLsaModeContext

SpLsaModeInitialize