107
1 Copyright © 2003 Jorgen Thelin / Cape Clear Software Web Services Security Tutorial A Web Services Security Overview and Implementation Tutorial

Web Services Security Tutorial - Object Management Group

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Web Services Security Tutorial - Object Management Group

1

Copyright © 2003 Jorgen Thelin / Cape Clear Software

Web Services Security Tutorial

A Web Services Security Overview andImplementation Tutorial

Page 2: Web Services Security Tutorial - Object Management Group

2

Copyright © 2003 Jorgen Thelin / Cape Clear Software

Copyright NoticeCopyright © 2003 Cape Clear Software.All rights reserved.The document is not intended for production and is furnished “as is”without warranty of any kind.All warranties on this document are hereby disclaimed including thewarranties of merchantability and fitness for a particular purpose.The presentation content is provided for your personal informationonly. Any commercial or non-commercial use of the presentation in fullor part, including use of any text or graphics requires a license fromCape Clear Software Inc.This presentation is protected by the US and EU copyright regulationsand international treaties.Trademarks

Cape Clear, Cape Clear Software, Cape Clear Studio, Cape Clear Server, andCape Clear Manager are trademarks of Cape Clear Software in the UnitedStates and other countries.Other company, product, and service names mentioned in this product maybe trademarks or service marks of others.

Page 3: Web Services Security Tutorial - Object Management Group

3

Copyright © 2003 Jorgen Thelin / Cape Clear Software

AbstractThis tutorial provides an assessment of the various security concerns andimplications for XML Web Services, and the different means to addressthem.A framework is presented outlining the variety of measures and approachesfor achieving end-to-end security for Web Services, leveraging any pre-existing security environments where possible.The various technical security aspects of authentication, authorization,confidentiality and integrity are explored, along with how they affect WebServices and how they relate to the business-driven security concepts ofidentity, single-sign-on, privacy, trust and non-repudiation.An overview is provided of the emerging XML security standards such asXML Digital Signatures (XML-DSIG), XML Encryption, Security AssertionsMarkup Language (SAML) and WS-Security, including how they combine toaddress the fundamental security requirements of line-of-business WebServices.Examples are shown of a common technique for implementing the securityrequirements for a Web Service application through the use of custom orpre-built client-side and server-side interceptor plugins, in a manner similarto existing Aspect-oriented programming concepts.Finally, some lessons from the initial experiences implementing and usingWeb Services security are provided, along with advice and guidance forfuture projects.

Page 4: Web Services Security Tutorial - Object Management Group

4

Copyright © 2003 Jorgen Thelin / Cape Clear Software

ModulesWeb Services Security RequirementsWeb Services Security FrameworkWeb Services Usage ScenariosSecurity Credentials and IdentityEmerging XML Security StandardsSecurity Implementation using InterceptorsLessons from Implementing Web ServicesSecurity

Page 5: Web Services Security Tutorial - Object Management Group

5

Copyright © 2003 Jorgen Thelin / Cape Clear Software

Resources

CapeSciencePapers, articles, tutorials, and webcasts for WebServices developershttp://www.capescience.com

Jorgen Thelin’s WeblogWeblog covering enterprise systems development,and especially Web Serviceshttp://www.TheArchitect.co.uk/weblog/

Page 6: Web Services Security Tutorial - Object Management Group

6

Copyright © 2003 Jorgen Thelin / Cape Clear Software

A Web Services Security Framework

Jorgen ThelinChief Scientist

Cape Clear Software Inc.

Page 7: Web Services Security Tutorial - Object Management Group

7

Copyright © 2003 Jorgen Thelin / Cape Clear Software

4 Main Concerns of a Security FrameworkAuthentication – identity

Who is the caller?How do we prove they are who they say they are?

Authorization – access controlWhat is the caller authorized to do?Is the caller permitted by perform the operation it isrequesting?

Confidentiality – encryptionHow do we prevent snoopers viewing our messages anddata?

Integrity – tamper-proofingHow do we prevent messages being tampered withbetween sender and receiver?

Page 8: Web Services Security Tutorial - Object Management Group

8

Copyright © 2003 Jorgen Thelin / Cape Clear Software

Non-RepudiationThis is ultimately the major businessrequirement for a security framework

Can a trading partner possibly claim that:They didn't send a messageThey sent a different message from the one youreceived

Requires framework support for:Authentication – we know who sent the messageIntegrity – the message did not change in transitAudit record storage – we can prove whathappened

Page 9: Web Services Security Tutorial - Object Management Group

11

Copyright © 2003 Jorgen Thelin / Cape Clear Software

Web Service Interaction Levels

Page 10: Web Services Security Tutorial - Object Management Group

12

Copyright © 2003 Jorgen Thelin / Cape Clear Software

Transport Level SecurityUses existing Web tier technology such as HTTP andSSLAuthentication

HTTP authentication schemes – Basic or DigestSSL client side certificates

AuthorizationURL access control policies in the web tierJ2EE Servlet declarative security constraints

ConfidentialitySSL encrypted connections

IntegrityPoint-to-point SSL encryption to avoid data interception

Page 11: Web Services Security Tutorial - Object Management Group

13

Copyright © 2003 Jorgen Thelin / Cape Clear Software

Message level securitySecurity data built in to the XML message text – usuallyas additional SOAP header fieldsAuthentication

SSO (single sign-on) header tokensSAML authentication assertions

AuthorizationSSO session detailsSAML attribute assertions

ConfidentialityXML Encryption specification

IntegrityXML Digital Signatures specification

Page 12: Web Services Security Tutorial - Object Management Group

14

Copyright © 2003 Jorgen Thelin / Cape Clear Software

Application level securityA Web Service application handles its own security scheme – forexample, UDDIAuthentication

App specific authentication messagesApp specific credential headers in other messagesApp maintains its own security domain

AuthorizationApp performs its own access control checks

ConfidentiallyApp can apply an encryption scheme to some or all data fields

IntegrityXML Digital Signature can be used for tamper detectionApp specific integrity data such as MD5 hash can be sent for some or all datafields

Page 13: Web Services Security Tutorial - Object Management Group

15

Copyright © 2003 Jorgen Thelin / Cape Clear Software

Conclusions – Key IssuesA Web Services security framework must supportexisting security products

Must be an end-to-end framework to avoid anysecurity gaps

New XML security specifications are not yet stabilizedor proven

Use existing proven Web tier security infrastructureuntil XML security specifications and infrastructure isvalidated

WS-I Basic Security Profile will deliver a standardizedXML security infrastructure over time

Page 14: Web Services Security Tutorial - Object Management Group

16

Copyright © 2003 Jorgen Thelin / Cape Clear Software

Web Service Usage Scenarios

Page 15: Web Services Security Tutorial - Object Management Group

17

Copyright © 2003 Jorgen Thelin / Cape Clear Software

Current Usage Scenarios

Page 16: Web Services Security Tutorial - Object Management Group

18

Copyright © 2003 Jorgen Thelin / Cape Clear Software

Web Services – Current Usage Scenarios

Enterprise Application Integration

Re-use of Existing Business Logic

Deploying Applications across Firewalls

