Compartir a través de


estructura PPP_EAP_INPUT (raseapif.h)

La estructura PPP_EAP_INPUT se usa en la interacción entre la implementación de PPP del servicio de Administrador de conexiones RAS y el EAP.

Esta estructura proporciona información de usuario y facilita el uso de proveedores de autenticación, como un servidor RADIUS.

Sintaxis

typedef struct _PPP_EAP_INPUT {
  DWORD              dwSizeInBytes;
  DWORD              fFlags;
  BOOL               fAuthenticator;
  WCHAR              *pwszIdentity;
  WCHAR              *pwszPassword;
  BYTE               bInitialId;
  RAS_AUTH_ATTRIBUTE *pUserAttributes;
  BOOL               fAuthenticationComplete;
  DWORD              dwAuthResultCode;
  HANDLE             hTokenImpersonateUser;
  BOOL               fSuccessPacketReceived;
  BOOL               fDataReceivedFromInteractiveUI;
  PBYTE              pDataFromInteractiveUI;
  DWORD              dwSizeOfDataFromInteractiveUI;
  PBYTE              pConnectionData;
  DWORD              dwSizeOfConnectionData;
  PBYTE              pUserData;
  DWORD              dwSizeOfUserData;
  HANDLE             hReserved;
  GUID               guidConnectionId;
  BOOL               isVpn;
} PPP_EAP_INPUT, *PPPP_EAP_INPUT;

Miembros

dwSizeInBytes

Especifica el tamaño en bytes de la estructura PPP_EAP_INPUT . El valor de este miembro se puede usar para distinguir entre las versiones actuales y futuras de esta estructura.

fFlags

Especifica cero o más de las marcas siguientes que califican el proceso de autenticación.

Valor Significado
RAS_EAP_FLAG_ROUTER
Especifica si el equipo que marca es un enrutador o un cliente RAS. Si el equipo es un enrutador, se debe establecer este parámetro.
RAS_EAP_FLAG_NON_INTERACTIVE
Especifica que el protocolo de autenticación no debe mostrar una interfaz de usuario. Si el protocolo de autenticación no puede determinar la identidad de los datos proporcionados, debe devolver el código de error ERROR_INTERACTIVE_MODE, que se define en raserror.h.
RAS_EAP_FLAG_LOGON
Especifica que los datos de usuario obtenidos de Winlogon.
RAS_EAP_FLAG_FIRST_LINK
Indica que esta conexión es el primer vínculo de una conexión de varios vínculos. Consulte [Multilink and Callback Connections](/windows/win32/eap/multilink-and-callback-connections) para obtener más información.
RAS_EAP_FLAG_GUEST_ACCESS
Se especifica si el cliente quiere el acceso de invitado. Esta marca se usa normalmente en el caso de una conexión inalámbrica de modo que si se produce un error en la autenticación para N número de intentos consecutivos, si está configurado para solicitar acceso de invitado, lo hace pasando esta marca. El servidor RADIUS debe configurarse para permitir el acceso de invitado.
RAS_EAP_FLAG_8021X_AUTH
Especifica que esta sesión se está ejecutando en un contexto inalámbrico.
RAS_EAP_FLAG_RESUME_FROM_HIBERNATE
Especifica que esta es la primera llamada después de que la máquina se haya reanudado desde la hibernación.
RAS_EAP_FLAG_PEAP_UPFRONT
Especifica que PEAP está habilitado al principio de la canalización de IAS.
RAS_EAP_FLAG_ALTERNATIVE_USER_DB
Especifica que la base de datos de usuario no es Active Directory.
RAS_EAP_FLAG_PRE_LOGON
Especifica que las credenciales para el usuario o una cuenta de equipo deben obtenerse de forma segura sin generar varias instancias de interfaz de usuario.

fAuthenticator

Especifica si el protocolo de autenticación funciona en el servidor o el cliente. Un valor true indica que el protocolo de autenticación funciona en el servidor como autenticador. Un valor false indica que el protocolo de autenticación funciona en el cliente como proceso que se va a autenticar.

pwszIdentity

Puntero a una cadena Unicode que identifica al usuario que solicita autenticación. Esta cadena tiene el formato domain\user o machine\user.

Si el protocolo de autenticación puede derivar la identidad del usuario de un origen adicional, por ejemplo, un certificado, debe comprobar que la identidad derivada coincide con el valor de pwszIdentity.

pwszPassword

Puntero a una cadena Unicode que contiene la contraseña de la cuenta del usuario. Solo está disponible si fAuthenticator es FALSE. Este miembro puede ser NULL.

bInitialId

Especifica el identificador del paquete EAP inicial enviado por el archivo DLL. Este valor se incrementa en uno para cada paquete de solicitud posterior.

pUserAttributes

Puntero a una matriz de estructuras de RAS_AUTH_ATTRIBUTE . La matriz finaliza mediante una estructura con un miembro raaType que tiene un valor de raatMinimum (vea RAS_AUTH_ATTRIBUTE_TYPE). Durante la llamada a RasEapBegin , esta matriz contiene atributos que describen el usuario marcado actualmente. Cuando el miembro fAuthenticationComplete es TRUE, esta matriz puede contener atributos devueltos por el proveedor de autenticación.

fAuthenticationComplete

Especifica un valor booleano que indica si el proveedor de autenticación ha autenticado al usuario. Un valor de TRUE indica la finalización de la autenticación. Compruebe el miembro dwAuthResultCode para determinar si la autenticación se realizó correctamente. Omita este miembro si el protocolo de autenticación no usa un proveedor de autenticación.

