Security is not a reason to stay away from SOA. Although full SOA security maturity is yet to come, 30 percent of organizations now
use SOA for external integration with customers and partners. For standard Web services using SOAP, WS-Security has achieved critical mass
as a foundational standard. On the other hand, advanced SOA security — involving federation among partners, nonrepudiation, and
propagation of user identities across multiple layers of service implementations — is in its early days. To navigate the path from what’s
practical today to the future of advanced SOA security, establish an iterative design process for evolving your SOA security architecture that
considers your current and future security requirements, emerging industry specifications, overlaps in product functionality for SOA security, and
possibilities for custom security integration.
MORE ON SOA
SOA Security: the Basics
SOA Definition and Solutions
SOA Security: How Irish Luck Went a Long Way
Are you Insecure about SOA Security?
As a baseline for designing SOA security, the simplest way to secure SOA requests and responses is to place them within a virtual private
network (VPN). The most common method for external SOA security is two-way Secure Sockets Layer (SSL), which: 1) allows each of the
communicating partners to authenticate the other, and 2) sets a high bar for security: Hackers cannot even connect to an SOA-based service
unless they steal a certificate and key from a service consumer. Although VPNs are relatively easy to establish, VPN-based SOA security is
coarse-grained and offers no ability to support advanced functions such as: propagation of user identity across multiple layers of service
implementations; coordination and federation among multiple security domains; and strict nonrepudiation. Also ongoing management of certificates
can be an administrative burden.
Other major alternatives for SOA security include leveraging existing SOA security features in Java or .NET application platforms and
concentrating SOA security within an SOA specialty product such as an enterprise service bus, SOA and Web services management solution,
SOA security server, or SOA appliance. Appliances provide the simplest and most focused “drop-in” solution for SOA security, but there are
intricate trade-offs to consider among the SOA specialty products as you build your overall SOA platform.
Even with the emerging features of application servers and SOA specialty products, simple SOA security solutions can be compelling,
Historically, organizations have been reticent to tackle the difficulties of implementing advanced application security requirements. As SOA security
implementations mature — along with broader architectures for security federation — it will become easier to implement advanced
security scenarios. Many user organizations will find that advanced SOA security becomes mandatory — especially with increasing data
privacy and other regulations. Thus it is important, even if you start with a simple SOA security solution, to anticipate the need for and leave paths
open to build additional, deeper security functionality as business requirements demand and SOA security maturity allows.
Forrester strongly recommends that you design a solution that does not require application developers to do security-related coding. Even with
strong guidelines and code reviews, embedding security into application code is risky both in terms of achieving consistent security and of allowing
future flexibility and enhancement of application security. Note that keeping developers from having to write code for security does not eliminate
the need to train application developers to use secure coding practices. Secure coding is a separate realm of application security practice, involving
concerns such as ensuring that application failures do not open security holes.
Finding the right combination of industry standards, products, integrations, and frameworks for your security strategy is an iterative process
1. Identify Your Security Requirements.
Assess your requirements against a broad, strategic list of security functions. This forms the
foundation for designing your SOA security strategy and solution. Organize requirements according to the major design focal points of your
SOA-based solution. Forrester uses a model organized around the service consumer, the request-response, the service provider, and the security
environment. As you continue through the iterative process for SOA security design, you may have to reconsider selected requirements as you
learn more about standards, products, and your organization’s ability to pay for the SOA security your requirements imply.
2. Determine Your Use of SOA Security Specifications.
Your SOA security requirements set the stage for determining the range of
SOA security specifications that might meet your requirements. When choosing the actual specifications you will use, however, you must account
for which specifications the products in your infrastructure (existing products, plus new ones that you may buy for SOA) will support. Core
specifications include WS-Security, WS-I Basic Security Profile, XML Encryption, and XML Signature. Advanced specifications include
WS-Trust, WS-SecurityPolicy, WS-Federation, XACML, and WS-SecureConversation.
3. Select the Products that will Provide Your Core SOA Security Functions.
Many functions within an SOA security solution, such
as performing authentication using WS-Security headers, can be performed by multiple product types in different product categories. Your design
process will have to consider each option, assess the trade-offs, and select one product (or a coordinated set of products) to provide the core
functions for SOA security. Key product categories that might contribute to your SOA security solution include: SOA appliances, SOA
management solutions, enterprise service buses, SOA security servers, application servers, security token servers, entitlements management
servers, and identity and access management solutions.
4. Configure and Integrate Products to Work Together.
It’s likely that you will have multiple products that perform a given SOA
security function, and the products will have to be integrated to work coherently together. Much of this integration may be done with product
configuration options (e.g., configuring an SOA appliance to delegate authentication to a particular single sign-on product), but it may require
building integration components using product programming interfaces.
5. Fill in the Holes with Frameworks.
After the product integration is done, it may be useful to build helper frameworks for
application developers so that they will not have to write security code within their SOA-based applications.
Forrester recommends using an iterative process for two primary reasons. First, typically not all applications need all of your security
requirements; initial applications may be able to do with a lighter-weight pass on building your SOA security solution, while later applications
require you to fill in your solution with additional features. Second, each time you make a pass through, you will learn more about how to build the
most effective SOA security solution with the pieces that you have.
SOA leaders are still paving the road for the rest to follow. For some organizations, there may be a business scenario where advanced security
has a high value. Such organizations can justify the cost of building advanced SOA security solutions. These leaders will, along the way, help
solidify industry specifications and help vendors mature their products. If your organization is one with immediate needs for advanced SOA
security, there are many available products and standards to build on, but proceed with caution: You should build extra time into project plans for
prototyping, product debugging, and performance and scalability testing.
Randy Heffner is a Vice President at Forrester
Research, serving Enterprise Architecture professionals. He is a leading expert on architectures and design approaches for building enterprise
applications that are secure and resilient in the face of continuous business and technology change.
Do you Tweet? Follow everything from CIO.com on Twitter @CIOonline.