EJB Component Reuse

Ad-hoc Reuse

Page 17: Web Services Security Tutorial - Object Management Group

19

Copyright © 2003 Jorgen Thelin / Cape Clear Software

Enterprise Application IntegrationUsage Scenario Description:

SOAP can be used to integrate Java and EJBs with logicdeployed in other enterprise systems such as CORBA and.NET.The best initial projects for Web Services in organizations ofteninvolve the reuse of existing back-end systems – with WebServices used to expose them in a new way.This approach has the added benefit that the focus of theproject has been the Web Services rather than developingsome new business logic.

Security Implications:For internal integration, the security implications for this havetended to depend on factors such as the sensitivity of theinternal information being passed around and whether theinformation ever moves beyond the internal firewall at anypoint (which can happen if, for example, branch offices areconnected over the Internet).

Page 18: Web Services Security Tutorial - Object Management Group

20

Copyright © 2003 Jorgen Thelin / Cape Clear Software

Re-use of Existing Business LogicUsage Scenario Description:

Exposing back-end logic to multiple types of clients at thesame time, such as Visual Basic and Java GUIs.Many projects have an attractive value proposition for usingmainstream developers (Visual Basic programmers, forexample) to develop the front-end clients while reserving theEJB programmers (a relatively small percentage of the verybest software developers) for developing business logic.

Security Implications:The security implications for this have tended to depend onfactors such as the sensitivity of the internal information beingpassed around (with authentication and access control beingcommon security solutions) and whether the information evermoves beyond the internal firewall at any point (which canhappen if, for example, branch offices are connected over theInternet) SSL has tended to be used in the cases wheredeployments have been across a combination of intranets andthe Internet.

Page 19: Web Services Security Tutorial - Object Management Group

21

Copyright © 2003 Jorgen Thelin / Cape Clear Software

Deploying applications across firewallsUsage Scenario Description:

SOAP (when HTTP is used as the transport layer) can beused to integrate applications or clients across firewalls.This has been particularly useful for projects deadlinesthat need to avoid the organizational issues usuallyinvolved with firewalls.This also has been useful for projects that involvedintegrating with business partners with heterogeneousfirewall security requirements.

Security Implications:The security implications of what is essentially ashortcut are often ignored due to tight deadlines.

Page 20: Web Services Security Tutorial - Object Management Group

22

Copyright © 2003 Jorgen Thelin / Cape Clear Software

EJB Component ReuseUsage Scenario Description:

The UDDI repository can be used by organizationsto make their existing business systems availablefor reuse within their organizations.The value proposition to organizations for suchprojects is not just the rapid return on investmentbut also new opportunities.

Security Implications:Because this is for internal use, organizations todate have been happy with the various useridentification systems in the UDDI registries.

Page 21: Web Services Security Tutorial - Object Management Group

23

Copyright © 2003 Jorgen Thelin / Cape Clear Software

Ad-hoc ReuseUsage Scenario Description:

Web Services technology allows organizations to exposeexisting (business) logic for reuse in ad-hoc EAIprojects.This is done by generating WSDL for existing logic(typically component-based logic such as Java, CORBA,or Enterprise JavaBeans) and registering them in aUDDI registry.An EAI project can then be reduced to looking up theregistry for a suitable service. An example is acompany implementing the logic for credit cardvalidation once, but making it available for reuseanywhere it is needed.

Security Implications:The security implications for such projects have tendedto be as varied as the projects.

Page 22: Web Services Security Tutorial - Object Management Group

24

Copyright © 2003 Jorgen Thelin / Cape Clear Software

Emerging Usage Scenarios

Page 23: Web Services Security Tutorial - Object Management Group

25

Copyright © 2003 Jorgen Thelin / Cape Clear Software

Web Services – Emerging Usage Scenarios

Point-to-point system integrationEnterprise application integrationTechnology integrationBusiness partner collaborationComposite business processesReducing I.T. lifecycle costsI.T. investment protection

Page 24: Web Services Security Tutorial - Object Management Group

26

Copyright © 2003 Jorgen Thelin / Cape Clear Software

Point-to-point system integrationUsage Scenario Description:

Web Services are ideal when ‘Lite’ internal integration needs existwithin an organization. ‘Lite’ integration is the transfer of data betweentwo or more systems. A typical scenario is when a company’s employeeinformation needs to be passed into various downstream applications.The threshold, however, stands at more complex integrationtechnology: for example, transaction processing, business processautomation, and so on. Web Services excels at communicating data,but currently not at operational processing. When composition ofbusiness services is required in a single atomic operation with complexworkflow, Web Services do not yet provide such mechanisms.

Security Implications:The security implications for such point-to-point integration projects willlargely depend on factors such as the sensitivity of the internalinformation being passed around and whether the information evermoves beyond the internal firewall at any point (which can happen if,for example, branch offices are connected over the Internet).Simple communication security technology such as SSL is usuallysufficient to address the security problems here.

Page 25: Web Services Security Tutorial - Object Management Group

27

Copyright © 2003 Jorgen Thelin / Cape Clear Software

Enterprise application integrationUsage Scenario Description:

Bridging across a complex architecture comprised of multiple systemsresiding on multiple platforms using different object models based ondifferent programming languages has previously required complex andexpensive EAI technology, but Web Services provides a more effectivecommunication technology for this than traditional EAI technology.However in many instances, Web Services currently lack many of theenterprise features of an EAI solution, especially around processmanagement, transactions, administration, and so on, although this willchange over time.

Security Implications:The security implications for such technology integration projects willprobably be the most critical technical issue. There are currently nostandards for mapping security features across all the different possibletechnologies being integrated, and this is even true when usingestablished EAI technology to some extent.Web services platform products are now starting to provide a unifyingsecurity layer when integrating disparate technologies by includingimplementations of all the basic security features such as userauthentication, access control, activity auditing and reporting that arerequired for enterprise applications.

Page 26: Web Services Security Tutorial - Object Management Group

28

Copyright © 2003 Jorgen Thelin / Cape Clear Software

Technology integrationUsage Scenario Description:

One of the largest categories of usage scenarios for web services at the moment isabout the integration of diverse applications build on various differentimplementation technologies – i.e. true technology integration. This can involvesuch simple things are Microsoft VB clients talking to Java EJB systems – somethingthat just 12 months ago was considered virtually impossible to achieve.

Security Implications:Crossing a technology gap such as this usually highlights a corresponding securitygap that needs to be addresses also.So for example, a Microsoft VB (Visual Basic) program will most likely be obtaininguser identity information from the Windows ActiveDirectory system and the nativeNT Authentication scheme, while a Java program this VB program needs to talk tomay be using JAAS (Java Authentication and Authorization Services) technology toaccess an LDAP repository and the EJB (Enterprise JavaBeans) declarative securitysystem to control access.Web service platforms and security product vendors typically need to address thesecurity gap associated with the technology gap being bridged in one of two ways:

Use products and technology that can “map” credentials and user information between thedifferent security schemes (e.g. mapping Windows ActiveDirectory credentials to LDAPcredentials). This can obviously prove increasingly harder as the number of technologiesbeing used increases. This is where products such as Quadrasis’ EASI product can add greatvalue in an organization.Provide a unifying security layer in the web services platform that to a large extent canreplace the other existing security control mechanisms.

