Numéro d'article: 103390 - Dernière mise à jour: mardi 20 février 2007 - Version: 4.4

Algorithmes de validation d'accès réseau et des exemples de Windows Server 2003, Windows XP et Windows 2000

A noterCet article s'applique à un système d'exploitation différent de celui que vous utilisez. Le contenu de l'article qui ne vous concerne peut-être pas est désactivé.

Sommaire

Agrandir tout | Réduire tout
Ce qui suit est un algorithme simplifié qui explique comment Windows compte validation est observée à fonction au cours de l'accès réseau à l'aide du protocole NTLM. Il est à l'aide de l'accès via le protocole server message block (SMB) que dans l'exemple, mais elle s'applique à toutes les autres applications serveur qui prend en charge l'authentification NTLM. Cette discussion ne couvre pas le fonctionnement interne de ce processus. Grâce à ces informations, vous pouvez prédire Windows réseau comportement d'ouverture de session sous conditions déterministes.
Lorsque Kerberos est utilisé pour authentifier l'utilisateur et accéder aux ressources du serveur, le processus est très différent de ce que fait NTLM. Pour plus d'informations, visitez le site Microsoft TechNet Web suivant :
http://technet2.microsoft.com/WindowsServer/en/Library/f5c70774-25cd-4481-8b7a-3d65c86e69b11033.mspx (http://technet2.microsoft.com/WindowsServer/en/Library/f5c70774-25cd-4481-8b7a-3d65c86e69b11033.mspx)
N'oubliez pas que la base de données locale est la base de données du domaine et la seule base de données sur les contrôleurs de domaine. Mais sur les autres serveurs et tous les ordinateurs, la base de données locale diffère le contrôleur de domaine.

Informations générales

Lorsque deux ordinateurs Windows Server 2003, Windows XP ou Windows 2000 communiquent via un réseau, ils utilisent un protocole de haut niveau appelé server message block (SMB). Commandes SMB sont incorporés dans les protocoles de transport, tels que TCP/IP ou NetBIOS Enhanced User Interface (NetBEUI). Par exemple, lorsqu'un ordinateur client exécute une commande NET USE, une trame «SMB session le programme d'installation et X» est diffusée.

Dans Windows, «Installation de session» SMB inclut le compte d'utilisateur, une fonction de hachage du mot de passe crypté et domaine d'ouverture de session. Un contrôleur de domaine examinera toutes ces informations pour déterminer si le client dispose des autorisations terminer la commande NET USE.

Algorithmes

Un ordinateur client Windows envoie la commande suivante à un serveur:
   NET USE x: \\server\share
		
Windows client envoie un SMB de «Session du programme d'installation» qui contient son domaine de connexion, le compte d'utilisateur et le mot de passe.

Le serveur examine le nom de domaine ou nom de l'ordinateur qui a été spécifié par le SMB. Si le nom est le nom du serveur, l'algorithme suivant est exécuté :
    It checks its own domain database or computer database for
        a matching account.
    If it finds a matching account then
        The SMB password is compared to the domain database password or the computer database password.
        If  the password matches then
            The command completed successfully.
        If  the password does NOT match then
            The user is prompted for a password.
                The password is retested as above.
            System error 1326 has occurred. Logon failure: unknown
            user name or bad password.
        End
    If  it does NOT find the account in the domain Security Accounts Manager (SAM) database or computer SAM database then
        Guest permissions are tested.
        If  the guest account is enabled
            The command completed successfully.
        If  the guest account is disabled
            (* See Note a).
            The user is prompted for a password.
            System error 1326 has occurred. Logon failure:
                unknown user name or bad password.
        End
		
si le domaine spécifié dans SMB est celui qui approuve le serveur, l'algorithme suivant est exécuté :
    The server will do pass-through authentication. The
        network logon request will be sent to a server that has a domain controller role in the
        specified trusted domain.
		
