Check out the new USENIX Web site. next up previous
Next: The Role of Middleware Up: The Necessity for Middleware Previous: The Necessity for Middleware

Identification, Authentication and Authorization

A key component in a distributed, client-server-based network is the ability to reliably and consistently identify users. It is extremely desirable (at least from a user's perspective) if there is a single identifier that universally identifies them throughout the enterprise. This latter goal has typically been very difficult to implement because, in a heterogenous network, servers and/or services may have different requirements for an identifier. In addition, in larger enterprises, the network may be composed of several administrative subdomains making consistency an administrative challenge at the very least. Ideally, there should be a single external identifier(user id) and some means of mapping that identifier, if necessary, to an internal, invariant identifier. This solves the problem of the heterogenous environment and permits the user id to be changed by the user without affecting the internal identifier.

Once we have the means to identify users the next challenge is to verify that the identity presented is being used by the person it is assigned to. This is authentication; the process of identification verification. Traditionally, authentication has been accomplished by the use of an identifier and password pair. The user id uniquely identifies the user to the system and the password can be used to verify the identity of the user. As with the identifier, it is desirable to have a single password that can authenticate the identifier throughout the enterprise. It is also important that every effort is made to insure that the use of the password on the network is secure from ``snooping'' and other attacks.

Most discussions stop at this point; we have an identifier and the means to authenticate the use of that identifier. However, in our idyllic world, with a single identifier and password for every user available to every server on the network, how do we determine whether to allow access to a service? Traditionally, authorization is implied by a valid identifier and password as in a Unix login. If a user can login to the server they have access to whatever services are available on that server. In the network-computing model, this is no longer enough. We have to be able to determine whether a valid identifier is authorized to access a service. Thus, a complete solution is only possible when we have all three capabilities; identification, authentication, and authorization.


next up previous
Next: The Role of Middleware Up: The Necessity for Middleware Previous: The Necessity for Middleware
ker_DAP@ndsu.nodak.edu