Compartir a través de


Inicialización del protocolo de autenticación

La conexión protegida EAP se inicializa entre el cliente y el servidor de maneras similares para los clientes RAS e inalámbrico (802.1X).

Cliente

Cuando el cliente intenta establecer la conexión, el servicio de autenticación obtiene información de identidad para el usuario. Si el valor de RAS_EAP_VALUENAME_INVOKE_NAMEDLG está presente en el Registro para este protocolo de autenticación y este valor se establece en cero, el servicio de autenticación llama a RasEapGetIdentity. Esta función suele mostrar una interfaz de usuario que permite que la información de identidad sea de un tipo específico del protocolo de autenticación; por ejemplo, un certificado o un identificador numérico. Si RAS_EAP_VALUENAME_INVOKE_NAMEDLG no está presente o se establece en uno, el servicio de autenticación muestra el cuadro de diálogo de nombre de usuario del sistema estándar.

Una vez que el servicio de autenticación ha obtenido la información de identidad del usuario, llama a la implementación del protocolo de autenticación de RasEapBegin. Esta llamada permite que el protocolo de autenticación asigne e inicialice un búfer de trabajo que el servicio pasa en llamadas posteriores a RasEapMakeMessage y RasEapEnd. El búfer de trabajo es opaco para el servicio y nunca accede al contenido del búfer de trabajo. Si el protocolo de autenticación crea un búfer de trabajo distinto para cada sesión de EAP, el búfer de trabajo es seguro para sesiones y subprocesos. Dado que el protocolo de autenticación asigna la memoria para el búfer de trabajo, el protocolo de autenticación también debe liberar esta memoria mediante la función RasEapFreeMemory.

En la llamada a RasEapBegin, el servicio también pasa una estructura de PPP_EAP_INPUT que contiene punteros a la información de configuración de la conexión y la información de identidad del usuario. El servicio siempre pasa un valor para el miembro pszIdentity de de PPP_EAP_INPUT. Sin embargo, el miembro de pszPassword de PPP_EAP_INPUT puede ser NULL.

Dentro de la estructura PPP_EAP_INPUT, el miembro fAuthenticator indica si se invoca el protocolo de autenticación para autenticarse (en el cliente) o como autenticador (en el servidor).

Servidor

En el servidor, el bInitialID miembro de PPP_EAP_INPUT especifica el identificador que usa el servidor para el primer paquete EAP. El servidor incrementa este identificador para los paquetes posteriores.

Además, en el servidor, el puntero pUserAttributes en PPP_EAP_INPUT apunta a una matriz de atributos del tipo RAS_AUTH_ATTRIBUTE_TYPE. Estos son atributos para el usuario que se obtuvo del cliente.

Si el rasEapBegin llamada devuelve cualquier valor distinto de NO_ERROR, la sesión se desconecta. El error devuelto se registra (en el servidor) o se muestra al usuario (en el cliente).