Partilhar via


Inicialização do protocolo de autenticação

A conexão protegida por EAP é inicializada entre o cliente e o servidor de maneiras semelhantes para clientes RAS e sem fio (802.1X).

Cliente

Quando o cliente tenta estabelecer a conexão, o serviço de autenticação obtém informações de identidade para o usuário. Se o valor RAS_EAP_VALUENAME_INVOKE_NAMEDLG estiver presente no registro para esse protocolo de autenticação e esse valor for definido como zero, o serviço de autenticação chamará RasEapGetIdentity. Essa função normalmente exibe uma interface do usuário que permite que as informações de identidade sejam de um tipo específico ao protocolo de autenticação; por exemplo, um certificado ou uma ID numérica. Se RAS_EAP_VALUENAME_INVOKE_NAMEDLG não estiver presente ou estiver definido como um, o serviço de autenticação exibirá a caixa de diálogo nome de usuário padrão do sistema.

Depois que o serviço de autenticação tiver obtido as informações de identidade do usuário, ele chamará a implementação do protocolo de autenticação rasEapBegin. Essa chamada permite que o protocolo de autenticação aloque e inicialize um buffer de trabalho que o serviço passa em chamadas subsequentes para RasEapMakeMessage e RasEapEnd. O buffer de trabalho é opaco para o serviço e nunca acessa o conteúdo do buffer de trabalho. Se o protocolo de autenticação criar um buffer de trabalho distinto para cada sessão EAP, o buffer de trabalho será de sessão e thread safe. Como o protocolo de autenticação aloca a memória para o buffer de trabalho, o protocolo de autenticação também deve liberar essa memória usando a função RasEapFreeMemory .

Na chamada para RasEapBegin, o serviço também passa uma estrutura PPP_EAP_INPUT que contém ponteiros para as informações de configuração da conexão e as informações de identidade do usuário. O serviço sempre passa um valor para o membro pszIdentity de PPP_EAP_INPUT. No entanto, o membro pszPassword do PPP_EAP_INPUT pode ser NULL.

Dentro da estrutura PPP_EAP_INPUT , o membro fAuthenticator indica se o protocolo de autenticação está sendo invocado para ser autenticado (no cliente) ou como o autenticador (no servidor).

Servidor

No servidor, o membro bInitialID de PPP_EAP_INPUT especifica a ID que o servidor usa para o primeiro pacote EAP. O servidor incrementa essa ID para pacotes subsequentes.

Também no servidor, o ponteiro pUserAttributes no PPP_EAP_INPUT aponta para uma matriz de atributos do tipo RAS_AUTH_ATTRIBUTE_TYPE . Esses são atributos para o usuário que foram obtidos do cliente.

Se a chamada RasEapBegin retornar qualquer valor diferente de NO_ERROR, a sessão será desconectada. O erro retornado é registrado (no servidor) ou exibido para o usuário (no cliente).