Si un canal sécurisé n'est pas configuré, l'algorithme suivant est exécuté :
The trusted domain controller checks its own domain database
        for a matching account.
    If the trusted domain controller finds a matching account, then
       NOT for Windows 2000 and later versions:
    It determines whether the account is a local or global account.
       If the account is local, then
           Guest permissions on the original server are tested.
           If the guest account is enabled
               The command completed successfully.
           If the guest account is disabled
               (* See Note a) The user is prompted for a password.
               System error 1326 has occurred. Logon failure:
               unknown user name or bad password.
        End
        If the account is global (the only option for Active Directory)
           The SMB password is compared to the domain database
               password.
           If  the password matches, then
               The command completed successfully.
               (* See Note b)
           If  the password does NOT match, then
               The user is prompted for a password.
                   The password is retested as above.
               System error 1326 has occurred. Logon failure:
               unknown user name or bad password.
       End
    If the trusted domain controller does NOT find the account in the trusted domain controller
           database, then
       Guest permissions are tested on the original server, not the trusted domain.  (* See Note c)
       If  the guest account is enabled
           The user will have original server guest access.
           The command completed successfully.
       If  the guest account is disabled
           (* See Note a) The user is prompted for a password.
           System error 1326 has occurred. Logon failure:
           unknown user name or bad password.
    End
si le domaine spécifié dans SMB est inconnu par le serveur, par exemple, si un domaine a été spécifié mais n'a pas été reconnu par le serveur comme un domaine approuvé ou son contrôleur de domaine, l'algorithme suivant est exécuté :
    It  will check its own account database for
        a matching account
    If  the server finds a matching account, then
        The SMB password is compared to the domain database password or the computer database password.
        If  the password matches, then
            The command completed successfully.
        If  the password does NOT match, then
            The user is prompted for a password.
                The password is retested as above.
            System error 1326 has occurred. Logon failure: unknown
            user name or bad password.
    End
    If  it does NOT find the account in the domain database then
        guest permissions are tested.
        If  the guest account is enabled
            The command completed successfully.
        If  the guest account is disabled
            System error 1326 has occurred. Logon failure:
            unknown user name or bad password.
    End
		
si le domaine spécifié dans SMB est NULL, c'est-à-dire, aucun domaine n'est spécifié, l'algorithme suivant est exécuté :
    The server will treat this a local network logon. The server
        will test for a matching account in its own database.
    If  it finds a matching account, then
        The SMB password is compared to the SAM database password.
        If  the password matches, then
            The command completed successfully.
        If  the password does NOT match, then
            The user is prompted for a password.
                The password is retested as above.
            System error 1326 has occurred. Logon failure: unknown
            user name or bad password.
    End
    If  it does NOT find the account in the local SAM database AND
      LsaLookupRestrictIsolatedNameLevel=0, then (* See Note d)
        The server will simultaneously ask each domain that it trusts whether it has account that
            matches the SMB account.
        The first trusted domain to reply is sent a request to
            perform pass-through authentication of the client
            information.
        The trusted domain will look in its own database.
        If  an account that matches the SMB account is found, then
            The trusted domain determines whether the account is a local or global
                account.
           Not for Windows 2000 and later versions:
            If  the account is local then
                Guest permissions on the original server are tested.
                If  the guest account is enabled
                    The command completed successfully.
                If  the guest account is disabled
                The user will be prompted for a password.
                Regardless of what password is entered, the user will receive
                    "Error 5: Access has been denied."
            End
            If  the account is global (the only option for Active Directory)
                The password that was specified in the SMB is compared
                    to the SAM database password.
                If  the password matches, then
                    The command completed successfully.
                If  the password does NOT match, then
                    The user is prompted for a password.
                        The password is retested as above.
                    System error 1326 has occurred. Logon failure:
                    unknown user name or bad password.
            End
    If  no trusted domains respond to the request to identify the
        account, then
        Guest permissions are tested on the original server,
            not the trusted server.
        If  the guest account is enabled
            The command completed successfully.
        If  the guest account is disabled
            System error 1326 has occurred. Logon failure:
            unknown user name or bad password.
    End
		