Page 27: Web Services Security Tutorial - Object Management Group

29

Copyright © 2003 Jorgen Thelin / Cape Clear Software

Business partner collaborationUsage Scenario Description:

Until the introduction of Web Services standards, business partnersfaced a difficult task to integrate their systems. Solutions were almostalways once-off, customer integrations. They were difficult toimplement and difficult to maintain. Changes at either partner couldeasily unravel the entire system. Collaboration between multiplepartners was strictly the domain of very large companies.For example, a yellow-pages site may be created for automotive partsvendors. A parts-provider may thus desire to provide a Web Service tointegrate their services into the marketplace through the UDDI registry.Web Services offer a standards-based way for business partners tocollaborate. The usual business and organizational issues will still bethe substantive amount of work that is done with a new businesspartnership. However, a common technology framework ensures thatthe focus is the business benefits rather than resolving technologicalintegration problems.

Security Implications:The key security requirement here is for standards to exist to avoid theneed to implement a custom security solution for each different partnerbeing communicated with, in the same way that the interactiontechnology has typically converged to SOAP and WSDL.

Page 28: Web Services Security Tutorial - Object Management Group

30

Copyright © 2003 Jorgen Thelin / Cape Clear Software

Composite business processesUsage Scenario Description:

Once backend services are available in a standardized mannerthrough exposing them with XML Web Services technologiesand standards like SOAP and WSDL, it makes the task ofreusing these core business services in new applications andnew usage scenarios significantly simpler.New business processes can be created by combining togetherthe existing business process components in innovative andexciting new ways, without having to worry about thetraditional technology barriers that have hindered much of thiswork in the past.

Security Implications:However, this can easily lead to exactly the same sorts ofproblems with security gaps as found in the TechnologyIntegration usage scenarios unless all the web services beingcomposed utilize the same set of XML security standards. Thisclearly highlights the importance of mature implementations ofstandards that have been widely adopted in the industry.

Page 29: Web Services Security Tutorial - Object Management Group

31

Copyright © 2003 Jorgen Thelin / Cape Clear Software

Reducing I.T. lifecycle costsUsage Scenario Description:

There are a number of factors that make Web Services abetter choice than older technologies from the perspective oflifecycle costs:Web Services are comparatively cheaper to implement, loweringthe investment part of any return-on-investment calculation.Web Services are generally quicker to implement (assumingproductivity tools like CapeStudio are used). This results in a fastertime to market and lower development costs.Lower ongoing maintenance and transaction costs. For example,because tools like CapeStudio automatically expose applicationlogic without coding, changes can be implemented quickly andseamlessly.

Security Implications:The trend towards the web services platform providing theunified security policy enforcement layer also createsconsiderable cost savings in that using a single security systemconsiderably reduces staff training and operations costs.

Page 30: Web Services Security Tutorial - Object Management Group

32

Copyright © 2003 Jorgen Thelin / Cape Clear Software

I.T. investment protectionUsage Scenario Description:

By allowing the functionality of existing I.T. systems to bepublished and re-used through SOAP, WSDL and UDDI isconsiderably more cost effective than re-designing fromscratch. Adding a web services interface onto an existinglegacy system can provide a new lease of life for the system,and take away much of the immediate pressure to replacehighly complex systems immediately.Using web service technology as the standardized form forpublishing and re-using application services also helps toprotect future I.T. investment, by providing a degree ofseparation between the interface definition and the underlyingimplementation.

Security Implications:The use of web service security standards based on XMLsimilarly provide a level of future proofing as theimplementation of this security framework can be changedwhile still relying on the technology-neutrality of standardsbased on XML communications.

Page 31: Web Services Security Tutorial - Object Management Group

33

Copyright © 2003 Jorgen Thelin / Cape Clear Software

Identity, Securityand XML Web Services

Jorgen ThelinChief Scientist

Cape Clear Software Inc.

E-mail: [email protected]

Page 32: Web Services Security Tutorial - Object Management Group

34

Copyright © 2003 Jorgen Thelin / Cape Clear Software

AbstractThe use of security credentials and conceptsof single-sign-on and “identity” play a bigpart in Web Services as developers startwriting enterprise-grade line-of-businessapplications. An overview is provided of theemerging XML security credential standardssuch as SAML, along with various “identity”standards such as Passport and Liberty. Weexamine how “identity aware” Web Serviceimplementations need to be, and the valuea Web Services platform can add in reducingcomplexity in this area, with lessons drawnfrom experiences using J2EE technology forreal-world security scenarios.

Page 33: Web Services Security Tutorial - Object Management Group

35

Copyright © 2003 Jorgen Thelin / Cape Clear Software

AgendaThe Concept of IdentityWeb Services and IdentityInteroperable XML Security and IdentityExamples of Security Credentials in SOAPSingle-sign-onIdentity Awareness in Web Services

Page 34: Web Services Security Tutorial - Object Management Group

36

Copyright © 2003 Jorgen Thelin / Cape Clear Software

A Definition of IdentityDefinition from Cambridge DictionariesOnline:

Identity

[ noun ]

Who a person is, or the qualities of aperson or group which make themdifferent from othershttp://dictionary.cambridge.org/define.asp?key=identity*1+0

Page 35: Web Services Security Tutorial - Object Management Group

37

Copyright © 2003 Jorgen Thelin / Cape Clear Software

What is Identity?At its most basic, the concept of Identity isabout:

Who you are

How you prove who you are

What that allows you to do

Page 36: Web Services Security Tutorial - Object Management Group

38

Copyright © 2003 Jorgen Thelin / Cape Clear Software

Identity – Who are you?An identity equates to a particular subject orprincipal

For example: Joe Bloggs …… Who lives at 123 My Street, Your Town

Usually equates to a person, but could alsobe a group, corporation, or even somethinglike an automated software agentcomponent

Subjects must be distinguishable

Page 37: Web Services Security Tutorial - Object Management Group

39

Copyright © 2003 Jorgen Thelin / Cape Clear Software

Identity – Proof of identityHow do you prove who you are?

In real life, this is usually thru some officialdocuments such as:

Driving LicensePassport

In computing terms, a user has a set ofsecurity credentials such as:

username + passwordX509 certificates

Page 38: Web Services Security Tutorial - Object Management Group

40

Copyright © 2003 Jorgen Thelin / Cape Clear Software

Identity – PermissionsWhat does this identity prove about us?What does this identity allow us to do?

Some real life examples:Holding a UK passport proves I am a UK CitizenLosing my passport does not stop me being a UKCitizen; it just makes it harder to prove that I am.

A standard driving license shows I am allowed todrive a carI am not allowed to drive a Heavy Goods Vehicleunless I hold a HGV Driving License

Page 39: Web Services Security Tutorial - Object Management Group

41

Copyright © 2003 Jorgen Thelin / Cape Clear Software

Identity – Permissions and CredentialsThe permissions and entitlements for anidentity is ultimately determined by the setof credentials that were presented to assertthat identity.

