Partager via


PPP_EAP_INPUT structure (raseapif.h)

La structure PPP_EAP_INPUT est utilisée dans l’interaction entre l’implémentation PPP du service RAS Gestionnaire des connexions et l’EAP.

Cette structure fournit des informations sur les utilisateurs et facilite l’utilisation de fournisseurs d’authentification, tels qu’un serveur RADIUS.

Syntaxe

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;

Membres

dwSizeInBytes

Spécifie la taille en octets de la structure PPP_EAP_INPUT . La valeur de ce membre peut être utilisée pour faire la distinction entre les versions actuelles et futures de cette structure.

fFlags

Spécifie zéro ou plusieurs des indicateurs suivants qui qualifient le processus d’authentification.

Valeur Signification
RAS_EAP_FLAG_ROUTER
Spécifie si l’ordinateur qui compose la numérotation est un routeur ou un client RAS. Si l’ordinateur est un routeur, ce paramètre doit être défini.
RAS_EAP_FLAG_NON_INTERACTIVE
Spécifie que le protocole d’authentification ne doit pas afficher d’interface utilisateur. Si le protocole d’authentification n’est pas en mesure de déterminer l’identité à partir des données fournies, il doit retourner le code d’erreur ERROR_INTERACTIVE_MODE, qui est défini dans raserror.h.
RAS_EAP_FLAG_LOGON
Spécifie que les données utilisateur obtenues à partir de Winlogon.
RAS_EAP_FLAG_FIRST_LINK
Indique que cette connexion est le premier lien d’une connexion multilink. Pour plus d’informations, consultez [Multilink and Callback Connections](/windows/win32/eap/multilink-and-callback-connections).
RAS_EAP_FLAG_GUEST_ACCESS
Spécifié si le client souhaite l’accès invité. Cet indicateur est normalement utilisé dans le cas d’une connexion sans fil, de sorte que si l’authentification échoue pour N nombre de tentatives consécutives, le client sans fil, s’il est configuré pour demander l’accès invité, le fait en passant cet indicateur. Le serveur RADIUS doit être configuré pour autoriser l’accès invité.
RAS_EAP_FLAG_8021X_AUTH
Spécifie que cette session s’exécute dans un contexte sans fil.
RAS_EAP_FLAG_RESUME_FROM_HIBERNATE
Spécifie qu’il s’agit du premier appel après la reprise de la mise en veille prolongée de l’ordinateur.
RAS_EAP_FLAG_PEAP_UPFRONT
Spécifie que PEAP est activé au début du pipeline IAS.
RAS_EAP_FLAG_ALTERNATIVE_USER_DB
Spécifie que la base de données utilisateur n’est pas Active Directory.
RAS_EAP_FLAG_PRE_LOGON
Spécifie que les informations d’identification de l’utilisateur ou d’un compte d’ordinateur doivent être obtenues de manière sécurisée sans déclencher plusieurs instances d’interface utilisateur.

fAuthenticator

Spécifie si le protocole d’authentification fonctionne sur le serveur ou le client. La valeur TRUE indique que le protocole d’authentification fonctionne sur le serveur en tant qu’authentificateur. La valeur FALSE indique que le protocole d’authentification fonctionne sur le client en tant que processus à authentifier.

pwszIdentity

Pointeur vers une chaîne Unicode qui identifie l’utilisateur qui demande l’authentification. Cette chaîne est de la forme domaine\utilisateur ou machine\utilisateur.

Si le protocole d’authentification est en mesure de dériver l’identité de l’utilisateur à partir d’une source supplémentaire, par exemple un certificat, il doit vérifier que l’identité dérivée correspond à la valeur de pwszIdentity.

pwszPassword

Pointeur vers une chaîne Unicode qui contient le mot de passe du compte de l’utilisateur. Disponible uniquement si fAuthenticator a la valeur FALSE. Ce membre peut être NULL.

bInitialId

Spécifie l’identificateur du paquet EAP initial envoyé par la DLL. Cette valeur est incrémentée d’un pour chaque paquet de requête suivant.

pUserAttributes

Pointeur vers un tableau de structures RAS_AUTH_ATTRIBUTE . Le tableau est terminé par une structure avec un membre raaType dont la valeur est raatMinimum (voir RAS_AUTH_ATTRIBUTE_TYPE). Pendant l’appel RasEapBegin , ce tableau contient des attributs qui décrivent l’utilisateur actuellement composé. Lorsque le membre fAuthenticationComplete a la valeur TRUE, ce tableau peut contenir des attributs retournés par le fournisseur d’authentification.

fAuthenticationComplete

Spécifie une valeur booléenne qui indique si le fournisseur d’authentification a authentifié l’utilisateur. La valeur TRUE indique la fin de l’authentification. Vérifiez le membre dwAuthResultCode pour déterminer si l’authentification a réussi. Ignorez ce membre si le protocole d’authentification n’utilise pas de fournisseur d’authentification.

dwAuthResultCode

Spécifie le résultat du processus d’authentification du fournisseur d’authentification. La réussite de l’authentification entraîne NO_ERROR. Les codes d’échec d’authentification pour dwAuthResultCode doivent provenir uniquement de Winerror.h, Raserror.h ou Mprerror.h. Ignorez ce champ si le protocole d’authentification n’utilise pas de fournisseur d’authentification.

hTokenImpersonateUser

