INFO: Definition of a Protected Server (102447)
The information in this article applies to:
- Microsoft Win32 Application Programming Interface (API), when used with:
- the operating system: Microsoft Windows NT 3.1
- the operating system: Microsoft Windows NT 3.5
- the operating system: Microsoft Windows NT 4.0
- the operating system: Microsoft Windows 2000
- the operating system: Microsoft Windows XP
This article was previously published under Q102447 SUMMARY
The Win32 application programming interface (API) reference briefly
discusses creating a "protected server" that assigns security to private
objects. This article explains the concept of a protected server" and its
relationship to private objects.
MORE INFORMATION
A protected server is an application that provides services to clients.
These services could be as simple as saving and retrieving information from
a database while issuing security checks to verify that the client has
proper access.
A private object is an application-defined data structure that both the
client and server recognize. Private objects are not registered with nor
recognized by the Windows NT operating system; they are entirely
application-defined.
It is not uncommon for security to be assigned to private objects in a
protected server's database. For example, when a client asks the server to
create a new object in the database, the server could use the
CreatePrivateObjectSecurity() Win32 API to create a security descriptor
(SD) for the new private object. The server would then store the SD with
the private object in the database. It is important to note that there is
nothing in the SD that associates it with the private object. Instead, it
is up to the protected server to maintain that association in the private
object or in the database. It is likely that the private object and the
associated SD would be stored together in a single database record.
A protected server application is responsible for checking a client's
access before providing information. For example, when a client asks the
server to retrieve some data, the server would go out and locate the record
(which would contain the private object and SD) and bring a copy of the SD
into memory. It would then call the AccessCheck() Win32 API passing the SD,
the clients access token, and the desired access mask. AccessCheck() will
check the client's access against the object's SD to determine if access is
permitted. Depending on the result of AccessCheck(), the protected server
would either provide the requested information or deny access.
In conclusion, a protected server is an application that performs operations
on private objects that are entirely user defined. The protected server is
responsible for associating security descriptors to those objects and must
take the steps necessary to verify a client's access.
Modification Type: | Major | Last Reviewed: | 4/8/2004 |
---|
Keywords: | kbinfo kbKernBase kbProgramming kbSecurity KB102447 |
---|
|