Package org.osid.authorization
The Open Service Interface Definitions for the org.osid.authorization service.
The Authorization OSID manages and queries authorizations.
Authorizations
An Authorization is an OsidRelationship that defines
who can do what to what. The grammar of an authorization incluides the
subject or the actor (who), the action or verb (do what), and the object or
context (to what). All three of these components must exist in an
authorization for it to have any explicit meaning. An Authorization
is a mapping among these three components.
-
Agent: the actor (eg: tom@coppeto.org) -
Function: the action (eg: create purchase order) -
Qualifier: the object or context within a Function (eg: on account 1967)
This tuple in essence defines a role. "Instructor" is not a role and is not suitable for making an authorization decision. "Instructs Physics 101", both the function and qualifier, defines the complete role (within the context of a particular college) that can be used for an authorization decision.
The basic service of the Authorization OSID is to provide a means for
asking whether a given Agent is authorized to perform a
Function with a Qualifier , in other words, if such a mapping
exists. The Agent will generally be obtained from an Authentication service
and the Function and Qualifier generally known to the
consuming application (a server process needing to protect some resource).
Example
Authentication auth = authNValidationSession.authenticate(creds); AuthorizationSession session = authZManager.getAuthorizationSession(); boolean authorized = session.isAuthorized(auth.getAgentId(), functionId, qualifierId);
The rest of the Authorization OSID is concerned with managing authorizations.
Explicit/Implicit Authorizations
Authorizations can be explcit or implcit. Explicit authorizations are
managed while implcit authorizations are derived from Resources ,
Function and Qualifier hierrachies. Examples of implcit
authorizations:
- The Authorization OSID can accept a
Resourcein lieu of anAgentas the actor so a Person, Group or Organization may be used to specify an authorization. In this case, the explicit authorization is the one containing theResourceand an implicit authorization exists for eachAgent. -
Qualifiersonly exist as Hierarchy Nodes since the Authorization OSID does not manage the objects used as qualifiers but may manage directly, or have access to, a Hierarchy service to obtain the identity and relationship among these objects. An explicit authorization for a givenQualifiercreates an implcit authorization for every child of thatQualifier.
The Authorization OSID manages Functions directly through its
owned defined sessions and exposes actors via the Resource OSID.
Qualifiers are only exposed through the Hierarchy service as the
Authorization service doesn't have anything to say about the objects
represented by the Qualifiers .
Vault Cataloging
Authorizations, Functions and Qualifiers may be organized
into one or many Vaults . This serves to categorize authorizatiion
data for the purpose of browsing or auditing. Vaults are
hierarchical where each node includes all the authorization data of its
children. A single root node will make available all known authorizations
and is a reasonable choice for a default Vault for a non-federated
aware consumer. A federated authorization scheme is one in which
Vaults are available for selection.
Notifications
Certain consumers may wish to be notified of changes within the
service. Authorization supports notifications via
AuthorizatioNotificationSession , FunctionNotificationSession and
VaultNotificationSession .
if (manager.supportsAuthorizationNotification()) {
AuthorizationNotificationSession ans = manager.getAuthorizationNotificationSession(receiver);
ans.registerForDeletedAuthorizations();
}
AuthorizationReceiver receiver {
newAuthorization(Authorization a) {print("authorization created");}
deletedAuthorization(Authorization a) {print("authorization removed");}
}
Sub Packages
The Authorization OSID includes an Authorization Rules OSID for
managing the effectiveness of Authorizations .
Copyright © 2002-2004, 2007-2008 Massachusetts Institute of Technology.
Copyright © 2009-2010 Ingenescus. All Rights Reserved.
This Work is being provided by the copyright holder(s) subject to the following license. By obtaining, using and/or copying this Work, you agree that you have read, understand, and will comply with the following terms and conditions.
Permission to use, copy and distribute unmodified versions of this Work, for any purpose, without fee or royalty is hereby granted, provided that you include the above copyright notices and the terms of this license on ALL copies of the Work or portions thereof.
You may modify or create Derivatives of this Work only for your internal purposes. You shall not distribute or transfer any such Derivative of this Work to any location or to any third party. For the purposes of this license, "Derivative" shall mean any derivative of the Work as defined in the United States Copyright Act of 1976, such as a translation or modification.
This Work and the information contained herein is provided on an "AS IS" basis WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE WORK OR THE USE OR OTHER DEALINGS IN THE WORK.
The export of software employing encryption technology may require a specific license from the United States Government. It is the responsibility of any person or organization contemplating export to obtain such a license before exporting this Work.
-
InterfacesClassDescriptionAn Authorization is a mapping among an actor, a
Functionand aQualifier.This session creates, updates, and deletesAuthorizations.An authorization condition.This is the form for creating and updatingAuthorizations.Like allOsidLists,AuthorizationListprovides a means for accessingAuthorizationelements sequentially either one at a time or many at a time.This session defines methods to search and retrieveAuthorizationmappings.The authorization manager provides access to authorization sessions and provides interoperability tests for various aspects of this service.This session defines methods to receive asynchronous notifications on adds/changes toAuthorizations.TheAuthorizationProfiledescribes the interoperability among authorization services.The authorization manager provides access to authorization sessions and provides interoperability tests for various aspects of this service.The query for authorizations.The query inspector for examining authorization queries.This session provides methods for searchingAuthorizationobjects.The authorization receiver is the consumer supplied interface for receiving notifications pertaining to new, updated or deletedAuthorizations.AuthorizationSearchdefines the interface for specifying authorization search options.An interface for specifying the ordering of search results.This interface provides a means to capture results of a search.This session provides methods for searchingAuthorizationobjects.This is the basic session for verifying authorizations.This session manages queries and sequencing to create "smart" dynamic catalogs.This session provides methods to re-assignAuthorizationstoVault.This session provides methods to retrieveAuthorizationtoVaultmappings.AFunctionrepresents an authenticatable identity.This session creates, updates, and deletesFunctions.This is the form for creating and updatingFunctions.Like allOsidLists,FunctionListprovides a means for accessingFunctionelements sequentially either one at a time or many at a time.This session provides methods for retrievingFunctionobjects.This session defines methods to receive asynchronous notifications on adds/changes toFunctionobjects.This is the query for searching functions.This is the query inspector for examining function queries.This session provides methods for searchingFunctionobjects.The function receiver is the consumer supplied interface for receiving notifications pertaining to new, updated or deletedFunctions.FunctionSearchdefines the interface for specifying function search options.An interface for specifying the ordering of search results.This interface provides a means to capture results of a search.This session provides methods for searchingFunctionobjects.This session manages queries and sequencing to create "smart" dynamic catalogs.This session provides methods to re-assignFunctionstoVaults.This session provides methods to retrieveFunctiontoVaultmappings.AQualifierrepresents an authenticatable identity.This session creates, updates, and deletesQualifiers.This is the form for creating and updatingQualifiers.This session defines methods for managing a hierarchy ofQualifierobjects.This session defines methods for traversing a hierarchy ofQualifierobjects.Like allOsidLists,QualifierListprovides a means for accessingQualifierelements sequentially either one at a time or many at a time.This session defines methods for retrieving qualifiers.This interface is a container for a partial hierarchy retrieval.Like allOsidLists,QualifierNodeListprovides a means for accessingQualifierNodeelements sequentially either one at a time or many at a time.This session defines methods to receive notifications on adds/changes toQualifierobjects in thisVault.This is the query for searching qualifiers.This is the query inspector for examining qualifiers queries.This session provides methods for searching amongQualifierobjects.The qualifier receiver is the consumer supplied interface for receiving notifications pertaining to new, updated or deletedQualifierobjects.QualifierSearchdefines the interface for specifying qualifier search options.An interface for specifying the ordering of search results.This interface provides a means to capture results of a search.This session provides methods for searching amongQualifierobjects.This session manages queries and sequencing to create "smart" dynamic catalogs.This session provides methods to re-assignQualifierstoVaults.This session provides methods to retrieveQualifiertoVaultmappings.A vault defines a collection of authorizations and functions.This session creates, updates, and deletesVaults.This is the form for creating and updating vaults.This session defines methods for managing a hierarchy ofVaultobjects.This session defines methods for traversing a hierarchy ofVaultobjects.Like allOsidLists,VaultListprovides a means for accessingVaultelements sequentially either one at a time or many at a time.This session provides methods for retrievingVaultobjects.This interface is a container for a partial hierarchy retrieval.Like allOsidLists,VaultNodeListprovides a means for accessingVaultNodeelements sequentially either one at a time or many at a time.This session defines methods to receive notifications on adds/changes toVaultobjects.This is the query for searching vaults.This is the query inspector for examining vault queries.This session provides methods for searching amongVaultobjects.The vault receiver is the consumer supplied interface for receiving notifications pertaining to new, updated or deletedVaultobjects.The interface for governing vault searches.An interface for specifying the ordering of search results.This interface provides a means to capture results of a search.This session provides methods for searching amongVaultobjects.