Overview of CHARON Architecture

Technical Baseline

The solution presented is based on work performed by the Organization for the Advancement of Structured Information Standards ( OASIS). The generic access control pattern presented in several OASIS standards related to security is the basis of ongoing work in OGC and similar working groups and research organizations. The ORCHESTRA project ( ORCHESTRA) has provided an initial Access Control Service Architecture that contributed vital ideas. An analysis of existing deficiencies resulted in the work presented here.

Abstract access control pattern

The CHARON Architecture realizes access control according to an abstract access control pattern. This pattern has been introduced as a data-flow diagram in the OASIS standard of the eXtensible Access Control Markup Language ( XACML (OASIS 2005) ) and applied, among other places, in the OGC Geospatial Digital Rights Management Reference Model ( GEO-RM (OGC 2006) ). It seizes on general ideas of policies as the basic mechanism to support the governance of service-oriented architectures. In ( SOA-RM 2006 ) a policy is defined as "the representation of a constraint or condition on the use, deployment, or description of an owned entity as defined by any participant". The abstract access control pattern explains a controlled call of a service operation request. It assumes that the rules that express the constraints and conditions defining "who may access which resource using which action" are recorded in an access control policy statement of the service. The access control pattern uses the following components:

  • The Subject is the requestor of the service operation. It represents the acting entity (e.g. user).
  • The Identity Provider (IdP) issues a ticket as proof of successful provision of a subject's credentials.
  • The Authentication Provider (AP) has the task of verifying issued tickets.
  • The Policy Enforcement Point (PEP) receives a service operation request, enforces the access control policy of the service and forwards the service operation request to the protected service.
  • The Policy Decision Point (PDP) responds to an authorisation request with an authorisation decision.
  • The Policy Information Point (PIP) holds the service's policy information.
  • The Policy Administration Point (PAP) provides an interface to perform administrative tasks on the policy level.

Access control tasks

The major tasks of access control comprise Profile Management, Identity Management, Authentication, Authorisation, Policy Enforcement and Policy Management. These tasks are supported by a set of services that are designed for an evolving heterogeneous environment and offer a high level of flexibility.

Profile Management

The major objective of profile management is to map a real world user to a representation in a service network (user registration). This representation is called a profile. A profile represents an acting entity which may be a human user or a software component like a service. In order to support multiple authentication mechanisms simultaneously and to keep authorisation-irrelevant information out of the access control mechanism, profiles and their identities are separated. The concept of an identity constitutes the key entity on which an authorisation decision is mounted, regardless of the underlying access control mechanism. In contrast to that, a profile provides information about the real world entity. The relation between profiles and identities is reflected in the profile and identity model specified in the Access Control Service Architecture section. The main functions covered by Profile Management are creation, update and deletion of instances of profiles and related information, in particular references to identities.

Identity Management

An identity is the core information required to realize access control. To interlink access rules and acting entities (subjects), access rules refer to identities and associated properties (attributes), issued by an IdP and verified by an AP. The main functions covered by Identity Management are management of identity related information, e.g. credential management, identity attribute management, and definition and management of identity groups.

Authentication

According to SOA-RA 2008, authentication concerns the identity of the participants in an exchange. Authentication refers to the means by which one participant can be assured of the identity of other participants. The participants are profiles of real world entities that are represented by their identities. Authentication in the SAC Architecture is the process of verifying the identity of a certain profile. During the authentication process, an entity proves that it is allowed to act with the corresponding identity. This proof normally depends on the acting entity's credentials that can be, for example, what somebody has (e.g. a key or smart card), what somebody knows (e.g. a password), what somebody is (e.g. biometrical data), the place in which somebody resides (e.g. a certain computer) or the skills of somebody (e.g. a hand-made signature). The result of an authentication process is often called an assertion, a session, a ticket or a token. The issuer of an assertion (IdP) acts as the delegate for all service providers accepting assertions from this authentication authority. In this way an acting entity is not forced to present its credentials (e.g. a secret) at each service call and authentication can be done centrally. Assertions can be verified and are used for all actions that require proof of identity. In general, an assertion encompasses all identity related information that is required to perform an authorized request. Moreover assertions may contain information about the authentication provider, expiry date, etc. The main function covered by Authentication is therefore the verification of identity related information.

Authorisation

According to SOA-RA 2008, authorisation concerns the legitimacy of an interaction. Authorisation refers to the means by which an owner of a resource may be assured that the information and actions that are exchanged are either explicitly or implicitly approved. Authorisation is the process of determining whether an identity is allowed to have specified types of access to a particular resource. This is done by evaluating applicable access control information mainly consisting of an authorisation request and a policy. This information is used by the authorisation service to determine an authorisation decision. Usually, authorisation is carried out on the basis of successfully authenticated identities that are part of an authorisation request.

Policy Enforcement

Policies or access rules can be expressed in many ways from simple access control lists to complex statements in policy languages like the OASIS eXtensible Access Control Markup Language ( XACML (OASIS 2005) ). The actual application of access rules is performed through the combination of Authentication and Authorisation and the enforcement of access control decisions.

Policy Management

Access control tasks include the provision of means to manage access rules. This is covered by Policy Management, which includes the following functions: creation, update and deletion of instances of policies, definition and management of policy templates for certain frequently used access control patterns, and distribution of policy templates.

Access Control Service Architecture

The following figure illustrates how access control is accomplished through the interaction of services, each of which fulfils one or more of the access control tasks described above:

  • The Profile Management Service manages profiles and their relations to identities.
  • The Identity Management & Authentication Service is responsible for the management of identities, their authentication and the management of credentials. An instance of the service acts as both authentication provider (AP) and identity provider (IdP).
  • The Policy Management and Authorisation Service supports the management of policies, acting as policy administration point (PAP) as well as policy information point (PIP). Moreover, as an instance of the authorisation service interface it acts as the policy decision point (PDP).
  • The PEP Service handles the necessary interaction (authentication & authorisation) to obtain the required access control decision and is independent of the controlled service.
  • The Service Proxy mimics the controlled service and delegates the service request to the PEP Service.

    Part of the SAC Architecture, the profile and identity model (see Model for subject related information ), as one part of the overall SAC information model, plays a key role in the access control service architecture and enables the separation of concerns. As an example, the support of different authentication methods, without compromising the whole service architecture, is made possible due to the decoupling of profiles and identities as well as the management of identities in different instances of the Identity Management and Authentication Service, each possibly supporting a different authentication method.

    This architecture has been developed as part of the SANY project. It is based on results of the ORCHESTRA project, which has provided a first step towards this development. As part of the SANY deliverables, all services are formally specified. The detailed specifications will be published during 2009. The SAC-enabled service interaction pattern between an arbitrary client and an arbitrary service is shown in the next figure.

    The client and the services interact in the following order:

    1. login request
    2. issue a SAML ticket
    3. service request + SAML ticket
    4. service request + SAML ticket + service context
    5. verification of SAML ticket
    6. verification response
    7. authorisation request
    8. authorisation response
    9. forwarding of service request to the real service
    10. service response
    11. forwarding of service response
    12. service response to client

    Note that the result (12) appears to the client as if it was calling a non-SAC-enabled service. This is one vital part of what we mean by being non-intrusive. SAC-enabling is done as an orthogonal task and service developers need not concern themselves with it.