Newsletter sign-up
View all newsletters

Enterprise Java Newsletter
Stay up to date on the latest tutorials and Java community news posted on JavaWorld

Sponsored Links

Optimize with a SATA RAID Storage Solution
Range of capacities as low as $1250 per TB. Ideal if you currently rely on servers/disks/JBODs

Secure your SOA

Enterprise-grade SOAs require a plan for addressing diverse security needs

  • Print
  • Feedback

Page 6 of 6

XACML can base its decisions on a resource's properties, including its content, or on environmental factors, such as date, time, or location. It may also take into account properties of the parties associated with the request, such as role or group membership. This might include not only the party making the request, but also the party receiving the data or intermediaries to the request.

As shown in Figure 2, a typical usage scenario of XACML is where a subject wants to take some action on a particular resource such as a filesystem or a Web server. That subject submits its query to the entity to protect the resource. This entity is called PEP (policy enforcement point). The PEP forms a request, using the XACML request language. The PEP then sends this request to a policy decision point (PDP), which examines the request, retrieves policies (written in the XACML policy language) applicable to this request, and determines whether access should be granted according to the XACML rules for evaluating policies. That answer (expressed in the XACML response language) returns to the PEP, which can then allow or deny access to the requester.

Figure 2. A typical usage scenario for XACML

SOA security enabled by XQuery and XML databases

Security standards and secure documents are described using XML and the various XML markup languages discussed in this article. An XDMS is an ideal mechanism to persist and query both security policy documents and secure messages in an SOA. As mentioned earlier, XQuery can be used to extract information from XML documents. XQuery is basically a functional language that uses expressions as the central component to assemble queries. Each query can be described as a set of expressions, which may be nested. This main feature makes XQuery a flexible and well-rounded approach for manipulating XML data.

To effectively access or store XML documents, one needs an XDMS. An XDMS that supports XQuery can enable the retrieval of information from the XML security documents quickly and easily. XML databases have matured and readily provide XML content search and storage.

For example, an XDMS can maintain different versions of security policy documents, providing an audit trail for policy changes. Furthermore, XML security messages and requests can also be persisted, providing an audit trail of all security transactions in an SOA.

SOA security enabled by federated identity management

According to Jason Rouault and John Worral, authors of "Federated Identity Management Addresses E-Business Challenges":

"a single organization cannot effectively manage or control an e-business initiative from beginning to end, especially when multiple partners are involved. Even within the enterprise, different business units often manage distinct sets of users and resources. That's why organizations are turning to federated identity management to address their e-business challenges."


Applying these ideas to our typical supply-chain use-case that involves many disparate applications collaborating with each other through Web services, we can see that without federated identity management, total chaos caused by unauthorized and untrusted access to the underlying SOA-enabled business processes would reign—thus defeating the very purpose of collaboration.

Federated identity standards such as SAML and alliances such as the Liberty Alliance form a wrapper around disparate systems and their respective security infrastructures, and enable them to interoperate, forming what is called a circle of trust. This is the first step towards developing business relationships across trading partners and business applications.

SOA governance

As SOA implementations scale and become more mature, governance becomes imperative to their success. SOA governance is the process of defining and enforcing organizational policies and standards. These policies are geared towards the business requirements of managing liabilities and dependencies, ensuring continuity of business operations and reducing costs. They also benefit the IT departments by defining controls for service proliferation within the enterprise, incorporating evolving standards and promoting interoperability.

Today, most organizations already have policies in place for all of the above. However, these may either be manually enforced or in disparate places across departments and applications. We need federated information and policy management as XML metadata that resides with the SOA artifacts to facilitate automatic enforcement, without manual intervention. This is the only way to guarantee fast, reliable, and consistent application of SOA policies within and across organizations.

Federated information management needs features for organizations to share and link information securely. Enterprises may need to maintain their own data repositories as well as a unified view of data that must be exchanged between trading partners. Federated policy management includes publishing, managing, discovering, and governing organizational policies. When multiple partners interact with each other, these policies must be linked and composed across enterprises.

The goal of SOA governance is to create an infrastructure that is robust and secure. This is not possible if you only provide policy enforcement at an XML registry level. The bulk of SOA artifacts created by your organization is in the documents you exchange with your trading partners. Hence, you must have fine-grained governance over this data to truly secure your enterprise. For this, you need an SOA repository, not just an XML registry.

An SOA repository should be the central point for governance of all your SOA artifacts. But imagine the vast amounts of XML SOA metadata that needs to be persisted with the SOA data. Only a fast and scalable SOA repository that provides querying and management of enterprise data would work for Federated Information and Policy Management. The most optimal way to achieve this is if the repository is powered by a native XDMS with XQuery to provide both speed as well as scalability to realize effective SOA governance.

As we noted earlier, XQuery is a flexible and powerful language for XML data retrieval and management. When this is coupled with a native XDMS, you have an elegant, high-performance option to the complex and sluggish middle-tier conversions of your XML data using the traditional parsing approach with an RDBMS (relational database management system) SOA artifacts store.

Conclusion

As we have seen throughout this article, XML plays an important role in describing the key security standards for SOA. Persisting XML data, including security and organizational policies and secure messages described in XML, should be handled by an XDMS. Though many XML and SOA security standards are still evolving, an XDMS enables the implementation of SOA security standards today and minimizes disruption as the standards evolve. For example, XQuery can be utilized in parsing and updating these XML security documents that are persisted and managed in an XDMS. Furthermore, an XDMS can handle any type of XML data without prior knowledge of the XML Schema structure. This powerful functionality proves highly advantageous when handling XML messages and security documents from federated systems with different security approaches. An XDMS can persist these diverse documents, and, along with XQuery, transform and map the various security standards.

Additionally, an XDMS offers the full power to manipulate, browse, search, integrate, and aggregate enterprise data in an SOA. Hence, an XDMS powered with XQuery provides compelling benefits to secure your SOA.

We would like to thank Ajay Ramachandran, vice president, enterprise applications group at Raining Data, for technically reviewing this article.

About the author

Anthony Sangha is an architect in the enterprise applications group at Raining Data Corporation. He has several years of experience in the software industry, which includes designing and architecting secure products in a variety of programming environments. He has vast expertise in architecting, developing, and coding server-side n-tier Java and enterprise Java applications from design blueprints in SOA. Ash Parikh is the director of technology and development for the enterprise applications group at Raining Data Corporation. He is a named expert in the field of SOA and distributed computing and has presented and authored abstracts for OASIS Symposium 2005, Delphi BPX Summit 2004, Delphi Enterprise On-Demand 2004, JavaOne 2004, JavaOne 2003, BEA e-World 2002, and JavaOne 2002. Parikh has more than 15 years of IT experience and is an active member on a number of Java Specification Requests in the Java Community Process and in OASIS technical committees. He is also the president of the Bay Area Chapter of the Worldwide Institute of Software Architects and the cochair of the SDForum Web services SIG. Parikh has also authored several technical articles in journals such as JavaWorld, XML-Journal, Java Pro, Web Services Journal, ADTmag, Softwaremag.com, and Java Skyline. Murty Gurajada is a senior engineer in the enterprise applications group at Raining Data Corporation. He has been developing enterprise software for more than 10 years and has spent the last several years building business-process-management, workflow, and SOA platforms. His past experience also includes developing software for insurance, brokerage, and financial companies.

Read more about Enterprise Java in JavaWorld's Enterprise Java section.

  • Print
  • Feedback

Resources