Seqüência de chamada de API suplicante
Este tópico fornece a sequência de chamada específica para a API suplicante.
Visão geral da sequência de chamadas da API suplicante
Quando o suplicante recebe um pacote EAP de um provedor, como um ponto de acesso, o seguinte fluxo de chamada de API suplicante normalmente ocorre.
- O aplicativo chama EapHostPeerBeginSession com dados de configuração EAPHost e dados do usuário. Uma chamada bem-sucedida retorna um identificador de sessão EAP_SESSION_HANDLE.
- Cada pacote recebido pelo suplicante é processado por uma chamada para EapHostPeerProcessReceivedPacket. O suplicante então chama a função correspondente ao código de ação retornado pela função.
- Se o código de ação estiver EapHostPeerResponseSend, o suplicante chamará EapHostPeerGetSendPacket para obter a resposta a ser enviada ao autenticador.
- Se durante a sessão, o código de ação retornado ao suplicante for EapHostPeerResponseRespond, isso indica que os atributos EAP estão disponíveis. Em seguida, o suplicante chama EapHostPeerGetResponseAttributes para obtê-los. Esses atributos contêm dados suplementares usados durante o processo de autenticação. Depois que o suplicante conclui o processamento dos atributos, ele chama EapHostPeerSetResponseAttributes que atualiza os dados. Esta função retorna um código de ação que determina a próxima ação do suplicante.
- Se o código de ação estiver EapHostPeerResponseInvokeUI o suplicante acionará uma caixa de diálogo de interface do usuário para obter dados interativos do usuário, como credenciais ou informações de identidade. Consulte Interação do usuário com o fluxo de chamadas da API suplicante abaixo.
- Se o código da ação estiver EapHostPeerResponseResult, ele indica que os resultados da sessão de autenticação estão disponíveis para o suplicante. Em seguida, o suplicante chama EapHostPeerGetResult para obter os resultados. Independentemente de os resultados indicarem sucesso ou fracasso, o suplicante chama EapHostPeerEndSession. Em caso de falha, a reautenticação pode ser tentada abrindo outra sessão com o EAPHost e fornecendo uma nova identidade, ou tentando a autenticação com a identidade original novamente.
Interação do usuário com o fluxo de chamadas de API suplicante
Em certos casos, o suplicante precisa obter informações do usuário para continuar o processo de autenticação.
A lista a seguir demonstra a sequência de chamadas no processo de UI do suplicante e EAPHost necessário para habilitar a entrada interativa.
O suplicante obtém o contexto atual da interface do usuário chamando EapHostPeerGetUIContext.
Em seguida, o suplicante envia os dados de contexto da interface do usuário para o processo da interface do usuário suplicante.
Observação
O processo da interface do usuário, que normalmente coleta a interface do usuário ou manipula a interface do usuário interativa, é separado do processo do suplicante. Separar os dois processos não é um requisito do EAPHost, mas isso tem a vantagem de permitir que o processo da interface do usuário interaja com a área de trabalho.
Se o suplicante quiser renderizar a interface do usuário por si só, ele chamará a funçãoEapHostPeerQueryInteractiveUIInputFields para obter os campos de entrada para componentes interativos da interface do usuário a serem gerados. Caso contrário, ele segue o modelo tradicional de invocar a interface do usuário interativa do método chamando EapHostPeerInvokeInteractiveUI
Observação
Se EAP_E_EAPHOST_METHOD_OPERATION_NOT_SUPPORTED for retornado, o suplicante deverá seguir o modelo tradicional de invocar a interface do usuário interativa do método chamando EapHostPeerInvokeInteractiveUI. Se houver um erro, EapHostPeerQueryInteractiveUIInputFields retornará um código de retorno diferente NULL.
Se o suplicante chama EapHostPeerQueryInteractiveUIInputFields ou EaphostPeerInvokeInteractiveUI o processo da interface do usuário passa os dados de contexto existentes e carrega Eappcfg.dll. A interface do usuário apropriada é acionada para coletar os novos dados. Os novos dados de contexto da interface do usuário, que agora podem conter entrada do usuário, são copiados e os dados de contexto antigos são liberados com uma chamada para EapPeerFreeMemory.
O processo da interface do usuário retorna os novos dados de contexto para o suplicante, que chama EapHostPeerSetUIContext para defini-lo.
Tópicos relacionados