Permissions and credentials are use to makepolicy enforcement decisions

Am I allowed to drive a Heavy Goods Vehicle?Am I allowed to work in the UK?Am I allowed to work in the US?

Page 40: Web Services Security Tutorial - Object Management Group

42

Copyright © 2003 Jorgen Thelin / Cape Clear Software

Web Services and IdentityHow does this affect Web Services?

Security and Identity is a fundamental requirement ofany real-world deployment of a Web Servicesapplication

Ultimately all security policy decisions are based onthe caller’s identity

The challenge is to how to represent and prove acaller’s identity in an open and interoperable way.

Page 41: Web Services Security Tutorial - Object Management Group

43

Copyright © 2003 Jorgen Thelin / Cape Clear Software

Web Services and Identity 2Security and identity considerations for a WebServices application:

AuthenticationWho is the caller?How did they prove their identity?Do we trust the source of these credentials?

AuthorizationWhat is the caller allowed to do?

AttributesWhat other facts do we know about the caller?

For example, e-mail address, department, employee numberHow do we use this attribute information in theapplication?

For example, customizing the data returned based on displaypreferences

Page 42: Web Services Security Tutorial - Object Management Group

44

Copyright © 2003 Jorgen Thelin / Cape Clear Software

Web Services and Identity 3To achieve interoperable security and identity, webservices require the followingStandard ways to:

Representing security credential data in XMLEg. SAML – Security Assertions Markup Languagespecification

Obtaining credential dataEg. Single-sign-on services such as Microsoft Passport orLiberty Alliance specifications

Transport credential data in a SOAP messageEg. SOAP header fields defined in the WS-Securityspecification

Page 43: Web Services Security Tutorial - Object Management Group

45

Copyright © 2003 Jorgen Thelin / Cape Clear Software

Types of Security TokensThe WS-Security specification set definesthe following tokens:

Unsigned security tokensUsername

Signed security tokensX.509 certificates (binary)Kerberos tickets (binary)

XML security tokensAny XML token, such as SAMLUsually self verifying / signed

Page 44: Web Services Security Tutorial - Object Management Group

46

Copyright © 2003 Jorgen Thelin / Cape Clear Software

Typical XML Security Dialogue– Non Self-Validating Credentials

Need toquery thesecurityservice tovalidate thecredentials

Page 45: Web Services Security Tutorial - Object Management Group

47

Copyright © 2003 Jorgen Thelin / Cape Clear Software

Typical XML Security Dialogue– Self Validating Credentials

No need toquery thesecurityservice tovalidate thecredentials.Usually doneby thesecurityauthoritydigitallysigning thecredentials.

Page 46: Web Services Security Tutorial - Object Management Group

48

Copyright © 2003 Jorgen Thelin / Cape Clear Software

SAML v1.0SAML – Security Assertions Markup Language

An XML-based framework for exchanging securityinformationA specification published by the OASIS organization

The SAML specification defines:How to represent security credentials (“Assertions” inSAML parlance) using XMLAn XML message exchange protocol for querying aSAML Authority service

SAML does not define:How to obtain security credentials (“Assertions”) in thefirst place

Page 47: Web Services Security Tutorial - Object Management Group

49

Copyright © 2003 Jorgen Thelin / Cape Clear Software

SAML Assertion TypesSAML Authentication Assertions

The results of an authentication action performedon a subject by a SAML authority

SAML Attribute AssertionsAttribute information about a subject

SAML Authorization AssertionsAuthorization permissions that apply to a subjectwith respect to a specified resource

Page 48: Web Services Security Tutorial - Object Management Group

50

Copyright © 2003 Jorgen Thelin / Cape Clear Software

A Username Token in WS-Security SOAPHeader

<SOAP:Envelope xmlns:SOAP="..."><SOAP:Header>

<wsse:Securityxmlns:wsse="http://schemas.xmlsoap.org/ws/2002/12/secext">

<wsse:UsernameToken><wsse:Username>jthelin</wsse:Username><wsse:Password Type="wsse:PasswordDigest">XYZabc123</wsse:Password><wsse:Nonce>h52sI9pKV0BVRPUolQC7Cg==</wsse:Nonce>

</wsse:UsernameToken>...

</wsse:Security></SOAP:Header><SOAP:Body Id="MsgBody">

<!–- SOAP Body data --></SOAP:Body></SOAP:Envelope>

Page 49: Web Services Security Tutorial - Object Management Group

51

Copyright © 2003 Jorgen Thelin / Cape Clear Software

A Binary X509 Certificate in WS-Security SOAPHeader

<wsse:Securityxmlns:wsse="http://schemas.xmlsoap.org/ws/2002/12/secext"><wsse:BinarySecurityToken Id="X509Token"

xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/12/secext"ValueType="wsse:X509v3"EncodingType="wsse:Base64Binary"

>MIIEZzCCA9CgAwIBAgIQEmtJZc0...

</wsse:BinarySecurityToken><ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">

<ds:SignedInfo> ... </ds:SignedInfo><ds:SignatureValue> ... </ds:SignatureValue><ds:KeyInfo>

<wsse:SecurityTokenReference><wsse: Reference URI=”#X509Token” />

</wsse:SecurityTokenReference></ds:KeyInfo>

</ds:Signature>...

</wsse:Security>

Page 50: Web Services Security Tutorial - Object Management Group

52

Copyright © 2003 Jorgen Thelin / Cape Clear Software

A SAML Assertion in WS-Security SOAP Header<wsse:Securityxmlns:wsse="http://schemas.xmlsoap.org/ws/2002/12/secext"><saml:Assertion

xmlns:saml="urn:oasis:names:tc:SAML:1.0:assertion"MajorVersion="1"MinorVersion="0"AssertionID="SecurityToken-mc375268"Issuer="mycompany"IssueInstant="2002-07-23T11:32:05.6228146-07:00" >...

</saml:Assertion><ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">

<ds:SignedInfo> ... </ds:SignedInfo><ds:SignatureValue> ... </ds:SignatureValue><ds:KeyInfo>

<wsse:SecurityTokenReference><saml:AssertionIDReference>

SecurityToken-mc375268</saml:AssertionIDReference>

</wsse:SecurityTokenReference></ds:KeyInfo>

</ds:Signature>...

</wsse:Security>

Page 51: Web Services Security Tutorial - Object Management Group

53

Copyright © 2003 Jorgen Thelin / Cape Clear Software

Single-sign-on ServicesSSO Services provide:

a single point of logon and authenticationa standardized way to obtain suitable credentials toprove the authenticated identity

The main contenders using XML are:Liberty AllianceMicrosoft PassportProprietary security products such as NetegritySiteMinder are adding direct SAML interfacesWS-Trust – new spec for standardized XML interface

Still remains an area needing standardization

Page 52: Web Services Security Tutorial - Object Management Group

54

Copyright © 2003 Jorgen Thelin / Cape Clear Software

Liberty AllianceThe Liberty Alliance Project is a cross-industry group aiming to establish an openstandard for federated network identity

http://www.projectliberty.org/

The Liberty specification v1.0 has two mainfacets:

Single sign-onIdentity federation