Notes

  1. Si le compte Invité est désactivé et que l'utilisateur ne dispose pas d'un compte, le serveur demande toujours un mot de passe. Bien qu'aucun mot de passe répond à ses besoins, le serveur demande toujours un mot de passe par mesure de sécurité. Cette mesure de sécurité garantit qu'un utilisateur non autorisé ne peut pas faire la différence entre un cas où un compte existe et lorsque le compte n'existe pas. L'utilisateur est toujours invité à entrer un mot de passe, indépendamment de si le compte existe.
  2. À ce stade, les informations suivantes sont renvoyées à partir du domaine approuvé dans la réponse : SID de domaine, ID d'utilisateur, les appartenances de groupes globaux, temps d'ouverture de session, déconnexion, KickOffTime, nom complet, LastSet de mot de passe, mot de passe peuvent modifier indicateur, le mot de passe doit modifier indicateur, script utilisateur, chemin du profil, répertoire de base et nombre de mot de passe incorrect.
  3. Si aucun compte n'est trouvée sur le domaine approuvé, le système d'exploitation doit utiliser le compte Invité local pour garantir un comportement cohérent pour l'authentification par rapport au serveur.
  4. Pour plus d'informations sur la façon de restreindre la recherche de noms isolés dans les domaines approuvés externes à l'aide de l'entrée de Registre LsaLookupRestrictIsolatedNameLevel, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la base de connaissances Microsoft :
    818024  (http://support.microsoft.com/kb/818024/ ) Comment limiter la recherche de noms isolés dans les domaines approuvés externes à l'aide de l'entrée de Registre LsaLookupRestrictIsolatedNameLevel
  • Comptes invités sur des domaines approuvés ne seront plus disponibles.
  • Le processus réel, interne est plus complexe que les algorithmes qui sont décrites ici.
  • Ces algorithmes ne traitent pas les mécanismes d'authentification pass-through. Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la base de connaissances Microsoft :
    102716  (http://support.microsoft.com/kb/102716/ ) L'authentification utilisateur NTLM dans Windows
  • Ces algorithmes ne traitent pas le processus de cryptage de mot de passe est utilisé dans Windows Server 2003, Windows XP et Windows 2000. Un objet binaire volumineux (BLOB) dérivé à partir d'un hachage unidirectionnel du mot de passe est envoyé dans le cadre de la demande d'authentification. Le contenu de ce BLOB varient selon le protocole d'authentification choisi pour l'ouverture de session.
  • Cet article ne traite pas le fonctionnement interne du module d'authentification Microsoft.
  • Ces algorithmes supposent que le compte invité, lorsqu'elle est activée, ne dispose d'aucun mot de passe. Par défaut, le compte invité n'a pas de mot de passe dans Windows Server 2003, Windows XP et Windows 2000. Si un mot de passe du compte Invité est spécifié, le mot de passe utilisateur est envoyé dans SMB doit correspondre à ce mot de passe du compte invité.

Exemples

Voici des exemples de ces algorithmes dans action.

Exemple 1

Vous avez ouvert une session l'ordinateur en utilisant le même nom de compte et le mot de passe qui se trouve dans la base de données du compte de domaine SCRATCH DOMAIN. Lorsque vous exécutez la commande NET USE \\SCRATCH pour le contrôleur de domaine pour le domaine SCRATCH DOMAIN, la commande est exécutée avec succès. Lorsque vous exécutez la commande NET USE \\NET pour le contrôleur de domaine qui approuve le domaine SCRATCH le domaine, vous recevez le message d'erreur suivantes :
Système erreur 1326 s'est produite. Échec d'ouverture de session : nom d'utilisateur inconnu ou mauvais mot de passe.
Le compte \SCRATCH-DOMAIN\USER1 dispose des autorisations sur \\NET.

Remarque Cet exemple suppose que les configurations suivantes.

Configurations

Ordinateur disposant d'une autorité de sécurité locale :
  -Login account: USER1
  -Password:      PSW1
  -Login Domain:  LOCAL1
		
contrôleur de domaine Active Directory :
  -Server Name: NET</WWITEM>
  -Domain:      NET-DOMAIN</WWITEM>
  -Trust:       NET-DOMAIN Trust SCRATCH-DOMAIN (Therefore,
                accounts on SCRATCH-DOMAIN can be granted permissions 
                in the NET- DOMAIN).
		
Le domaine NET DOMAIN :
  • La base de données du compte de domaine pour le domaine NET DOMAIN ne contient-elle pas un compte pour User1.
  • Le compte Invité est désactivé.
Windows Server 2003 :
  -Server Name:                       SCRATCH
  -Domain:                            SCRATCH-DOMAIN
  -Domain Database contains account:  USER1
  -Domain Database contains password: PSW1
		
dans cet exemple, l'ordinateur est connecté à son domaine local, pas sur le domaine SCRATCH DOMAIN où réside le compte de domaine de l'ordinateur.

Exemple 2

Lorsque vous exécutez la commande NET USE x: \\NET\share, les étapes suivantes se produisent :
  1. L'ordinateur envoie les opérations suivantes dans le SMB «Programme d'installation de la session» :
    compte = "USER1"
    mot de passe = "PSW1"
    domaine = "LOCAL1"
  2. Le serveur \\NET reçoit le SMB et regardé le nom du compte.
  3. Le serveur examine sa base de données du compte de domaine local et ne trouve pas de correspondance.
  4. Le serveur examine ensuite le nom de domaine SMB.
  5. Le serveur n'approuve pas «LOCAL1», afin que le serveur ne vérifie pas ses domaines approuvés.
  6. Le serveur vérifie son compte d'invité.
  7. Le compte Invité est désactivé afin que la «erreur système 1326 s'est produite. Échec d'ouverture de session : nom d'utilisateur inconnu ou mauvais mot de passe. "message d'erreur est généré.

Exemple 3

Lorsque vous exécutez la commande NET USE x: \\SCRATCH\share, les étapes suivantes se produisent :
  1. L'ordinateur envoie les opérations suivantes dans le SMB «Programme d'installation de la session» :
    compte = "USER1"
    mot de passe = "PSW1"
    domaine = "LOCAL1"
  2. Le serveur \\SCRATCH reçoit le SMB et examine le nom du compte.
  3. Le serveur examine sa base de données du compte de domaine local et trouve une correspondance.
  4. Le serveur compare ensuite le mot de passe SMB pour le mot de passe du compte de domaine.
  5. Les mots de passe correspondent. Par conséquent, le message «Commande terminée correctement» est généré.
Dans l'exemple 2 et 3 de l'exemple, la relation d'approbation n'est pas disponible. Si l'ordinateur avait été connecté au domaine SCRATCH DOMAIN, la commande NET USE x: \\NET\share aurait réussie.

La solution idéale consiste à faire que tous les journaux d'ordinateurs à un domaine. Pour vous connecter, l'utilisateur doit spécifier le domaine, le compte et le mot de passe. Après cela, toutes les NET USE-commandes de type va passer les informations de domaine, le compte et mot de passe correctes. Les administrateurs doivent tenter d'éviter les comptes dupliqués sur les ordinateurs et plusieurs domaines. Les ordinateurs Windows 2000 et Windows Server 2003, Windows XP évitent cette configuration en utilisant des approbations entre domaines et à l'aide de membres peuvent utiliser les bases de données de domaine.

Solution de contournement

Il existe une solution de contournement qui peut être utilisée dans ces cas. À partir de l'ordinateur, vous pourriez exécuter la commande suivante :
NET USE X:\\NET\SHARE /USER:SCRATCH-DOMAIN\USER1 PSW1
Dans cette commande, le suivi est vraie :
  - \\NET = The computer name of the domain controller being accessed.
  - \SHARE = The share name.
  - /USER: command line parameter that lets you specify the domain,
    account and password that should be specified in the "Session Setup"
    SMB.
  - SCRATCH-DOMAIN = Domain name of the domain where the user
    account resides.
  - \USER1 = account to be validated against.
  - PSW1 = password that matches account on the domain.
		
Pour plus d'informations sur cette commande, tapez ce qui suit à l'invite de commande :
NET USE / ?

Noms de domaine NULL

Le SMB Microsoft client qui est inclus dans Windows Server 2003, Windows XP et Windows 2000 envoie les noms de domaine de valeur NULL dans le "session le programme d'installation de [x 73] SMB «SMB. Le client Microsoft gère le nom de domaine en spécifiant le nom de domaine d'ouverture de session et en envoyant un caractère NULL si le nom de domaine n'est pas spécifié dans la commande NET USE. Le client SMB de Microsoft présenteront également le comportement décrit dans l'exemple 1.

Notes

  • Le nom de domaine par défaut est spécifié dans le fichier LANMAN.ini sur le "DOMAIN =" ligne. Cela peut être substituée par la / DOMAIN : commutateur avec la commande NET LOGON.
  • Il existe généralement deux représentations pour «NULL» dans le SMB : nom de domaine de longueur nulle et un nom de domaine sur un octet qui est constituée par le caractère point d'interrogation (?). Le serveur SMB intercepte le point d'interrogation et traduit en NULL avant de passer à l'autorité de sécurité locale (LSA, Local Security Authority).

Résolution des problèmes

Une bonne astuce pour résoudre des problèmes d'accès réseau consiste à activer l'audit en procédant comme suit.

Windows 2000 et versions ultérieures de contrôleurs de domaine Windows 2000

  1. À partir des outils d'administration sur un contrôleur de domaine, démarrez utilisateurs et ordinateurs.
  2. Cliquez avec le bouton droit sur l'Unité d'organisation contrôleurs de domaine, puis cliquez sur Propriétés.
  3. Sous l'onglet Stratégie de groupe, double-cliquez sur Stratégie de contrôleur de domaine par défaut.
  4. Dans l'éditeur de stratégie, cliquez sur Paramètres de l'ordinateur, cliquez sur Paramètres Windows, cliquez sur Paramètres de sécurité, cliquez sur Stratégies locales, puis cliquez sur Stratégie d'audit.
  5. Sélectionner l' ouverture et de compte d'ouverture de session réussite etÉchec de l'option.

Paramètres de domaine pour les serveurs Windows 2000 et les membres

  1. À partir des outils d'administration sur un contrôleur de domaine, démarrez utilisateurs et ordinateurs.
  2. Cliquez avec le bouton droit sur le nom de domaine, puis cliquez sur Propriétés.
  3. Sous l'onglet Stratégie de groupe, double-cliquez sur Stratégie de domaine par défaut.
  4. Dans l'éditeur de stratégie, cliquez sur Paramètres de l'ordinateur, cliquez sur Paramètres Windows, cliquez sur Paramètres de sécurité, cliquez sur Stratégies locales, puis cliquez sur Stratégie d'audit.
  5. Sélectionner l' ouverture et de compte d'ouverture de session réussite etÉchec de l'option.

Paramètres locaux pour les serveurs Windows 2000 et les membres

  1. À partir d'Outils d'administration, démarrez sécurité local de stratégie.
  2. Ouvrez la stratégie d'audit.
  3. Sélectionner l' ouverture et de compte d'ouverture de session réussite etÉchec de l'option.
Désormais, chaque fois qu'un utilisateur réseau accède à distance, à ce serveur un code de traçage sera enregistré dans l'Observateur d'événements. Pour afficher ces événements dans l'Observateur d'événements, cliquez sur la sécurité dans le menu journal.

Pour plus d'informations sur les relations d'approbation, l'authentification directe, les autorisations utilisateur et domaine connexions, consultez «La présentation technique de Windows Server 2003 Security Services». Pour cela, reportez-vous au site Web de Microsoft à l'adresse suivante :
http://www.microsoft.com/windowsserver2003/techinfo/overview/security.mspx (http://www.microsoft.com/windowsserver2003/techinfo/overview/security.mspx)

Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
  • Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
  • Microsoft Windows Server 2003, Web Edition
  • Microsoft Windows XP Professional
  • Microsoft Windows 2000 Professionnel
  • Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Advanced Server
Mots-clés : 
kbmt kbnetwork KB103390 KbMtfr
Traduction automatiqueTraduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d?articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d?avoir accès, dans votre propre langue, à l?ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s?exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s?efforce aussi continuellement de faire évoluer son système de traduction automatique.
La version anglaise de cet article est la suivante: 103390  (http://support.microsoft.com/kb/103390/en-us/ )
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.