The Microsoft Windows NT Unified Logon allows the client to log on one time to the system and use the Windows NT security system to authenticate the user for network and application resources. One objective of the Windows NT security model is to ensure that the programs that a user runs have no more access to objects than the user does. When a program or process runs on the user's behalf, it is said to be running in the security context of that user. The security context controls what access the subject has to objects or system services. Generally, when a subject calls an object service through a protected subsystem, the subject's token is used within the service to determine who made the call and to decide whether the caller has sufficient access authority to perform the requested action.
Windows NT allows one process to take on the security attributes of another through a technique called impersonation. For example, a server process typically impersonates a client process to complete a task involving objects to which the server does not normally have access. Impersonation is useful in a distributed computing environment when servers must pass client requests to other server processes or to the operating system. In this case, a server impersonates the client's security context. Other server processes can then handle the request as if it had been made by the original client.
Most Windows NT communication mechanisms, such as RPCs and named pipes, support the Unified Logon paradigm using the object's security context. Others, such as Windows Sockets, do not support the transference of security. Additional APIs for impersonation were introduced with Windows NT version 3.51.
For more information about communications techniques in a secure environment, see the "Windows Base Services" section of the Microsoft Platform SDK.