Page 53: Web Services Security Tutorial - Object Management Group

55

Copyright © 2003 Jorgen Thelin / Cape Clear Software

Microsoft .NET PassportMicrosoft .NET Passport is a suite of Web-basedservices that makes using the Internet andpurchasing online easier and faster for users.http://www.passport.com/.NET Passport provides users with

Single sign-in (SSI)Fast purchasing capability at participating sites

Microsoft is upgrading the current Passport facilitiestoProvide an XML interfaceSupport federationUse Kerberos v5 as the underlying mechanism forsecurely exchanging credentials

Page 54: Web Services Security Tutorial - Object Management Group

56

Copyright © 2003 Jorgen Thelin / Cape Clear Software

The Need for a Sign-on Standard– WS-Trust

The need remains for a “sign-on standard” to avoidreliance on proprietary interfaces

WS-TrustA proposed specification in the WS-Security family

Provides a standardized interface for acquiring securitytokens

Still very early in the standardization process, but themost likely candidate for a common interface

http://msdn.microsoft.com/library/en-us/dnglobspec/html/ws-trust.asp

Page 55: Web Services Security Tutorial - Object Management Group

57

Copyright © 2003 Jorgen Thelin / Cape Clear Software

Identity-awareness in Web ServicesDo web services themselves need to beidentity-aware?

Not really, in most cases

A mature web services platform product such asCape Clear Server can handle almost all the“boilerplate” work of authentication andenforcement of access control lists

Page 56: Web Services Security Tutorial - Object Management Group

58

Copyright © 2003 Jorgen Thelin / Cape Clear Software

Identity-awareness in Web Services - 2Most standard authentication and authorizationfunctions are best done in a uniform manner by theplatform, rather than being implemented on anapplication-by-application basis

Interceptor plugins allow this to be a deployment policydecision rather than an implementation decision

Web Service application only needs to be Identity-aware if it needs to use attributes asserted for thecaller

For example, reading the delivery address from theuser’s MS Passport record

Page 57: Web Services Security Tutorial - Object Management Group

59

Copyright © 2003 Jorgen Thelin / Cape Clear Software

Ultimate Web Services platform securityUltimate goal will be declarative security functions forweb services just like EJB

So, having declarative statements of:Permitted authentication realms / single-sign-on services

Required transport security attributes(for example, “Callers must use encrypted / SSLconnections”)

Required message security attributes(for example, “Messages must be digitally signed”)

Role-based access control lists applied at the granularity ofthe operation / method call.

This places control of security to applicationadministrators rather than developers.

Page 58: Web Services Security Tutorial - Object Management Group

60

Copyright © 2003 Jorgen Thelin / Cape Clear Software

Summary“Identity” is one of the fundamental concepts in allWeb Service security mechanisms

Having a standard XML-based serialized form ofcredentials is vital for true end-to-end interoperability

Standardization of specifications for credentialexchange and single-sign-on using XML and SOAPare still incomplete, so true interoperability is not yetpossible.

Use a mature Web Services runtime platform such asCape Clear Server to handle most “boilerplate”security tasks such as enforcing authentication andauthorization requirements

Page 59: Web Services Security Tutorial - Object Management Group

61

Copyright © 2003 Jorgen Thelin / Cape Clear Software

XML Security Standards

Current and Emerging Specificationsattempting to provide standardization of

XML security infrastructure

Page 60: Web Services Security Tutorial - Object Management Group

62

Copyright © 2003 Jorgen Thelin / Cape Clear Software

Specifications and StandardsThere are lots of specifications flying aroundconcerning Web Services

Not all specifications are, or will be, “real”standards

The hard part is working out whichspecifications will “win” and become part ofthe standard infrastructure

Vendors and Architects need to plot an“intercept trajectory” for emergingstandards

Page 61: Web Services Security Tutorial - Object Management Group

63

Copyright © 2003 Jorgen Thelin / Cape Clear Software

“Real” Standards

Page 62: Web Services Security Tutorial - Object Management Group

64

Copyright © 2003 Jorgen Thelin / Cape Clear Software

When is a Specification not a Standard?Real standards are:

Published by a “recognized” standards developmentorganization – eg. W3C, OASISCreated through a process that allows public commentand feedbackAgreed and approved by a committee or groupconsisting of wide and diverse membershipPublished at a final or definitive status, such as "W3CRecommendation"Publicly available for reference - most usually bypublication on the Internet.Achieving both traction (usage) and sanction (backing)

Everything else is just a specification hoping tobecome a standard!

Page 63: Web Services Security Tutorial - Object Management Group

65

Copyright © 2003 Jorgen Thelin / Cape Clear Software

Security Standards OverviewThere are several specifications for various aspects ofXML and Web Services Security

The standardization process is still at a very earlystage in the evolution

The front runner specifications are:XML Digital SignaturesXML EncryptionSAMLWS-SecurityWS-TrustWS-PolicyWS-Secure ConversationWS-Security Policy

Page 64: Web Services Security Tutorial - Object Management Group

66

Copyright © 2003 Jorgen Thelin / Cape Clear Software

XML Digital SignaturesSource: W3CStatus: Final

Purpose:Specifies a process for digitally signing data andrepresenting the result in XMLDefine the processing rules and syntax for XML digitalsignatures

Notes:A serialised form in XML is defined for the signatureThe signatures can be applied to information in anyform, not just XML-formatted informationThe specification specifically excludes encryption.

Page 65: Web Services Security Tutorial - Object Management Group

67

Copyright © 2003 Jorgen Thelin / Cape Clear Software

XML EncryptionSource: W3CStatus: FinalPurpose:

Specifies a process for encrypting data and representingthe result in XML such that it is only discernable to theintended recipients and opaque to all others

Notes:The information that is encrypted can be arbitrary data(including an XML document), an XML element, or XMLelement contentThe result is an XML Encryption element that containsor identifies the cipher dataThe standard is generally accepted in the industry,although not yet in widespread use

Page 66: Web Services Security Tutorial - Object Management Group

68

Copyright © 2003 Jorgen Thelin / Cape Clear Software

SAMLSource: OASISStatus: FinalPurpose:

Uses XML to encode authentication and authorizationinformation in “assertions”

Notes:Defines a standardized XML format for credential andsecurity assertion dataThe authentication and authorization information can bemoved around systems within or between organizationsSAML is platform-independent and language-independentA key objective of SAML is to allow organizations toexchange date regardless of the security system theyuse

Page 67: Web Services Security Tutorial - Object Management Group

69

Copyright © 2003 Jorgen Thelin / Cape Clear Software

WS-SecurityOwner: Microsoft/IBM/Verisign – Now OASIS WSS-TCStatus: WIP for OASIS standardization processPurpose:

Provides a model for many levels of security needed for web services.A general-purpose mechanism to associate security-tokens with messagesDescribes how to encode binary security tokens in messages using SOAP HeadersIncludes enhancements to SOAP to provide quality of protection mechanisms

Notes:Builds on top of XML Digital Signatures and XML Encryption specificationsWS-Security Addendum adds

Facility for timestamp and TTL headersProvides greater protection when passing around passwords and security certificates

