Our framework consists of two components, a policy language and the Generic Authorization and Access-control API.
The language allows us to represent existing access control models (e.g. ACL, capability, lattice-based access controls) in a uniform and consistent manner. Authorization restrictions allow the administrator to define which operations are allowed, and under what conditions (e.g., user identity, group membership, or time of day). These restrictions may implement application-specific policies.
A common access control API facilitates the application integration of authentication and authorization. This API allows applications to request the authorization policy information for a particular resource and to evaluate this policy against credentials carried in the security context for the current connections. Applications invoke the GAA API functions to determine if a requested operation or set of operations was authorized or if additional checks are necessary.