YOUR FEEDBACK
Ubuntu Here We Come! - Java Finally To Become 100% Open Source
Reader wrote: Since November 206, wow! that is a long process.
SOA World Conference
Virtualization Conference
$200 Savings Expire May 16, 2008... – Register Today!

SYS-CON.TV
TOP THREE LINKS YOU MUST CLICK ON


SOA Programming Model for Implementing Web Services
Securing Service-Oriented Applications

Digg This!

Page 2 of 3   « previous page   next page »

One mechanism would be the use of a challenge-response protocol as defined in WS-Trust (see Resources for more information about the WS-Trust spec). This is used by a Web service for additional challenges to a requester to ensure message freshness and verification that the use of a security token is authorized. This model is illustrated in Figure 3, showing that any requester may also be a service, and that the requester and target service may have a trusted third-party security token service that helps validate the security tokens required per the target service's policy.

This SOA security model - claims, policies, and security tokens - subsumes and supports several more specific models, such as identity-based authorization, access control lists, and capabilities-based authorization. It allows use of existing technologies, such as X.509 public key certificates, XML-based tokens, Kerberos shared-secret tickets, and even password digests.

The SOA security model, in combination with the Web Services Secure Conversation Language (WSSC) and Web Services Policy Framework primitives, is sufficient to construct higher-level key exchange, authentication, policy-based access control, auditing, and complex trust relationships.

A Web service has a policy applied to it, receives a message from a requester that possibly includes security tokens, and may have some protection applied to it using WSSC mechanisms. The following main steps are performed by the trust engine of a Web service:

  • Verify that the claims in the token are sufficient to comply with the policy and that the message conforms to the policy.
  • Verify that the attributes of the claimant are proven by the signatures. In brokered trust models, the signature may not verify the identity of the claimant; it may verify the identity of the intermediary who may simply assert the identity of the claimant. The claims are either proven or not based on policy.
  • Verify that the issuers of the security tokens (including all related and issuing security tokens) are trusted to issue the claims they have made. The trust engine may need to externally verify or broker tokens (that is, send tokens to a security token service in order to exchange them for other security tokens that it can use directly in its evaluation).
If these conditions are met and the requester is authorized to perform the operation, then the service can process the service request.

Network and transport protection mechanisms, such as IP Security (IPSec) or Transport Layer Security/Secure Sockets Layer (TLS/SSL), can be used in conjunction with this SOA security model to support different security requirements and scenarios. As an added level of security, requesters should consider using a network or transport security mechanism, if available, to pre-authenticate the recipient when issuing, validating, or renewing security tokens.

Programming model design principles
From a security perspective, the programming model includes decisions to be made about who is responsible for enforcing security policies (such as infrastructure or application) and what of this information needs to be made available to requesters. In addition to the operational aspects, some of the design-time policy (for example, captured in J2EE deployment descriptors) can help manage the application. One of the key implementation decisions is whether the business needs will best be met by enabling the infrastructure to implement the security model or by codifying security enforcement into each application. Another dimension to consider is how variable the service invocation is. Are service consumers given flexibility through choices they can customize during subscription? Lastly, when implementing any secure solutions, one should consider security engineering - an engineering methodology to build secure applications.

Infrastructure-Managed vs Application-Managed Security
Each organization typically gives certain people the responsibility for identifying and enforcing its security policies. In many cases this process is manual, causing the organization to devote significant resources to coordinating access across different entities and applications.

We recommend that complex organizations centralize, in the infrastructure, the enforcement of the security policies associated with a solution - that is, validating the user challenge (for example, user ID/password), controlling access to applications (such as reserve() method on travelService), and delegating identity (for example, run-as travelAgency id) to ensure a consistent approach. Initial application security policies can be defined in some deployment artifacts (e.g., deployment descriptors for J2EE applications). After development, when the application logic is largely known, the policy information can be made available to the deployment environment. Policy declarations can be abstracted into high-level policy requirements for later refinement as implementation constraints are considered during the deployment phase.

The application design introduces decisions to be made about infrastructure- versus application-managed security. The security constraints and conditions are attached to the implementation artifacts. The time for deciding whether to let the infrastructure handle security, or codify security in the application, is during the implementation phase when information about the application platform - such as Java 2 Platform, Enterprise Edition (J2EE) and Microsoft .NET - is usually available.

We recommend that applications focus on business logic and defer securing the service access and the messages to the infrastructure (the runtime container hosting the application). In this infrastructure-managed approach, security policies attached to design artifacts are transformed into platform-specific policies [for example, requirements expressed through a Unified Modeling Language (UML) model are transformed into J2EE deployment descriptors).

In the application-managed approach, security enforcement is done in the application, and the appropriate security callouts must be implemented. Even application-managed security has to translate its security callouts (such as authenticate()) into appropriate platform-specific functions [such as loginContext.login() using Java Authentication and Authorization Service (JAAS)].