More Info:http://www-106.ibm.com/developerworks/library/ws-secure/http://www-106.ibm.com/developerworks/library/ws-secureadd.htmlWS-Security AppNotes - provide guidance to implementers of the WS-Securityspecification:http://www-106.ibm.com/developerworks/webservices/library/ws-secapp/

Page 68: Web Services Security Tutorial - Object Management Group

70

Copyright © 2003 Jorgen Thelin / Cape Clear Software

WS-Security - Security Token TypesThe WS-Security specification set definesthe following tokens:

Unsigned security tokensUsername

Signed security tokensX.509 certificates (binary)Kerberos tickets (binary)

XML security tokensAny XML token, such as SAMLUsually self verifying / signed

Page 69: Web Services Security Tutorial - Object Management Group

71

Copyright © 2003 Jorgen Thelin / Cape Clear Software

WS-Security Profile for XML-based TokensOwner: Microsoft/IBM/Verisign – Now OASIS WSSStatus: WIP for OASIS standardization processPurpose:

Describes a general framework to enable XML-basedsecurity tokens to be used with WS-Security

Notes:Two profiles that use this general framework areprovided for:

Security Assertion Markup Language (SAML)eXtensible rights Markup Language (XrML).

More Info:http://www-106.ibm.com/developerworks/library/ws-sectoken.html

Page 70: Web Services Security Tutorial - Object Management Group

72

Copyright © 2003 Jorgen Thelin / Cape Clear Software

WS-TrustOwner: Microsoft/IBM/Verisign/RSAStatus: Initial public draft release – SolicitingcommentsPurpose:

Uses the secure messaging mechanisms of WS-Securityto define additional primitives and extensions for theissuance, exchange and validation of security tokens.

Notes:WS-Trust also enables the issuance and disseminationof credentials within different trust domains.

More Info:http://www-106.ibm.com/developerworks/webservices/library/ws-trust/

Page 71: Web Services Security Tutorial - Object Management Group

73

Copyright © 2003 Jorgen Thelin / Cape Clear Software

WS-PolicyOwner: BEA/Microsoft/IBM/SAPStatus: Initial public draft release – Soliciting commentsPurpose:

WS-Policy FrameworkDefines a general purpose model and corresponding syntax to describe andcommunicate Web services policiesAllows Service consumers can discover the information they need to know tobe able to access services from a Service Providerhttp://www-106.ibm.com/developerworks/webservices/library/ws-polfram/

WS-Policy AttachmentsProvides a general-purpose mechanism for associating policy assertions withsubjects (services).Provides two approaches for making assertions:

policy assertions defined as part of the definition of the subjectpolicy assertions defined independently of and associated through an external bindingto the subject

http://www-106.ibm.com/developerworks/webservices/library/ws-polatt/

WS-Policy AssertionsSpecifies a set of common message policy assertions that can be specifiedwithin a policyhttp://www-106.ibm.com/developerworks/webservices/library/ws-polas/

Page 72: Web Services Security Tutorial - Object Management Group

74

Copyright © 2003 Jorgen Thelin / Cape Clear Software

WS-Secure ConversationOwner: Microsoft/IBM/Verisign/RSAStatus: Initial public draft release – Soliciting commentsPurpose:

Defines mechanisms for establishing and sharing securitycontexts, and deriving keys from security contexts, to enable asecure conversation

Notes:Built on top of the WS-Security and WS-Policy models toprovide secure communication between servicesWS-Security focuses on the message authentication model butnot a security context, and thus is subject to several forms ofsecurity attacks which this specification deals with

More Info:http://www-106.ibm.com/developerworks/webservices/library/ws-secon/

Page 73: Web Services Security Tutorial - Object Management Group

75

Copyright © 2003 Jorgen Thelin / Cape Clear Software

WS-Security PolicyOwner: Microsoft/IBM/Verisign/RSAStatus: Initial public draft release – Solicitingcomments

Purpose:Defines a model and syntax to describe andcommunicate security policy assertions within a largerPolicy FrameworkCovers assertions for security tokens, data integrity,confidentiality, visibility, security headers and the ageof a message.

More Info:http://www-106.ibm.com/developerworks/webservices/library/ws-secpol/

Page 74: Web Services Security Tutorial - Object Management Group

76

Copyright © 2003 Jorgen Thelin / Cape Clear Software

The Extensibility / Composability of XMLXML is designed to be inherently extensible

XML allows composable data structures bysupporting nested content

Extra data can be

Namespaces allow unique identification ofdata content

Composability does not require anyregistration with a central authority, just aunique namespace

Page 75: Web Services Security Tutorial - Object Management Group

77

Copyright © 2003 Jorgen Thelin / Cape Clear Software

Combining Standards / SpecificationsDue to the extensibility features of XML and SOAP, allXML and Security Specifications can generally becombined independently of each other

For example, add SOAP Headers for:WS-Security X509 Token header to assert identityWS-Policy header to signify:

Text encoding requirementsSupported languages

On occasions, ordering of combinations can besignificant

For example, do you “encrypt” then “digitally sign”, or“digitally sign” then “encrypt”

Page 76: Web Services Security Tutorial - Object Management Group

78

Copyright © 2003 Jorgen Thelin / Cape Clear Software

WS-I Basic Security ProfileFrom the charter for the new WS-I BasicSecurity Profile work group:

The BSP-WG will develop an interoperabilityprofile dealing with transport security, SOAPmessage security, and other Basic Profile-orientedsecurity considerations of Web Services

Although this will not cover all aspects ofthe emerging XML Security specifications, itwill certainly solidify the base levels.

Page 77: Web Services Security Tutorial - Object Management Group

79

Copyright © 2003 Jorgen Thelin / Cape Clear Software

ConclusionOnly partial agreement on the “realstandards” at the moment

Rival XML security specifications are still emergingXML security standards have not yet been widelyadopted

New XML security standards are not yetproven (so probably contain “holes”)

WS-I Basic Security Profile will deliver astandardized XML security infrastructure

Page 78: Web Services Security Tutorial - Object Management Group

80

Copyright © 2003 Jorgen Thelin / Cape Clear Software

Customization Using Interceptors

Using an interceptor-based frameworkfor providing customized client-side and

server-side Web Service extensionbehaviour

Page 79: Web Services Security Tutorial - Object Management Group

81

Copyright © 2003 Jorgen Thelin / Cape Clear Software

Interceptors

Interceptors are a general purpose conceptfor customizing and controlling messageprocessing

Interceptors provide a framework forchanging the steps involved in processing amessage

Interceptors can be used both server-sideand client side

Page 80: Web Services Security Tutorial - Object Management Group

82

Copyright © 2003 Jorgen Thelin / Cape Clear Software

Interceptor Plugin Architecture

Page 81: Web Services Security Tutorial - Object Management Group

83

Copyright © 2003 Jorgen Thelin / Cape Clear Software

Interceptor Plugins – Server-side

Page 82: Web Services Security Tutorial - Object Management Group

84

Copyright © 2003 Jorgen Thelin / Cape Clear Software

Interceptor Plugins – Client-side

Page 83: Web Services Security Tutorial - Object Management Group

