Compartilhar via


Implementando o mecanismo EAPHost LEAP

Este tópico descreve o mecanismo EAPHost que permite que terceiros escrevam módulos LEAP (Lightweight Extensible Authentication Protocol) para Windows. LEAP é um método de autenticação herdado, criado pela Cisco, de acordo com o RFC 3748. Para obter mais informações sobre LEAP, consulte Cisco LEAP Q&A.

Processo de autenticação EAPHost

O processo regular de autenticação EAPHost ocorre da seguinte maneira:

  • O autenticador envia uma Solicitação para autenticar o par. Por exemplo, o aplicativo chama EapHostPeerBeginSession com a configuração EAPHost e os dados do usuário.
  • O par envia um pacote de Resposta em resposta a uma Solicitação válida. Por exemplo, uma chamada bem-sucedida retorna um identificador de sessão EAP_SESSION_HANDLE.
  • O autenticador envia um pacote de solicitação adicional e o par responde com uma Resposta. Por exemplo, o aplicativo chama EapHostPeerGetSendPacket para obter pacotes EAP recebidos pelo EAPHost durante toda a sessão. Cada pacote é processado por uma chamada para EapHostPeerProcessReceivedPacket.
  • EapHostPeerProcessReceivedPacket sempre retornará um código de ação. Em seguida, o suplicável deve chamar a função correspondente ao código de ação.
  • A sequência de Solicitações e Respostas continua enquanto necessário. Por exemplo, o aplicativo pode chamar EapHostPeerGetResponseAttributes para solicitar atributos EAP disponíveis e o par responde com EapHostPeerSetResponseAttributes para retorná-los.
  • Após uma solicitação inicial, uma nova solicitação não pode ser enviada até que uma resposta válida seja recebida.
  • A conversa continua até que o autenticador não possa autenticar o par; nesse caso, a implementação do autenticador deve transmitir uma falha de EAP. Por exemplo, respostas inaceitáveis a uma ou mais solicitações fariam com que o autenticador transmitisse uma falha de EAP do Código 4.
  • Como alternativa, a conversa de autenticação pode continuar até que o autenticador determine que a autenticação bem-sucedida ocorreu; nesse caso, o autenticador deve transmitir um EAP Success (Código 3).
  • Se o resultado indicar êxito ou falha, o aplicativo chamará EapHostPeerEndSession para encerrar a sessão. No caso de falha, a nova autenticação pode ser tentada abrindo outra sessão com EAPHost e fornecendo a mesma identidade ou uma nova.

Processo de autenticação LEAP

O processo de autenticação LEAP difere do processo regular de autenticação EAPhost da seguinte maneira:

  • A autenticação EAP é iniciada pelo servidor (autenticador). O LEAP, por outro lado, é iniciado pelo cliente (par).

    • Portanto, ao escrever um módulo LEAP, você sempre deve garantir que o pacote solicitação de desafio do método par e a resposta EAP do servidor EAP sempre devem ter a mesma ID de pacote que a do pacote EAP Success do servidor.
    • Por outro lado, os pacotes solicitação e resposta e êxito do EAPHost normalmente têm IDs diferentes.

      Observação

      Cada Solicitação EAP tem um campo Tipo para indicar o que está sendo solicitado. Assim como acontece com o pacote Solicitação, cada pacote de resposta EAP contém um campo Tipo, que corresponde ao campo Tipo da Solicitação. Os exemplos incluem pacotes de Solicitação de Identidade e Solicitação de Desafio.

       

  • No caso de falha com o EAPHost, a nova autenticação pode ser tentada abrindo outra sessão com o EAPHost e fornecendo a mesma identidade ou uma nova identidade.

Implementação do método LEAP Authenticator

Ao desenvolver um método autenticador LEAP, verifique o seguinte:

Implementação do método par LEAP

Ao desenvolver um método par LEAP, verifique o seguinte

  • Os métodos de par LEAP devem retornar o código de ação EapPeerMethodResponseActionSend depois que a 1ª fase da autenticação (autenticação de pares) for bem-sucedida.
  • Os métodos de par LEAP devem retornar o código de ação EapPeerMethodResponseActionResult após a 2ª fase da autenticação ser bem-sucedida.

Sequência de chamadas EAPHost

Usando o EAPHost