Gérez un jeton d’emprunt d’identité pour l’utilisateur qui demande l’authentification. Ce membre est valide uniquement côté client. Pour plus d’informations sur les jetons d’emprunt d’identité, consultez Jetons d’accès.

fSuccessPacketReceived

Spécifie que l’authentification a réussi. RAS définit ce membre sur TRUE si le client reçoit un paquet NCP (Network Control Protocol) même si le client n’a pas encore reçu de paquet de réussite EAP. La valeur FALSE indique qu’aucun paquet NCP n’a été reçu.

Le paquet de réussite EAP est un paquet non reconnu. Par conséquent, il peut être perdu et ne pas être renvoyé par le serveur. Dans ce cas, la réception d’un paquet NCP indique que l’authentification a réussi, car le serveur est passé à la phase NCP de PPP.

Examinez ce membre uniquement côté client.

fDataReceivedFromInteractiveUI

Spécifie si les informations sont disponibles à partir de l’interface utilisateur interactive. La valeur par défaut est FALSE. RAS définit ce membre sur TRUE chaque fois que l’utilisateur quitte l’interface utilisateur interactive du protocole d’authentification.

pDataFromInteractiveUI

Pointeur vers les données reçues à partir de l’interface utilisateur interactive du protocole d’authentification. Ce pointeur n’est pas NULL si le membre fDataReceivedFromInteractiveUI a la valeur TRUE et que l’interface utilisateur interactive a, en fait, retourné des données. Sinon, ce pointeur est NULL.

S’il n’est pas NULL, le protocole d’authentification doit effectuer une copie des données dans son propre espace mémoire. RAS libère la mémoire occupée par ces données au retour de l’appel dans lequel la structure PPP_EAP_INPUT a été passée. Pour libérer de la mémoire, RAS appelle la fonction RasEapFreeMemory .

dwSizeOfDataFromInteractiveUI

Spécifie la taille, en octets, des données pointées par pDataFromInteractiveUI. Si aucune donnée n’est retournée à partir de l’interface utilisateur interactive, ce membre est égal à zéro.

pConnectionData

Pointeur vers les données de connexion reçues à partir de l’interface utilisateur de configuration du protocole d’authentification. Ces données sont disponibles uniquement lorsque la structure PPP_EAP_INPUT est passée dans RasEapBegin. Il n’est pas disponible dans les appels à RasEapMakeMessage.

Le protocole d’authentification doit effectuer une copie de ces données dans son propre espace mémoire. RAS libère la mémoire occupée par ces données au retour de l’appel dans lequel la structure PPP_EAP_INPUT a été passée. Pour libérer de la mémoire, RAS appelle la fonction RasEapFreeMemory .

Si l’interface utilisateur de configuration du protocole d’authentification ne retourne aucune donnée, ce membre est NULL.

dwSizeOfConnectionData

Spécifie la taille en octets des données pointées par pConnectionData. Si pConnectionData a la valeur NULL, ce membre est égal à zéro.

pUserData

Pointeur vers les données utilisateur reçues de la fonction RasEapGetIdentity du protocole d’authentification sur l’ordinateur client. Si le protocole d’authentification n’implémente pas RasEapGetIdentity, ce membre pointe vers les données du registre pour cet utilisateur.

Ces données sont disponibles uniquement lorsque la structure PPP_EAP_INPUT est passée dans RasEapBegin. Il n’est pas disponible dans les appels à RasEapMakeMessage.

Le protocole d’authentification doit effectuer une copie de ces données dans son propre espace mémoire. RAS libère la mémoire occupée par ces données au retour de l’appel dans lequel la structure PPP_EAP_INPUT a été passée.

Si la fonction RasEapGetIdentity n’est pas implémentée ou n’a pas retourné de données, et qu’il n’existe aucune donnée pour l’utilisateur dans le Registre, ce membre a la valeur NULL.

dwSizeOfUserData

Spécifie la taille, en octets, des données pointées par pUserData. Si pUserData a la valeur NULL, ce membre est égal à zéro.

hReserved

Ce membre est réservé.

guidConnectionId

isVpn

Remarques

La structure PPP_EAP_INPUT est passée par RAS au protocole d’authentification dans les appels à RasEapBegin et RasEapMakeMessage.

Les membres pwszIdentity et pwszPassword de la structure PPP_EAP_INPUT sont utilisés par la fonction RasEapBegin pour obtenir des informations utilisateur. Le membre pwszPassword n’est pas NULL uniquement si le membre fAuthenticator a la valeur FALSE, c’est-à-dire que le protocole d’authentification est en cours d’exécution sur l’ordinateur client.

Si le protocole d’authentification utilise un fournisseur d’authentification, tel que Radius ou l’authentification de domaine Windows 2000, les membres suivants sont utilisés pour interagir avec le fournisseur d’authentification :

pUserAttributesfAuthenticationCompletedwAuthResultCode Notez que le tableau des structures RAS_AUTH_ATTRIBUTE est passé uniquement si fAuthenticator a la valeur TRUE. Ce tableau contient des informations de session actuelles, telles que l’identificateur de port et l’adresse IP locale.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
En-tête raseapif.h

Voir aussi

Structures EAP

Informations de référence sur le protocole d’authentification extensible

RAS_AUTH_ATTRIBUTE

RasEapBegin

RasEapFreeMemory

RasEapGetIdentity

RasEapMakeMessage