A SOA Gateway is a core infrastructure component of a SOA deployment with
the ability to integrate services securely. Typically deployed as a
hardware appliance, a SOA Gateway seamlessly controls access to services,
protects information through data-level encryption, ensures the integrity
of a message through signatures, and controls corporate information
flow. This article covers SOA Gateway deployment best practices,
benefits and requirements with a focus on service virtualization, message
privacy and integrity, and message control and auditing.
II. BEST PRACTICE: ENABLE SERVICE
VIRTUALIZATION AND CONTROL
Description: Service Virtualization - the most
important best practice of a SOA - is the ability to create a virtual
service from one or more Web Services Description Language (WSDL) files
generated by producer applications such as application servers, RDBMS, CRM
and ERP systems. As shown in Figure 1 below, service virtualization
across multiple producer systems is accomplished through an intermediary
SOA Gateway that sits between the producer and the consumer. Instead
of directly importing services from a variety of producer applications,
consumer applications can import virtualized services from an intermediary
SOA Gateway that aggregates and consolidates multiple back-end producer
services into a single WSDL and a single entry point. Service
virtualization enables enterprises to expose only specific business
services required by a consumer rather than exposing all services from
producer applications. On requesting a WSDL from the
intermediary SOA Gateway, the consumer is presented with a
set of virtual services that it is allowed to access. In the
sample deployment shown in Figure 1 below, the "Internal" consumer is
authorized to use services A-C and D,E from the producer Application
Server and Business Application respectively. However, the
"External" consumer, perhaps a supplier, is only allowed
to use services B and F. Thus, a SOA Gateway acts as
a central point of control that cloaks and safeguards producer services
through access control policies and through virtualization only shows the
services available to a consumer.
Figure 1: Enabling Service Virtualization through
a SOA Gateway
Benefits: Enabling Service Virtualization by using
SOA Gateways has significant benefits including:
-
Consistency: Virtualization enables
service selection across multiple WSDLs and exposes
only authorized services to clients as a coherent single
WSDL.
-
Security: The virtual WSDL can
selectively expose some of the services of the original WSDLs. The
WSDL endpoints are cloaked with only the SOA Gateway endpoints being
exposed. The SOA Gateway endpoints are protected through
credential-based access control.
-
Productivity: Service
virtualization improves productivity by enabling mixing services
across different producer services without having to copy and
paste parts of the desired WSDLs into new WSDL files. It allows a
customer to be able generate a library of all the services supported
by its organization and only expose the ones required for a particular
customer.
Requirements: SOA Gateways require
industry-hardened WSDL and schema parsing to import, aggregate and
publish complex WSDLs generated from a variety of application servers,
RDBMs, and business applications. For enterprise-class service
virtualization, a SOA Gateway is required to have the following
essential features:
-
Integration with existing Identity Management
Systems: A SOA Gateway must have deep
authentication and authorization-level integration with existing
Identity Management Systems such as CA SiteMinder, Sun Access Manager,
and HP Select Access for service access control.
-
Identity Bridging: A SOA Gateway must have
sophisticated identity token processing capabilities to intercept,
process and convert credentials among a variety of protocol formats
(Basic Auth, SSL Mutual Auth) and content formats (SAML, WS-Tokens,
X.509 Tokens) for Authentication and Authorization decisions.
-
Manage complex WSDLs: Ability to parse, merge
and administer multiple compound WSDLs and schemas and avoid namespace
collisions while aggregating WSDLs from multiple systems.
Deploying Service Virtualization with granular access control is crucial
for a scalable SOA. The vices of free-for-all services can quickly set
chaos within a SOA deployment. A SOA Gateway can control and
manage an increasingly complex SOA deployment through service
virtualization. Identity integration goes hand-in-hand with
service virtualization. Leveraging existing identity
infrastructure with service-level access control is the most crucial
best practice of a SOA deployment. The quality of a SOA Gateway
integration with identity systems along with the gateway's performance
optimization features - such as intelligent credential caching - will
determine the overall performance of a SOA deployment.
III. BEST
PRACTICE: ENFORCE DATA-LEVEL
PRIVACY
AND INTEGRITY
Description:
Data-level privacy and integrity is the cornerstone of
enterprise-class SOA. With SOAP/XML encryption and signature,
confidentiality and integrity remain "always on" by being independent of
transport protocols. With security now living within the SOAP/XML
messages, it does not matter if the transport pipe – HTTP, FTP, JMS –
between Web service consumers, producers, or intermediaries is SSL
enabled.
The
protocol independent nature of SOAP/XML-based messaging within a SOA
decouples the messages from protocol security such as SSL. In a SOA,
messages traversing the enterprise may do so over non-secure protocols
such as FTP and JMS. To ensure that a message retains its privacy
and integrity, security has to live within the message through data-level
encryption and signatures. By using WS-Security (an OASIS security
standard), messages can be granularly encrypted/decrypted and
signed/verified for ensuring privacy and integrity at the data level,
independent of protocol security.
Deploying
a SOA Gateway to handle data-level encryption/decryption and
signature/verification is a widely used industry best practice for
ensuring strong privacy and integrity. Figure 2 below shows a
typical SOA Gateway deployment for verifying and decrypting inbound
messages from a consumer that has first encrypted and then signed the
message before sending it out to the producer services. The
message is intercepted by the SOA Gateway that performs a signature
verification on the message to ensure that it has not been tampered with
and then decrypts the message before sending it to the back-end producer
application. The SOA Gateway takes away the burden of signature
verification and decryption from the producers and provides a central
location for maintaining security policies.
Figure 2: Enabling Data-level message privacy and
integrity.
Benefits: Enabling
Data-level privacy and integrity using SOA Gateways has significant
benefits including:
-
Consistency: By centralizing security
policies and separating the security policies from the producer
services, SOA Gateways provide a high-degree of policy
consistency and control. Service implementations become
independent of security policies that are centrally managed on the the
SOA Gateway.
-
Security: Data-level security provides "data-at-rest"
security over protocol-level security (SSL). Highly sensitive
data within a message can be secured using strong cryptography whereas
public data can be left as clear text. Data-level security is
always-on, even when the message is at rest where it is most
vulnerable. SOA Gateways provide protection of messages
in-flight through protocol security as well as security for messages
at rest through granular data-level security.
-
Productivity: By centralizing security policies
to a SOA Gateway, developers building producer services need not worry
about writing code for security policies. For example, as shown
in Figure 2, developers can focus on building core functionality
rather than writing code that verifies and decrypts messages -
functionality that is handled by the SOA Gateway. With no coding
required for such centralized security functions, the overall
productivity of the SOA project increases significantly.
Requirements: SOA
Gateways have to be secure, robust, performant and highly interoperable in
an enterprise-class environment where many internal and external systems
are exchanging messages. For deploying privacy and integrity, a SOA
Gateway must meet the following requirements:
-
Extensive Standards Support: A message encrypted
has to be eventually decrypted. Similarly, when an application
signs a message, at some point, this message has to be verified to
check for its integrity. WS-Security provides extensive
standards support to ensure that when a system performs a security
operation, the inverse operation can be performed by the receiving
entity. A SOA Gateway intercepts secured messages from a variety
of consumers and has to perform inverse security functions on the
messages. Without an extensive standards-based implementation,
the SOA Gateway would fail to process messages from a broad array of
consumers.
-
Robust PKI Management: Encryption/Decryption and
Signature/Verification are based on Public Key Infrastructure
(PKI). A SOA Gateway is required to support Key Life-cycle
Management such as Public-Private Key Generation, Enrollment and
Revocation. For hardened security, SOA Gateways also use
Hardware Security Modules (HSMs) to protect private keys used for
message signature and decryption. Solid PKI Management coupled
with HSMs is a requirement for SOA Gateways deployed at the edge in a
corporate DMZ. In highly senstive SOA deployments within, for
example, the Federal Government and Financial institutions, only SOA
Gateways that have been independently certified by non-commercial
agencies should be considered. Hardware appliance-level FIPS and
DoD/PKI are two certifications that are strongly recommended.
-
Performance Acceleration: Cryptographic
operations necessary for encryption/decryption and
signature/verification are computationally intensive operations and
cannot scale with general purpose processors, specialized
cryptographic processors are necessary. With a SOA Gateway
managing such operations for many service producers and consumers,
using hardware accelerators is required for a scalable architecture
that does not add latency to message processing.
Requiring developers to intertwine security
policy code with their services is a failing long-term strategy. It
puts tremendous maintenance burdens on the service implementation and
exposes SOA to security risks as well as interoperability pitfalls.
Separating security policies from a service implementation and
centralizing such policies using an intermediary SOA Gateway ensures
that the security holes are not inadvertently introduced by
developers and the SOA deployment can be built up rapidly by decoupling
security processing tasks from the producer services.
IV. BEST PRACTICE: CONTROL AND
AUDIT INFORMATION FLOW