85

Copyright © 2003 Jorgen Thelin / Cape Clear Software

ServerClient

Inbound and Outbound Interception PointsOften have similar functionality at “opposite” interceptor points

Eg. Server-side response interceptor may encrypt data in the reply just like theclient-side request interceptor encrypted data in the request message

The request message is:Outbound for the clientInbound for the server

The response message is:Inbound for the clientOutbound for the server

Encrypt Decrypt

Decrypt Encrypt

MessageProcessor

ClientProgram

MessageTransport

MessageTransport

Page 84: Web Services Security Tutorial - Object Management Group

86

Copyright © 2003 Jorgen Thelin / Cape Clear Software

The “Interceptor-Pair” ConceptUsually require a pair of interceptors to fulfil a task

One on the client sideeg. Request interceptor which encrypts the data in a field

One on the sever sideeg. Request interceptor which decrypt the field data

The functions of the interceptor pair need to match upEg. Both request interceptors cannot both encrypt or both decrypt

This is often referred to as an input-output interceptor pair

ServerClientEncrypt Decrypt

Decrypt Encrypt

MessageProcessor

ClientProgram

MessageTransport

MessageTransport

Interceptor pair #1

Interceptor pair #2

Page 85: Web Services Security Tutorial - Object Management Group

87

Copyright © 2003 Jorgen Thelin / Cape Clear Software

JAX-RPC Handlers (aka “SOAP Interceptors”)JAX-RPC Handlers

Provide a standardized interface for a “SOAPinterceptor” in Java

Operate on the SOAP object model defined bySAAJ (SOAP with Attachments API for Java)

Are part of the JAX-RPC extension module whichwill be in J2SE 1.4 and J2EE 1.4

Provides a MessageContext object for passing call-related context information between interceptorsand callbacks

Page 86: Web Services Security Tutorial - Object Management Group

88

Copyright © 2003 Jorgen Thelin / Cape Clear Software

JAX-RPC handler interface:javax.xml.rpc.handler.Handler

JAX-RPC interface javax.xml.rpc.handler.HandlerInterception Operations:

boolean handleRequest( MessageContext context )Called with each request message

boolean handleResponse( MessageContext context )Called with each response message

boolean handleFault( MessageContext context )Called with each fault message

Interrogation Operations:QName[] getHeaders()

The names of the header blocks processed by this Handler

Lifecycle Operations:void init( HandlerInfo config )

Called at the start of the lifecycle of the Handler instance

void destroy()Called at the end of the lifecycle for the Handler instance.

Page 87: Web Services Security Tutorial - Object Management Group

89

Copyright © 2003 Jorgen Thelin / Cape Clear Software

Microsoft Web Service Extensions (WSE)Web Services Enhancements 1.0 for Microsoft .NET

WSE is a class library that implements additional WebServices functionality and advanced protocols

Diagnostics and tracingWS-SecurityWS-RoutingWS-Referral

Provides a SoapContext object for passing call-related context information between interceptors andcallbacks

Page 88: Web Services Security Tutorial - Object Management Group

90

Copyright © 2003 Jorgen Thelin / Cape Clear Software

WSE Filter InterfacesInterface SoapOutputFilter

Interception Operations:void ProcessMessage( SoapEnvelope envelope)

Lifecycle Operations:Standard object constructorStandard object destructor

Interface SoapInputFilterInterception Operations:

void ProcessMessage( SoapEnvelope envelope )

Interrogation Operations:bool CanProcessHeader( XmlElement header, SoapContext context )

Lifecycle Operations:Standard object constructorStandard object destructor

Page 89: Web Services Security Tutorial - Object Management Group

91

Copyright © 2003 Jorgen Thelin / Cape Clear Software

Microsoft Web Service Extensions (WSE)Framework

WSE is based on thearchitectural model of apipeline of filters thatprocess inbound andoutbound SOAP messages

The pipeline controlsexecution order

Output filters are called inreverse order

Filters can be integratedwith ASP.NET or used instandalone code

Source: MSDN

More info: http://msdn.microsoft.com/library/en-us/dnwebsrv/html/insidewsepipe.asp

Filter ordering in the WSE pipeline

Page 90: Web Services Security Tutorial - Object Management Group

92

Copyright © 2003 Jorgen Thelin / Cape Clear Software

WSE Built-in Filters

Message routing(WS-Routing)

RoutingOutputFilterRoutingInputFilterMicrosoft.Web.Services.Routing

Dynamic updates torouting paths(WS-Referral)

ReferralOutputFilterReferralInputFilterMicrosoft.Web.Services.Referral

Timestamp support(WS-Security)

TimestampOutputFilterTimestampInputFilterMicrosoft.Web.Services.Timestamp

Authentication,signature andencryption support(WS-Security)

SecurityOutputFilterSecurityInputFilterMicrosoft.Web.Services.Security

Write messages to logfiles to help withdebugging

TraceOutputFilterTraceInputFilterMicrosoft.Web.Services.Diagnostics

PurposeOutputFilter

InputFilter

Namespace

Page 91: Web Services Security Tutorial - Object Management Group

93

Copyright © 2003 Jorgen Thelin / Cape Clear Software

Server-side InterceptorsBoth JAX-RPC Handlers and .NET WSEFilters fit naturally as server-sideinterceptors

Inbound interception points handle requests

Outbound interception points handle response

Page 92: Web Services Security Tutorial - Object Management Group

94

Copyright © 2003 Jorgen Thelin / Cape Clear Software

Client-side Interceptors – WSE Filters.NET WSE Filters fit innaturally as client-sideinterceptors too

Output filters handlerequestsInput filters handleresponses

Can directly reusefilters written forserver-side use

Eg. Decryptioninterceptor is alwaysan input filter

Source: MSDN

The WSE filter model

Page 93: Web Services Security Tutorial - Object Management Group

95

Copyright © 2003 Jorgen Thelin / Cape Clear Software

ServerClientRequestHandler

RequestHandler

ResponseHandler

ResponseHandler

MessageProcessor

ClientProgram

MessageTransport

MessageTransport

Client-side Interceptors – JAX-RPC HandlersJAX-RPC Handlers do not fit so cleanly as client-side interceptors:

handleRequest needs to do different things on the client-side(outbound) and server-side (inbound)handleResponse needs to do different things on the client-side(inbound) and server-side (outbound)

Need to write different JAX-RPC Handlers for client and server-side, or use a “configuration flag” to swap behaviour round

Page 94: Web Services Security Tutorial - Object Management Group

96

Copyright © 2003 Jorgen Thelin / Cape Clear Software

Combining Interceptors in “Chains”Interceptors are usually independent so canbe combined to achieve a desired function

For example, implementing a security policyfor a Web Service:

An interceptor to decrypt a SOAP message whichwas transmitted using XML EncryptionAn interceptor to recognise and decode SAMLauthentication assertion carried in the WS-Security header of the SOAP messageAn interceptor to perform a role-based accesscontrol check that the caller is a member of thegroup of people permitted to call this operation

Page 95: Web Services Security Tutorial - Object Management Group

97

Copyright © 2003 Jorgen Thelin / Cape Clear Software