Authorization and access control can vary from coarse- to fine-grained. The choice of coarse-grained access (to the solution itself) versus fine-grained access (to one of its operations) is usually governed by business and technical considerations. Granularity is also influenced by factors, including the instance of the information entity (for example, credit account profile for a given traveler), contextual information, such as user attributes (for example, travel agent), temporal constraints (for example, 9-5 p.m.), purpose of access (such as for the purpose of making a travel reservation), access path (for example, Authorization-related policy can be abstracted by defining application roles, where a role is a collection of permissions that allow certain actions on given application resources. For example, a travel application can declare that the view() or change() reservations methods on ReservationBean can be accessed by TravelAgent role. In other words, TravelAgent is an implementation-defined role that identifies what can be done by a "travel agent" in terms of a set of permissions to invoke specific methods on the respective Enterprise JavaBeans (EJBs). What is not likely defined during the implementation phase is who has the privileges of a TravelAgent. User-to-role assignments are typically initialized at deployment and managed thereafter throughout the application's lifetime. Listing 1 shows an example of code defining some role-based method permissions.

Listing 1: Code defining some role-based method permissions<method-permission>

<role-name>TravelAgent</role-name>
<method>
<ejb-name>ReservationBean</ejb-name>
<method-permission>
<role-name>TravelAgent</role-name>
<method>
<ejb-name>ReservationBean</ejb-name>
<method-name> view</method-name>
<method-name> change</method-name>
</method>
</method-permission>


Page 2 of 3   « previous page   next page »

About Maryann Hondo
Maryann Hondo is the security architect for emerging technology at IBM, concentrating on XML security. She is one of the coauthors of the WS-Security, Policy, Trust and Secure Conversation specifications announced by IBM and other business partners. Before joining the emerging technology group she managed the IBM Tivoli Jonah team (IETF PKIX reference implementation) and was security architect for Lotus e-Suite participating in the development of Java Security (JAAS).

About Tony Nadalin
Tony Nadalin, distinguished engineer and chief security architect for IBM Software, is a passionate technologist and coauthor of the Web Services Security (WS-Security) standard. In this role he also serves as the primary security liaison with Sun Microsystems and Microsoft Corp. for IBM. As such, he has facilitated the collaboration of vendors and industry bodies alike.

About Nataraj Nagaratnam
Dr. Nataraj Nagaratnam is the Chief Architect for Identity Management and Lead Security Architect for On Demand Security Infrastructure and Technical Strategy. As a Senior Technical Staff Member, he drives security architecture and design activities across IBM products and platforms.

SOA Web Services Journal News Desk wrote: Securing access to information is basic to any application. Security becomes even more critical for implementations structured according to SOA principles due to their loose coupling of services and applications and their operation across organizational boundaries. Such an environment often exposes the delicacy or limitations of existing security implementations.
read & respond »
WEBSPHERE LATEST STORIES . . .
IBM Unveils Insurance Operations of the Future Powered By SOA
IBM announced two new advances in the insurance industry - a solution for improving operational efficiency and a framework for process acceleration - that are designed to help insurance providers lower costs and increase customer satisfaction by handling core processes, such as claims
ParAccel Announces OEM Relationship with IBM
ParAccel announced it has entered into an original equipment manufacturer (OEM) agreement with IBM. Under the terms of the agreement, ParAccel will embed IBM InfoSphere Change Data Capture within the ParAccel Analytic Database, providing ParAccel customers with seamless and real-time u
Microsoft To Keynote 4th International Virtualization Conference & Expo
Mike Neil is general manager for virtualization strategy in the Windows Server Division at Microsoft. Mike is focused on the delivery of the Windows virtualization technology, including Windows Server 2008 Hyper-V, Microsoft Hyper-V Server and Virtual PC 2007. Mike also directs the tec
Micro Focus Upgrades SOA Express for IBM CICS
Micro Focus announced the availability of SOA Express 8.0. The new version adds support for direct deployment into IBM's Customer Information Control System (CICS), enabling users to accelerate the deployment of Web services by reusing their existing CICS TS mainframe infrastructure in
3rd International Virtualization Conference & Expo: Themes & Topics
From Application Virtualization to Xen, a round-up of the virtualization themes & topics being discussed in NYC June 23-24, 2008 by the world-class speaker faculty at the 3rd International Virtualization Conference & Expo being held by SYS-CON Events in The Roosevelt Hotel, in midtown
Red Hat Named "Platinum Sponsor" of Virtualization Conference & Expo
Red Hat is a trusted open source provider. Red Hat offers enterprise customers a long-term plan for building infrastructures on the quality and innovation of open source. Combining open source operating system platform, Red Hat Enterprise Linux, together with applications, management
SUBSCRIBE TO THE WORLD'S MOST POWERFUL NEWSLETTERS
SUBSCRIBE TO OUR RSS FEEDS & GET YOUR SYS-CON NEWS LIVE!
Click to Add our RSS Feeds to the Service of Your Choice:
Google Reader or Homepage Add to My Yahoo! Subscribe with Bloglines Subscribe in NewsGator Online
myFeedster Add to My AOL Subscribe in Rojo Add 'Hugg' to Newsburst from CNET News.com Kinja Digest View Additional SYS-CON Feeds
Publish Your Article! Please send it to editorial(at)sys-con.com!

Advertise on this site! Contact advertising(at)sys-con.com! 201 802-3021

SYS-CON FEATURED WHITEPAPERS

ADS BY GOOGLE
BREAKING WEBSPHERE NEWS
Bryan Flanagan, Director of Training for Zig Ziglar, to Teach Sales Skills at American Marketing Association Mastering Sales Seminar, May 23, Irving, TX
Nationally renowned speaker, author and sales trainer, Bryan Flanagan, Director of Corporate T