Next: Integration with alternative authentication
Up: An Extended Example
Previous: Conditions
Here we present an authorization scenario to demonstrate the use of
the authorization framework for the case of printing a document.
Assume Kerberos V5 is used for principal authentication. Assume that
printer ps12a has the following ordered EACL shown in Table 2.
stored in the Printer Manager authorization database.
Table 2.
Let's consider a request from user Tom who is connecting from the
ORG.EDU domain to print a document on the printer ps12a at 7:30 PM.
When a client process running on behalf of the user
contacts the Printer Manager with the request to submit_print_job to
printer ps12a, the Printer Manager first calls
gaa_get_object_policy_info to obtain a handle to the EACL of printer ps12a.
The upcall function for retrieving the EACL
for the specified object from the Authorization Database system is passed
to the GAA API and is called by gaa_get_object_policy_info,
which returns the EACL handle.
The Printer Manager must place the principal's authenticated
identity in the security context to pass into the
gaa_check_authorization function. This context may be
constructed according to the first or second scenario, described in Section
8.
If Tom is authenticated successfully, then verified identity
credentials are placed into the security context, specifying Tom as the
Kerberos principal tom@ORG.EDU.
Next, the Printer Manager calls the gaa_check_authorization function.
In evaluating the EACL, the first entry applies. It grants the
requested operation, but there two conditions that must be evaluated.
The first condition is generic and is evaluated
directly by the GAA API. Since, the request was issued at 7:30 PM
this condition is satisfied. The second condition is specific.
If the security context defined a condition evaluation function for upcall,
then this function is invoked and if this condition is met then the final answer
is YES (authorized) and detailed answer contains authorization expiration time : 8PM (assume that authentication credential has expiration time 9PM),
allowed operation submit_print_job and two conditions. Both conditions are marked as evaluated and met.
During the execution of the task the Printer Manager is enforcing
the limits imposed on the local resources and authorization time.
If the corresponding upcall function was not passed to the GAA
API, the answer is MAYBE and the second condition is marked as not evaluated
and must be checked by the Printer Manager.
When additional credentials are needed, if the security context defines a
credential retrieval function for the upcall, it is invoked.
If the requested credential is obtained, then the final answer is YES.
If the upcall function was not passed to the GAA API, the answer is NO.
Next: Integration with alternative authentication
Up: An Extended Example
Previous: Conditions
Tatyana Ryutov
2002-06-25