Access token


Access token

In Microsoft Windows operating systems, an access token contains the security information for a login session and identifies the user, the user's groups, and the user's privileges.

Overview

An "access token" is as an object encapsulating the security descriptor of a process.cite web | url = http://msdn2.microsoft.com/en-us/library/Aa374909.aspx | title = Access Tokens | publisher = MSDN | accessdate = 2007-10-08] Attached to a process, a security descriptor identifies the owner of the object (in this case, the process) and ACLs that specifies accessing rights allowed or denied to the owner of the object. [cite web | url = http://msdn2.microsoft.com/en-us/library/aa379563.aspx | title = Security Descriptors | accessdate = 2007-10-08] [cite web | url = http://msdn2.microsoft.com/en-us/library/aa379557.aspx | title = Securable Objects | accessdate = 2007-10-08] While a token is used to represent only the security information, it is technically free-form and can enclose any data. The Access token is used by Windows when the process or thread tries to interact with objects whose security descriptors enforce access control ("securable objects"). An access token is represented by the system object of type Token Because a token is a regular system object, access to a token itself can be controlled by attaching a security descriptor, but it is generally never done in practice.

The Access token is generated by the logon service when a user logs on to the system and the credentials provided by the user is authenticated against the authentication database, by specifying the rights the user has in the security descriptor enclosed by the token. The token is attached to every process created by the user session (processes whose owner is the user). Whenever such a process accesses any resource which has access control enabled, Windows looks up in the security descriptor in the access token whether the user owning the process is eligible to access the data, and if so, what operations (read, write/modify etc) the user is allowed to do. If the accessing operation is allowed in the context of the user, Windows allows the process to continue with the operation, else it is denied access.

Types of tokens

There are two types of tokens:;Primary token: Primary tokens can only be associated to processes, and they represent a process's security subject. The creation of primary tokens and their association to processes are both privileged operations, requiring two different privileges in the name of privilege separation - the typical scenario sees the authentication service creating the token, and a logon service associating it to the user's operating system shell. Processes initially inherit a copy of the parent process's primary token. Impersonation tokens can only be associated to threads, and they represent a "client" process's security subject. Impersonation tokens are usually created and associated to the current thread implicitly, by IPC mechanisms such as DCE RPC, DDE and named pipes.

;Impersonation token: Impersonation is a security concept unique to Windows NT, that allows a server application to temporarily "be" the client in terms of access to secure objects. Impersonation has three possible levels: "identification", letting the server inspect the client's identity, "impersonation", letting the server act on behalf of the client, and "delegation", same as impersonation but extended to remote systems to which the server connects (through the preservation of credentials). The client can choose the maximum impersonation level (if any) available to the server as a connection parameter. Delegation and impersonation are privileged operations (impersonation initially wasn't, but historical carelessness in the implementation of client APIs failing to restrict the default level to "identification", letting an unprivileged server impersonate an unwilling privileged client, called for it).

Contents of a token

A token is composed of various fields, including but not limited to:
* an identifier.
* the identifier of the associated logon session. The session is maintained by the authentication service, and is populated by the authentication packages with a collection of all the information (credentials) the user provided when logging in. Credentials are used to access remote systems without the need for the user to re-authenticate (single sign-on), provided that all the systems involved share an authentication authority (e.g. a Kerberos ticket server)
* the user identifier. This field is the most important and it's strictly read-only.
* the identifiers of groups the user (or, more precisely, the subject) is part of. Group identifiers cannot be deleted, but they can be disabled. At most one of the groups is designated as the "session id", a volatile group representing the logon session, allowing access to volatile objects associated to the session, such as the display.
* the restricting group identifiers (optional). This additional set of groups doesn't grant additional access, but further restricts it: access to an object is only allowed if it's allowed "also" to one of these groups. Restricting groups cannot be deleted nor disabled. Restricting groups are a recent addition, and they are used in the implementation of sandboxes.
* the privileges, i.e. special capabilities the user has. Most privileges are disabled by default, to prevent damage from non-security-conscious programs. Starting in Windows XP Service Pack 2 and Windows Server 2003 privileges can be permanently removed from a token by a call to AdjustTokenPrivileges() with the SE_PRIVILEGE_REMOVED attribute.
* the default owner, primary group and ACL for objects created by the subject associated to the token.

References


Wikimedia Foundation. 2010.

Look at other dictionaries:

  • access token —    In Microsoft Windows 2000, an object that contains the security identifier (SID) of a running process. When a process is started by another process, the second process inherits the starting process s access token. This access token is then… …   Dictionary of networking

  • access token — prieigos raktas statusas T sritis informatika apibrėžtis Duomenų rinkinys, kuriame yra informacija apie asmenį, besikreipiantį į sistemą, ir apie jo ↑prieigos teises. atitikmenys: angl. access key; access token; token ryšiai: dar žiūrėk –… …   Enciklopedinis kompiuterijos žodynas

  • access token — prieigos raktas statusas T sritis informatika apibrėžtis Nedidelis įtaisas, pagal kurį sistema atpažįsta jo savininką ir suteikia jam leidžiamas ↑prieigos teises. Įkišamas į sistemos aparatinės įrangos lizdą. Gali turėti įmontuotą… …   Enciklopedinis kompiuterijos žodynas

  • access token — noun an object that describes the security context of a process or thread, such as the users identity and privileges …   Wiktionary

  • Token — may refer to:* Token (railway signalling), a physical object given to a locomotive driver to authorize him to use a particular stretch of single railway track * Token coin, a piece of metal or other composition used as a substitute for currency;… …   Wikipedia

  • token — prieigos raktas statusas T sritis informatika apibrėžtis Duomenų rinkinys, kuriame yra informacija apie asmenį, besikreipiantį į sistemą, ir apie jo ↑prieigos teises. atitikmenys: angl. access key; access token; token ryšiai: dar žiūrėk –… …   Enciklopedinis kompiuterijos žodynas

  • token — prieigos raktas statusas T sritis informatika apibrėžtis Nedidelis įtaisas, pagal kurį sistema atpažįsta jo savininką ir suteikia jam leidžiamas ↑prieigos teises. Įkišamas į sistemos aparatinės įrangos lizdą. Gali turėti įmontuotą… …   Enciklopedinis kompiuterijos žodynas

  • access key — prieigos raktas statusas T sritis informatika apibrėžtis Duomenų rinkinys, kuriame yra informacija apie asmenį, besikreipiantį į sistemą, ir apie jo ↑prieigos teises. atitikmenys: angl. access key; access token; token ryšiai: dar žiūrėk –… …   Enciklopedinis kompiuterijos žodynas

  • access key — prieigos raktas statusas T sritis informatika apibrėžtis Nedidelis įtaisas, pagal kurį sistema atpažįsta jo savininką ir suteikia jam leidžiamas ↑prieigos teises. Įkišamas į sistemos aparatinės įrangos lizdą. Gali turėti įmontuotą… …   Enciklopedinis kompiuterijos žodynas

  • Token-Ring — im TCP/IP‑Protokollstapel: Anwendung HTTP IMAP SMTP DNS … Transport TCP UDP …   Deutsch Wikipedia