8 Composing Security from Components
In Section 2, we mentioned that security services are offered by security components,
which are composed based on Service Component Architecture (SCA) model. We use
this model to deploy security components as a Security Composite, which meets all
the security requirements of a domain. An SCA component has a Service, a Reference,
Wires and Properties. The Service is an interface to the functionality a component of-
fers. A Reference is an interface of the service that a component depends on. A service
is connected with a reference using a Wire. Properties are used to configure the com-
ponents for different implementations. A set of required components is composed as a
Composite, which provides an interface for service invocation. The composition is re-
cursiveand a composite could be used as a componentin another composition [3]. Com-
posites are written in XML-based Service Composition Definition Language (SCDL).
SCA uses SCAPolicyFramework to define security (and other QoS) requirements using
high-level security objectives called Intents. Intents are mapped to a PolicySet, which is
mapped to concrete security policies written in WS-Policy standard [16].
8.1 Security Implementation using SCA Model
The motivation of implementing proposed SAAS approach with SCA model is based
on its promising features, supporting SOA based composition of security components.
We benefit from these features in many aspects as discussed below:
1. Component-based Security Services. We assume that the security services de-
ployed in a security domain are offered by components written in different lan-
guages. This modularity enables to use old components (reusability), add new com-
ponents (extensibility) and update existing components (maintainability).
2. Deployment-time Security Configuration. Security Components form a Security
Composite, which can be configured at deployment time based on the security pol-
icy of a domain. We useSCA componentproperties, to make such deployment-time
configurations. For example, an authentication component is implemented accord-
ing to the security policy, which defines types of supported tokens (e.g. Signed
SAML Tokens, x.509 certificate, Username password), encryption and signature
methods (e.g. basic256, sha-1) and message parts (e.g. header, body) to be pro-
tected. An authentication component can be written to implement any of these to-
kens and algorithms etc. The values are passed to the components as properties.
This gives the flexibility to configure the same security components for different
implementations. In Java, the property-based configurations of SCA components is
done with annotations embedded in Java classes [1].
3. Separation of Concerns. Using SCA we separate security concerns from func-
tionality, because significant part of the security logic is not integrated with service
endpoint. As a result any changes in the security logic can be incorporated with-
out affecting the service endpoint. The service endpoint equally benefits from this
separation, because it does not depend upon infrastructure,which are used for its se-
curity. Additionally, the peformance of the endpoint is also enhanced as it performs
minimum security tasks and does not have to solve interoperability problems.
87