Msv1_0SubAuthenticationFilter fonction (subauth.h)
La fonction Msv1_0SubAuthenticationFilter effectue une authentification d’ouverture de session utilisateur spécifique aux contrôleurs de domaine.
La fonction reçoit les données d’ouverture de session de l’utilisateur et toutes les informations trouvées pour l’utilisateur dans la base de données du Gestionnaire des comptes de sécurité (SAM) du contrôleur de domaine.
Cette fonction est implémentée par des DLL de package de sous-authentification personnalisées à utiliser avec les packages d’authentification Kerberos et MSV1_0.
Syntaxe
NTSTATUS Msv1_0SubAuthenticationFilter(
[in] NETLOGON_LOGON_INFO_CLASS LogonLevel,
[in] PVOID LogonInformation,
[in] ULONG Flags,
[in] PUSER_ALL_INFORMATION UserAll,
[out] PULONG WhichFields,
[out] PULONG UserFlags,
[out] PBOOLEAN Authoritative,
[out] PLARGE_INTEGER LogoffTime,
[out] PLARGE_INTEGER KickoffTime
);
Paramètres
[in] LogonLevel
Spécifie le niveau d’informations fournies dans LogonInformation. Ce paramètre est normalement défini sur NetlogonInteractiveInformation.
[in] LogonInformation
Pointeur vers une structure NETLOGON_LOGON_IDENTITY_INFO . Les membres de cette structure contiennent des informations sur l’utilisateur qui se connecte. Le membre LogonDomainName est ignoré.
[in] Flags
facultatif. Contient des indicateurs qui décrivent les circonstances de l’ouverture de session. Ce paramètre peut prendre les valeurs suivantes.
[in] UserAll
Pointeur vers une structure de USER_ALL_INFORMATION qui contient la description de l’utilisateur telle qu’elle est retournée à partir de la base de données SAM.
[out] WhichFields
Retourne les membres de la structure USER_ALL_INFORMATION qui doivent être réécrits dans la base de données SAM. Ces membres ne seront écrits que si Msv1_0SubAuthenticationFilter retourne la réussite. Seule la valeur suivante est valide.
Valeur | Signification |
---|---|
|
Réécrivez les données contenues dans le membre Parameters de la structure UserAll dans la base de données SAM.
Si la taille de la mémoire tampon UNICODE_STRING du membre Parameters est modifiée, Msv1_0SubAuthenticationFilter devez supprimer la mémoire tampon à l’aide de la fonction MIDL_user_free et la réallouer à l’aide de la fonction MIDL_user_allocate. |
[out] UserFlags
Valeurs à retourner à partir de la fonction LsaLogonUser dans le paramètre ProfileBuffer de cette fonction. Ce paramètre peut prendre les valeurs suivantes.
Valeur | Signification |
---|---|
|
Il s’agissait d’une ouverture de session d’invité. |
|
L’appelant n’a pas spécifié d’informations d’identification chiffrées. |
[out] Authoritative
Pointeur vers une valeur booléenne qui indique si le status retourné est un status faisant autorité qui doit être retourné à l’appelant d’origine. Si la valeur retournée est FALSE, la demande d’ouverture de session peut être réessayé sur un autre contrôleur de domaine. Ce paramètre doit retourner des informations valides, quelle que soit la valeur de retour de l’appel de fonction. Ce paramètre n’est pas utilisé avec le package d’authentification Kerberos.
[out] LogoffTime
Pointeur vers une valeur qui reçoit l’heure à laquelle l’utilisateur doit se déconnecter du système. Cette heure est utilisée pour contrôler la durée de vie de l’ouverture de session et est spécifiée sous la forme d’une heure système Windows relative GMT.
[out] KickoffTime
Pointeur vers une valeur qui reçoit l’heure à laquelle l’utilisateur doit être déconnecté du système. Cette heure est utilisée pour contrôler la durée de vie de l’ouverture de session et est spécifiée sous la forme d’une heure système relative GMT. Si l’utilisateur ne doit pas être automatiquement déconnecté, spécifiez une grande valeur positive, comme suit :
KickoffTime->HighPart = 0x7FFFFFFF;
KickoffTime->LowPart = 0xFFFFFFFF;
Valeur retournée
Cette fonction doit retourner l’une des valeurs suivantes.
Code de retour | Description |
---|---|
|
Il n’y a pas eu d’erreur. |
|
Le compte est désactivé. |
|
Le compte a expiré. |
|
Le compte est verrouillé. |
|
LogonLevel n’est pas valide. |
|
L’utilisateur n’est pas autorisé à se connecter pour le moment. |
|
L’utilisateur n’est pas autorisé à se connecter à la station de travail spécifiée. |
|
L’utilisateur spécifié n’a pas de compte. |
|
Le mot de passe a expiré. |
|
Le mot de passe doit changer lors de la prochaine ouverture de session. |
|
Le mot de passe n’était pas valide. |
Lorsque la fonction Msv1_0SubAuthenticationFilter est utilisée avec le package d’authentification Kerberos, si l’appel de fonction retourne STATUS_SUCCESS et que l’un des deux paramètres LogoffTime ou KickoffTime a une valeur différente de zéro, cette valeur est utilisée comme durée de vie du ticket. Si, en revanche, les valeurs des deux paramètres ne sont pas nulles, la plus petite de ces deux valeurs est utilisée.
Si la valeur utilisée pour la durée de vie du ticket (la plus précoce de LogoffTime et KickoffTime) est supérieure à la durée de vie du ticket par défaut, cette valeur sera utilisée comme durée de renouvellement maximale pour le ticket. À l’inverse, si la plus grande des deux valeurs (la plus récente de LogoffTime et KickoffTime) est inférieure à la durée de vie du ticket par défaut, cette valeur sera utilisée comme durée de vie du ticket. Pour plus d’informations, consultez Microsoft Kerberos.
Lorsqu’elle est utilisée avec le package d’authentification Kerberos, si cette fonction retourne une erreur, le centre de distribution de clés (KDC) retourne le KDC_ERR_POLICY d’erreur Kerberos, avec la valeur status comme code d’erreur étendu.
Remarques
Les implémentations de cette fonction ne doivent pas exécuter d’opérations qui provoquent le trafic LDAP ( Lightweight Directory Access Protocol ). Par exemple, ne vous connectez pas à la base de données Active Directory et n’interrogez pas la base de données Active Directory .
Une fois que le package d’authentification MSV1_0 ou Kerberos a validé une ouverture de session, la fonction Msv1_0SubAuthenticationFilter peut effectuer une validation supplémentaire pour déterminer si un utilisateur peut se connecter à un compte réseau. Cette fonction est appelée si la DLL de package de sous-authentification est correctement inscrite comme « Auth0 » dans le registre du contrôleur de domaine. Le chemin du Registre est différent selon que la fonction se trouve dans une DLL de package de sous-authentification kerberos ou MSV1_0.
Cette routine de filtre peut retourner STATUS_SUCCESS, ce qui indique que l’ouverture de session doit continuer, ou un code d’échec, qui indique que la validation supplémentaire a échoué.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows XP [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows Server 2003 [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | subauth.h |