dwAuthResultCode

Especifica el resultado del proceso de autenticación del proveedor de autenticación. La autenticación correcta da como resultado NO_ERROR. Los códigos de error de autenticación para dwAuthResultCode solo deben provenir de Winerror.h, Raserror.h o Mprerror.h. Omita este campo si el protocolo de autenticación no usa un proveedor de autenticación.

hTokenImpersonateUser

Identificador de un token de suplantación para el usuario que solicita autenticación. Este miembro solo es válido en el lado cliente. Para obtener más información sobre los tokens de suplantación, consulte Tokens de acceso.

fSuccessPacketReceived

Especifica que la autenticación se realizó correctamente. RAS establece este miembro en TRUE si el cliente recibe un paquete del Protocolo de control de red (NCP), aunque el cliente aún no haya recibido un paquete de éxito de EAP. Un valor false indica que no se ha recibido ningún paquete NCP.

El paquete de operación correcta de EAP es un paquete no confirmado. Por lo tanto, el servidor puede perderlo y no resentirlo. En esta situación, la recepción de un paquete NCP indica que la autenticación se realizó correctamente, ya que el servidor ha pasado a la fase NCP de PPP.

Examine este miembro solo en el lado cliente.

fDataReceivedFromInteractiveUI

Especifica si la información está disponible en la interfaz de usuario interactiva. El valor predeterminado es FALSE. RAS establece este miembro en TRUE cada vez que el usuario sale de la interfaz de usuario interactiva del protocolo de autenticación.

pDataFromInteractiveUI

Puntero a los datos recibidos de la interfaz de usuario interactiva del protocolo de autenticación. Este puntero no es NULL si el miembro fDataReceivedFromInteractiveUI es TRUE y la interfaz de usuario interactiva devolvió datos, de hecho. De lo contrario, este puntero es NULL.

Si no es NULL, el protocolo de autenticación debe realizar una copia de los datos en su propio espacio de memoria. RAS libera la memoria ocupada por estos datos a partir de la llamada en la que se pasó la estructura de PPP_EAP_INPUT . Para liberar la memoria, RAS llama a la función RasEapFreeMemory .

dwSizeOfDataFromInteractiveUI

Especifica el tamaño, en bytes, de los datos a los que apunta pDataFromInteractiveUI. Si no se devuelve ningún dato de la interfaz de usuario interactiva, este miembro es cero.

pConnectionData

Puntero a los datos de conexión recibidos de la interfaz de usuario de configuración del protocolo de autenticación. Estos datos solo están disponibles cuando la estructura de PPP_EAP_INPUT se pasa en RasEapBegin. No está disponible en llamadas a RasEapMakeMessage.

El protocolo de autenticación debe realizar una copia de estos datos en su propio espacio de memoria. RAS libera la memoria ocupada por estos datos a partir de la llamada en la que se pasó la estructura de PPP_EAP_INPUT . Para liberar la memoria, RAS llama a la función RasEapFreeMemory .

Si la interfaz de usuario de configuración del protocolo de autenticación no devuelve ningún dato, este miembro es NULL.

dwSizeOfConnectionData

Especifica el tamaño en bytes de los datos a los que apunta pConnectionData. Si pConnectionData es NULL, este miembro es cero.

pUserData

Puntero a los datos de usuario recibidos de la función RasEapGetIdentity del protocolo de autenticación en el equipo cliente. Si el protocolo de autenticación no implementa RasEapGetIdentity, este miembro apunta a datos del Registro para este usuario.

Estos datos solo están disponibles cuando la estructura de PPP_EAP_INPUT se pasa en RasEapBegin. No está disponible en llamadas a RasEapMakeMessage.

El protocolo de autenticación debe realizar una copia de estos datos en su propio espacio de memoria. RAS libera la memoria ocupada por estos datos a partir de la llamada en la que se pasó la estructura de PPP_EAP_INPUT .

Si la función RasEapGetIdentity no se implementa o no devuelve ningún dato y no existe ningún dato para el usuario en el registro, este miembro es NULL.

dwSizeOfUserData

Especifica el tamaño, en bytes, de los datos a los que apunta pUserData. Si pUserData es NULL, este miembro es cero.

hReserved

Este miembro está reservado.

guidConnectionId

isVpn

Comentarios

RaseapBegin y RasEapMakeMessage pasan la estructura de PPP_EAP_INPUT al protocolo de autenticación en llamadas a RasEapBegin y RasEapMakeMessage.

La función RasEapBegin usa los miembros pwszIdentity y pwszPassword de la estructura PPP_EAP_INPUT para obtener información del usuario. El miembro pwszPassword solo es NULL si el miembro fAuthenticator es FALSE, es decir, el protocolo de autenticación se ejecuta en el equipo cliente.

Si el protocolo de autenticación usa un proveedor de autenticación, como la autenticación de dominio radius o Windows 2000, los miembros siguientes se usan para interactuar con el proveedor de autenticación:

pUserAttributesfAuthenticationCompletedwAuthResultCode Tenga en cuenta que la matriz de estructuras de RAS_AUTH_ATTRIBUTE solo se pasa si fAuthenticator es TRUE. Esta matriz contiene información de sesión actual, como el identificador de puerto y la dirección IP local.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Encabezado raseapif.h

Consulte también

Estructuras del EAP

Referencia de protocolo de autenticación extensible

RAS_AUTH_ATTRIBUTE

RasEapBegin

RasEapFreeMemory

RasEapGetIdentity

RasEapMakeMessage