Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Para estabelecer um contexto de segurança que proteja as comunicações entre um cliente e um servidor, ambos devem participar do seguinte processo de troca de informações:
Cliente
- O cliente chama a função InitializeSecurityContext (General).
- O Schannel começa a criar um contexto de segurança de acordo com as regras do protocolo de segurança selecionado. O código de retorno da função indica se o cliente deve chamar a função novamente. InitializeSecurityContext (Geral) pode retornar um token que representa o contexto.
- Se um token foi retornado, o cliente o envia para o servidor.
- Quando InitializeSecurityContext (Geral) retorna SEC_E_OK, o cliente conclui o processo. Se a função retornar SEC_I_CONTINUE_NEEDED, o cliente deverá aguardar que o servidor envie um token. Quando o cliente tem o token do servidor, ele deve chamar a função InitializeSecurityContext (General) novamente. (Volte para a etapa 2.)
Servidor
- O servidor aguarda que um cliente envie uma mensagem que contém um token de segurança. O servidor passa o token recebido do cliente para a função AcceptSecurityContext (General).
- O Schannel se baseia no contexto de segurança parcial representado pelo token. Schannel retorna um token para o servidor e um código de retorno indicando se o servidor deve chamar a função novamente.
- Se um token foi retornado, o servidor o envia para o cliente.
- Quando AcceptSecurityContext (Geral) retorna SEC_E_OK, o servidor concluiu. Se a função retornar SEC_I_CONTINUE_NEEDED, o servidor deverá aguardar que o cliente envie um token. Quando o servidor tem o token do cliente, o servidor deve chamar novamente a função AcceptSecurityContext (Geral). (Volte para a etapa 2.)
Se qualquer uma das funções retornar um valor diferente de SEC_E_OK, SEC_I_CONTINUE_NEEDED ou SEC_E_INCOMPLETE_MESSAGE (consulte o parágrafo a seguir) ocorreu um erro. O cliente e o servidor devem chamar a funçãoDeleteSecurityContext para excluir o contexto de segurança parcialmente estabelecido.
Um caso especial que pode alterar o processamento do cliente e do servidor é quando pouca ou muita informação é enviada para o cliente ou servidor da outra parte. No caso de pouca informação, ambas as funções retornam SEC_E_INCOMPLETE_MESSAGE. Para obter informações sobre como reconhecer e lidar com informações insuficientes ou em excesso, consulte buffers extras retornados pelo Schannel.
Tópicos relacionados