Network Access Validation Algorithm and ExampleLast reviewed: March 25, 1997Article ID: Q103390 |
The information in this article applies to:
The following is a simplified algorithm that explains how Windows NT Advanced Server account validation is observed to function during network access. This discussion does not cover the internal workings of this process. With this information, you can predict Windows NT network logon behavior under deterministic conditions. Keep in mind when following this article that the local database is the ONLY database on a domain controller. But on the other server and all workstations the local database is different than the domain controller. NOTE: All references to Windows NT Advanced Server in this article also include Windows NT Server.
Background InformationWhen two Microsoft network systems communicate over a network, they use a high-level protocol called server message block (SMB). These commands are embedded within the transport protocols like NetBEUI or TCP/IP. When a client carries out a NET USE command, it sends out a "SMB Session Setup and X" frame. In Windows NT, the Session Setup SMB includes the user account, a function of the encrypted password and login domain. An Advanced Server will look at all of this information to determine if the client has permissions to complete the NET USE command.
AlgorithmWindows NT workstation sends the following command to an Advanced Server:
NET USE x: \\server\shareThe Windows NT client sends a Session Setup SMB that contains its Login Domain, User Account and Password.The Advanced Server checks the SMB specified Domain name If the domain is the Advanced Server's own Domain then It checks its own Domain SAM[Security Account Manager]database for a matching account. If it finds a matching account then The SMB password is compared to the Domain Database password. If the password matches then The Command Completed Successfully. If the password does NOT match then User is prompted for a password. It 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 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. User is prompted for a password. System error 1326 has occurred. Logon failure: unknown user name or bad password. EndIf the Domain specified in the SMB is one that the Advanced Server TRUSTS then The Advanced Server will do pass through authentication. The network logon request will be sent to an Advanced Server in the specified Trusted Domain. The Trusted Domain Advanced Server checks its own Domain database for a matching account. If it finds a matching account then It looks to see if 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. 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 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 User is prompted for a password. It 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 Trusted domain database then Guest permissions are tested on the ORIGINAL Advanced Server -NOT the Trusted Advanced Server. * See Note C. If the Guest account is Enabled User will have original server guest access. The Command Completed Successfully. If the Guest account is Disabled * See Note A. User is prompted for a password. System error 1326 has occurred. Logon failure: unknown user name or bad password. EndIf the Domain specified in the SMB is UNKNOWN by the Advanced Server. [A Domain was specified but it was not recognized by the Server as a Trusted Domain or its own.] It will check its own Domain Account Database for a matching account If the Advanced Server finds a matching account then The SMB password is compared to the Domain 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. It 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. EndIf the Domain specified in the SMB is NULL [None specified] then The Advanced Server will treat this a local network logon. It will check for a matching account in its own SAM 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. It 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 then The Advanced Server will Simultaneously ask another Advanced Server in each Domain that it Trusts if it has account that matches the SMB account. The first Trusted Advanced Server to reply is sent a request to perform pass through authentication of the client information. The Trusted Advanced Server will look in its own SAM Database. If an account that matches the SMB account is found then It looks to see if 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 The user will be prompted for a password. No matter what password is entered, user will receive "Error 5: Access has been denied." End If the Account is Global The password 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. It is retested as above. System error 1326 has occurred. Logon failure: unknown user name or bad password. End If no Trusted Domains respond to request to identify the account then Guest permissions are tested on the Original Advanced 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
authentication and msv
authentication and msv A function of the One Way Encrypted password is sent.
ExampleThe following are examples of this algorithm in action: I am logged on to my Windows NT workstation local computer. I am using the same account name and password that is in SCRATCH-DOMAIN Advanced Server Domain account database. When I carry out the NET USE \\SCRATCH (Domain Controller for SCRATCH-DOMAIN) command, the command completes successfully. When I carry out the NET USE \\NET (Controller that Trust SCRATCH-DOMAIN) command. I receive the error message "System error 1326 has occurred. Logon failure: unknown user name or bad password." My account \SCRATCH-DOMAIN\USER1 has permissions on \\NET? What is the problem?
ConfigurationsWindows NT workstation:
AnswerIn this example, the Windows NT workstation is logged on to its local workstation domain--not the Advanced Server SCRATCH-DOMAIN where its domain account resides. NET USE x: \\NET\share
The real answer here is to have all workstations log on to an Advanced Server domain. In order to login, the user must specify their correct domain, account, and password. After this is done, all NET USE type commands will pass the correct domain, account, and password. Administrators should try and avoid duplicate accounts on both Windows NT workstations and multiple Advanced Server domains.
USER: WorkaroundThere is one workaround that can be used in these cases. From the Windows NT workstation, you could carry out the following command
NET USE X: \\NET\SHARE /USER:SCRATCH-DOMAIN\USER1 PSW1where
- \\NET = The computer name of the Advanced Server 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 Advanced Server where the user account resides. - \USER1 = account to be validated against. - PSW1 = password that matches account on the domain.For more information, type the following at a Windows NT command prompt:
NET USE /? NULL Domain NamesIn addition to Windows for Workgroups 3.1, other Microsoft network clients also send NULL Domain Names in the Session Setup SMB [x73]. They will also exhibit the behavior described above in the example problem. The following is a table of how each client handles the Domain Name.
MS Network Domain Name Client Specified
Windows for Workgroups 3.1 NULL Windows for Workgroups 3.11 Logon domain name.MS OS/2 LAN Manager 2.0, 2.1, and 2.2 NULL MS-DOS LAN Manager 2.0 NULL MS-DOS LAN Manager 2.1 & 2.2 Logon domain name. * See Note below.(Including Windows on MS-DOS)
Windows NT 3.1 Logon domain name. NotesThe default domain name is specified in the LANMAN.INI file on the "DOMAIN =" line. This can be overridden by the /DOMAIN: switch with the NET LOGON command. There are typically two representations for "NULL" in the SMB: A zero-length domain name and a one-byte domain name consisting of the character '?'. The Windows NT SMB server catches the '?' and translates it to NULL before passing it to the local security authority (LSA).
TroubleshootingA good tip for troubleshooting network access problems is to enable auditing by doing the following:
For information on trust relationships, pass-through authentication, user permissions, and domain logins, please see your Windows NT Advanced Server "Concepts and Planning" guide or query on the following words in the Microsoft Knowledge Base:
authentication and pass-through |
Additional query words: wfw wfwg prodnt
© 1998 Microsoft Corporation. All rights reserved. Terms of Use. |