Aspect-oriented Programming (AOP)Aspect-oriented Programming (AOP) is a way ofimplementing separation of concerns (SOC) insoftware.

AOP make it possible to modularize crosscutting“aspects” or “concerns” of a system.

For example:Logging policiesDiagnosticsTransactional contextsSecurity policy checks

Separation of Concerns (SOC) makes software mucheasier to develop, construct and understandMore info on AOP / AOSD at: http://aosd.net/

Page 96: Web Services Security Tutorial - Object Management Group

98

Copyright © 2003 Jorgen Thelin / Cape Clear Software

Interceptors as AOPInterceptors are a form of Aspect-oriented Programming(AOP)

Plug in an interceptor to deal with a specific function such asmessage validation or loggingCan change the external visible behaviour by adding aninterceptor to modify data before or after processingCan change the external visible behaviour by adding aninterceptor to “short-circuit” processing

Interceptors provide an ideal way to implement reusable“policy” aspects of a systemFor example: Access-control checks

Interceptors provide an extensibility framework for WebService protocols and applicationsFor example: Adding WS-Security credentials

Page 97: Web Services Security Tutorial - Object Management Group

99

Copyright © 2003 Jorgen Thelin / Cape Clear Software

Example – Custom Authentication HeadersScenario:

Client program needs to communicate with a WebService which requires an session-basedauthentication dialog

When calling a “start session” operation, theresponse message contains a custom headerwhich must be resubmitted with all futurerequests

Page 98: Web Services Security Tutorial - Object Management Group

100

Copyright © 2003 Jorgen Thelin / Cape Clear Software

Example – Custom Authentication HeadersImplementation:

A custom client-side interceptor can be written todeal with this specific situation

Client-side response interceptor:Preserve the authentication token found in the SOAPheader of the response message

Client-side request interceptor:Add any preserved authentication token into a SOAPheader of the next request message

Page 99: Web Services Security Tutorial - Object Management Group

101

Copyright © 2003 Jorgen Thelin / Cape Clear Software

Example Code – Custom Auth Headerspublic class SoapCorrelationHeaderInterceptor

implements Handler{

SOAPHeaderElement correlationHeader; // OK for single-threaded clientString correlationHeaderElementNamespace;String correlationHeaderElementName;Name correlationHeaderName;public void init( HandlerInfo info ){

Map cfg = info.getHandlerConfig();correlationHeaderElementNamespace = (String) cfg.get( "header.ns" );correlationHeaderElementName = (String) cfg.get( "header.name" );

}public void destroy(){}public QName[] getHeaders(){

return new QName[] {new QName( correlationHeaderElementNamespace, correlationHeaderElementName )

};}// More below

}

Page 100: Web Services Security Tutorial - Object Management Group

102

Copyright © 2003 Jorgen Thelin / Cape Clear Software

Example Code – Custom Auth Headerspublic boolean handleResponse( MessageContext context ){

try {// Dig into the response message and extract the contents of the token headerSOAPMessage soapMessage = ((SOAPMessageContext)context).getMessage();SOAPEnvelope soapEnvelope = soapMessage.getSOAPPart().getEnvelope();SOAPHeader soapHeaders = soapEnvelope.getHeader();if (this.correlationHeaderName == null) {

this.correlationHeaderName = soapEnvelope.createName(correlationHeaderElementName, null,correlationHeaderElementNamespace );

}if (soapHeaders != null) {

this.correlationHeader =extractNamedHeader( correlationHeaderName, soapHeaders );

}}catch (SOAPException se) {

throw new JAXRPCExceptionImpl( se );}return true; // Continue processing

}

Page 101: Web Services Security Tutorial - Object Management Group

103

Copyright © 2003 Jorgen Thelin / Cape Clear Software

Example Code – Custom Auth Headersprotected SOAPHeaderElement extractNamedHeader(

Name headerName, SOAPHeader soapHeaders )throws SOAPException

{Iterator iter =

soapHeaders.getChildElements( headerName );if (iter.hasNext()) {

SOAPHeaderElement soapHeaderField =(SOAPHeaderElement) iter.next();

// Remove from SOAP Message element treereturn soapHeaderField.detachNode();

}else {

return null;}

}

Page 102: Web Services Security Tutorial - Object Management Group

104

Copyright © 2003 Jorgen Thelin / Cape Clear Software

Example Code – Custom Auth Headerspublic boolean handleRequest( MessageContext context ){

if (this.correlationHeader != null) {try {

// Dig into the request message and add the contents of the token headerSOAPMessage soapMessage = ((SOAPMessageContext)context).getMessage();SOAPEnvelope soapEnvelope = soapMessage.getSOAPPart().getEnvelope();SOAPHeader soapHeaders = soapEnvelope.getHeader();if (soapHeaders == null) { soapHeaders = soapEnvelope.addHeader(); }soapHeaders.addChildElement( this.correlationHeader );

}catch (SOAPException se) {

throw new JAXRPCExceptionImpl( se );}

}return true; // Continue processing

}public boolean handleFault( MessageContext context ){

return true; // Continue processing}

Page 103: Web Services Security Tutorial - Object Management Group

105

Copyright © 2003 Jorgen Thelin / Cape Clear Software

ConclusionInterceptors provide a highly extensibleprocessing architecture

Interceptors allow incrementalenhancements to functionality throughwriting small amounts of code

Interceptors are the way enhanced protocolsupport is being added to SOAP platforms

Interceptors provide an ideal way toimplement custom security logic for WebServices

Page 104: Web Services Security Tutorial - Object Management Group

106

Copyright © 2003 Jorgen Thelin / Cape Clear Software

Web Services Security Tutorial - Wrap-up

A Web Services Security Overview andImplementation Tutorial

Page 105: Web Services Security Tutorial - Object Management Group

107

Copyright © 2003 Jorgen Thelin / Cape Clear Software

Modules CoveredWeb Services Security RequirementsWeb Services Security FrameworkWeb Services Usage ScenariosSecurity Credentials and IdentityEmerging XML Security StandardsSecurity Implementation using InterceptorsLessons from Implementing Web ServicesSecurity

Page 106: Web Services Security Tutorial - Object Management Group

108

Copyright © 2003 Jorgen Thelin / Cape Clear Software

Lessons from the First WaveExisting Web tier security infrastructure usuallysufficient for many internal projectsNecessary to accommodate third-party securityproducts already in use in the organizationEnd-to-end framework is necessary to avoid securitygapsOperational security procedure best practices forWeb services have yet to be developedXML security specifications have not yet been widelyadoptedRival XML security specifications are still emergingLack of experience and training on XML securitystandards is holding back adoption

Page 107: Web Services Security Tutorial - Object Management Group

109

Copyright © 2003 Jorgen Thelin / Cape Clear Software

Recommendations for the futureTrack usage scenarios in an organization todetermine security levelsStart with “proof-of-concept” projects togain experienceIntegration with Microsoft .NET securityschemes will be vitalWS-I Basic Security Profile will reduceinteroperability problems with current XMLSecurity standards.Don’t throw away the organization’s existingsecurity infrastructurePlan to implement end-to-end security