WS-Policy Brian Garback Department of Computer Science

Slides:



Advertisements
Similar presentations
Primer Maryann Hondo, IBM Umit Yalcinalp, SAP. Current Proposal Introduction The WS-Policy specification defines a policy to be a collection of policy.
Advertisements

On and use=document|rpc, style=literal|encoded A personal opinion Sanjiva Weerawarana IBM Research September 9-11, 2002.
® IBM Software Group © IBM Corporation WS-Policy Attachment- spec overview Maryann Hondo IBM.
Web Service Architecture
WS-Policy Brian Garback. 2 Agenda  Introduction  Domain Terminology  Policy Expressions  Policy Assertions  Policy Attachments  Conclusion  Policy.
Claus von Riegen, SAP AG WS-Policy Overview W3C Workshop on Constraints and Capabilities for Web Services.
An Introduction to Web Services Sriram Krishnan, Ph.D.
WS – Security Policy Prabath Siriwardena Director, Security Architecture.
Web Service Ahmed Gamal Ahmed Nile University Bioinformatics Group
CIS 375—Web App Dev II SOAP.
SOAP SOAP is a protocol for accessing a Web Service. SOAP stands for Simple Object Access Protocol * SOAP is a communication protocol * SOAP is for communication.
Web Services Darshan R. Kapadia Gregor von Laszewski 1http://grid.rit.edu.
Web Services Nasrullah. Motivation about web service There are number of programms over the internet that need to communicate with other programms over.
Grid Computing, B. Wilkinson, 20043a.1 WEB SERVICES Introduction.
WS-PolicyNegotiate A Web Service Standard for Policy Negotiation by Nicholis Bufmack.
Peoplesoft: Building and Consuming Web Services
WSDL Web Services Description Language Neet Wadhwani University of Colorado 3 rd October, 2001.
Introduction to XML This material is based heavily on the tutorial by the same name at
Secure Systems Research Group - FAU Web Services Standards Presented by Keiko Hashizume.
1 Web Services Security XML Encryption, XML Signature and WS-Security.
A Use Case for SAML Extensibility Ashish Patel, France Telecom Paul Madsen, NTT.
Web Service Standards, Security & Management Chris Peiris
WSDL: Web Services Definition Language CS 795/895.
WS-Security: SOAP Message Security Web-enhanced Information Management (WHIM) Justin R. Wang Professor Kaiser.
James Holladay, Mario Sweeney, Vu Tran. Web Services Presentation Web Services Theory James Holladay Tools – Visual Studio Vu Tran Tools – Net Beans Mario.
Web Services Description Language (WSDL) Jason Glenn CDA 5937 Process Coordination in Service and Computational Grids September 30, 2002.
WEB SERVICE DESCRIPTION LANGUAGE ( WSDL) -SIVA SAGAR TELLA.
Web Services Standards. Introduction A web service is a type of component that is available on the web and can be incorporated in applications or used.
XML Web Services Architecture Siddharth Ruchandani CS 6362 – SW Architecture & Design Summer /11/05.
WS-Security Protocol Ramkumar Chandrasekharan CS 265.
1 Web Service Description Language (WSDL) 大葉大學資工系.
Secure Systems Research Group - FAU Patterns for Web Services Security Standards Presented by Keiko Hashizume.
Semantic Web Technologies Research Topics and Projects discussion Brief Readings Discussion Research Presentations.
1 Tutorial 14 Validating Documents with Schemas Exploring the XML Schema Vocabulary.
1 Web Services Web and Database Management System.
WS-Security Additional Material. Security Element: enclosing information n UsernameToken block u Defines how username-and-password info is enclosed in.
Kemal Baykal Rasim Ismayilov
Secure Web Services Arvind Easwaran CIS/TCOM 551 Spring 2004 Slide Set 7.
Leveraging Web Service Security Standards Richard Jacob WSRP F2F LA, March, 2004.
Introduction to Web Services Presented by Sarath Chandra Dorbala.
1 WS-Policy. 2 What’s the Problem? To use a web service a client needs more information than is provided in WSDL file. Examples: –Does service support.
1 G52IWS: Web Services Description Language (WSDL) Chris Greenhalgh
© 2005 Global Grid Forum The information contained herein is subject to change without notice Leading the pervasive adoption of grid computing for research.
Jackson, Web Technologies: A Computer Science Perspective, © 2007 Prentice-Hall, Inc. All rights reserved Chapter 9 Web Services: JAX-RPC,
Florida Atlantic University Department of Electrical and Computer Engineering &Computer Science ( ECECS ) &Computer Science ( ECECS ) Security Systems.
Java Web Services Orca Knowledge Center – Web Service key concepts.
Designing software applications
Sabri Kızanlık Ural Emekçi
T Network Application Frameworks and XML Web Services and WSDL Sasu Tarkoma Based on slides by Pekka Nikander.
Nurhak Karakaya & Murat Çavdar
Service-Oriented Computing: Semantics, Processes, Agents
Web Service Security Standards Overview
Component-based Software Engineering: XML
Simple Object Access Protocol (SOAP)
Web Ontology Language for Service (OWL-S)
Chapter 7 Representing Web Data: XML
Chapter 9 Web Services: JAX-RPC, WSDL, XML Schema, and SOAP
ELECTRONIC MAIL SECURITY
UNIT V.
Web Service Metadata Exchange
ELECTRONIC MAIL SECURITY
Tim Bornholtz Director of Technology Services
Introduction to Web Services
Distributed System using Web Services
Web Service Security: A Formal Solution to XML Rewriting Attack
Distributed System using Web Services
Presentation transcript:

WS-Policy Brian Garback Department of Computer Science University of Virginia Academic Advisor: Alfred C. Weaver

Agenda Introduction Domain Terminology Policy Expressions Policy Assertions Policy Attachments Conclusion Policy In Action

Introduction to WS-Policy Why? To integrate software systems with web services Need a way to express its characteristics When/Does it require … WS-Security? signed messages? encryption? What security tokens is it capable of processing? What tokens does it prefer? Without this standard, developers need docs

Introduction to WS-Policy What? Provides a flexible and extensible grammar for expressing the capabilities, requirements, and general characteristics of Web Service entities How? Defines a model to express these properties as policies

Introduction to WS-Policy Goal: Provide the mechanisms needed to enable Web Services applications to specify policies WS-Policy specifies: An XML-based structure called a policy expression containing policy information Grammar elements to indicate how the contained policy assertions apply

Agenda Introduction Domain Terminology Policy Expressions Policy Assertions Policy Attachments Conclusion Policy In Action

Terminology Policy: refers to the set of information being expressed as policy assertions Policy Assertion: represents an individual preference, requirement, capability, etc. Policy Expression: set of one or more policy assertions Policy Subject: an entity to which a policy expression can be bound

Terminology Policy Attachment: the mechanism for associating policy expressions with one or more subjects

Agenda Introduction Domain Terminology Policy Expressions Policy Assertions Policy Attachments Conclusion Policy In Action

Policy Expressions A Policy Expression is the XML representation of a policy XML facilitates interoperability between a heterogeneous platforms We will look at how to name and identify them

Policy Namespaces WS-Policy schema defines all constructs that can used in a policy expression Prefix Description Namespace wsp WS-Policy, WS-PolicyAssertions, and WS-PolicyAttachment http://schemas.xmlsoap. org/ws/2002/12/policy wsse WS-SecurityPolicy http://schemas.xmlsoap. org/ws/2002/12/secext wsu WS utilty schema http://schemas.xmlsoap. org/ws/2002/07/utility msp WSE 2.0 policy schema http://schemas.microsoft.com/wse/2003/06/Policy

Policy Namespaces wsp:Policy <!-- policy assertions go here --> Representation of a policy expression Container for policy assertions <wsp:Policy xmlns:wsp="..." xmlns:wsu="..." wsu:Id="..." Name="..." TargetNamespace="..."> <!-- policy assertions go here --> </wsp:Policy> The wsu:Id attribute assigns the policy expression an ID value as a URI

Policy Expression Naming A full ID is formed by: <base URI>#<wsu:Id value> Policy Expression: <wsp:Policy xmlns:wsp="..." xmlns:wsu="..." wsu:Id="MyPolicies" > ...</wsp:Policy> Policy Reference: ... <wsp:PolicyReference xmlns:wsp="..." URI="http://virginia.edu/isis/policy.xml#MyPolicies"/>

Policy Expression Naming Alternatively, use namespace-qualified name Add Name and TargetNamespace: Reference: <wsp:Policy xmlns:wsp="..." Name="MyPolicies“ TargetNamespace="http://virginia.edu/policies"> ...</wsp:Policy> ... <wsp:PolicyReference xmlns:wsp="..." xmlns:p="http://virginia.edu/policies" Ref="p:MyPolicies"/>

Agenda Introduction Domain Terminology Policy Expressions Policy Assertions Policy Attachments Conclusion Policy In Action

Policy Assertions A policy assertion: represents an individual preference, requirement, capability, or other characteristic is the basic building block of a policy expression an XML element with a well-known name and meaning <wsp:Policy xmlns:wsp="..." xmlns:wsu="..." wsu:Id="..." Name="..." TargetNamespace="..." > <Assertion wsp:Usage="..." wsp:Preference="..." /> <Assertion wsp:Usage="..." wsp:Preference="..." /> ... </wsp:Policy>

Types of Assertions Two types: Requirements and capabilities that are explicitly manifested on the wire No wire manifestation, just provide information

The Usage Qualifier wsp:Usage distinguishes between Value Meaning different types of assertions how assertions are processed Value Meaning wsp:Required The assertion must be applied, otherwise an error results wsp:Rejected The assertion is not supported and, if present, will cause failure wsp:Optional The assertion may be made of the subject, but is not required wsp:Observed The assertion will be applied to all subjects and requestors are told wsp:Ignored The assertion will be ignored if present and requestors are told

Assertion Example What does this Assertion state? Two policy assertions: Security Token is required Use of AES is required <wsp:Policy xmlns:wsp="..." xmlns:wsse="..."> <wsse:SecurityToken wsp:Usage="wsp:Required"> <wsse:TokenType>wsse:Kerberosv5ST</wsse:TokenType> </wsse:SecurityToken> <wsse:Integrity wsp:Usage="wsp:Required"> <wsse:Algorithm Type="wsse:AlgSignature“ URI="http://www.w3.org/2000/09/xmlenc#aes" /> </wsse:Integrity> </wsp:Policy>

Assertion Preference wsp:Preference attribute: Used to specify the service’s preference as an integer value Larger integer => higher preference Omitted preference attribute is interpreted as a 0

Assertion Preference Example What does this Assertion state? The subject prefers X.509 certificates over UsernameTokens <wsp:Policy xmlns:wsp="..." xmlns:wsse="..."> <wsse:SecurityToken wsp:Usage="wsp:Optional"> <wsse:TokenType>wsse:UsernameToken</wsse:TokenType> </wsse:SecurityToken> <wsse:SecurityToken wsp:Usage="wsp:Optional“ wsp:Preference="1"> <wsse:TokenType>wsse:x509v3</wsse:TokenType> </wsp:Policy>

Standard Policy Assertions WS-PolicyAssertions defines four general policy assertions for any subject Policy Assertion Description wsp:TextEncoding Specifies a character encoding wsp:Language Specifies a natural language (xml:Lang) wsp:SpecVersion Specifies a version of a particular specification wsp:MessagePredicate Specifies a predicate that can be tested against the message (XPath expressions by default)

General Assertion Example What does this Assertion state? The subject requires The UTF-8 character encoding Any form of the English language SOAP version 1.1 <wsp:Policy xmlns:wsse="..."> <wsp:TextEncoding wsp:Usage="wsp:Required" Encoding="utf-8"/> <wsp:Language wsp:Usage="wsp:Required" Language="en"/> <wsp:SpecVersion wsp:Usage="wsp:Required" URI="http://www.w3.org/TR/2000/NOTE-SOAP-20000508/" /> ... </wsp:Policy>

General Assertion Example What does this Assertion state? Must be: Exactly one wsse:Security header element Exactly one child within the soap:Body element <wsp:Policy xmlns:wsp="..." xmlns:wsse="..."> <wsp:MessagePredicate wsp:Usage="wsp:Required"> count(wsp:GetHeader(.)/wsse:Security) = 1 </wsp:MessagePredicate> count(wsp:GetBody(.)/*) = 1 ... </wsp:Policy>

WS-SecurityPolicy Defines a set of security-related assertions Policy Assertion Description wsse:SecurityToken Specifies a type of security token (defined by WS-Security) wsse:Integrity Specifies a signature format (defined by WS-Security) wsse:Confidentiality Specifies an encryption format (defined by WS-Security) wsse:Visibility Specifies portions of a message that MUST be able to be processed by an intermediary or endpoint wsse:SecurityHeader Specifies how to use the <Security> header defined in WS-Security wsse:MessageAge Specifies the acceptable time period before messages are declared "stale" and discarded

Combining Multiple Assertions Policy operators are used to combine assertions Can nest operators Policy Operator Description wsp:All Requires that all of its child elements be satisfied wsp:ExactlyOne Requires that exactly one child to be satisfied wsp:OneOrMore Requires that at least one child be satisfied wsp:Policy Same as wsp:All

Assertion Combination Example What does this Assertion state? Exactly one child must be satisfied <wsp:Policy xmlns:wsp="..." xmlns:wsse="..."> <wsp:ExactlyOne wsp:Usage="Required"> <wsse:SecurityToken> <wsse:TokenType>wsse:UsernameToken</wsse:TokenType> </wsse:SecurityToken> <wsse:SecurityToken wsp:Preference="10"> <wsse:TokenType>wsse:x509v3</wsse:TokenType> <wsse:SecurityToken wsp:Preference="1"> <wsse:TokenType>wsse:Kerberosv5ST</wsse:TokenType> </wsp:ExactlyOne> </wsp:Policy>

Policy Reference Mechanism to share policy assertions across policy expressions Uses the naming conventions discussed above <wsp:Policy xmlns:wsp="..."> ... <wsp:PolicyReference URI="..." Ref="..." Digest="..." DigestAlgorithm="..." /> </wsp:Policy>

Policy Reference Example <wsp:Policy wsu:Id="tokens" xmlns:wsp="..." xmlns:wsse="..."> <wsp:ExactlyOne wsp:Usage="Required"> <wsse:SecurityToken> <wsse:TokenType>wsse:UsernameToken</wsse:TokenType> </wsse:SecurityToken> <wsse:SecurityToken wsp:Preference="10"> <wsse:TokenType>wsse:x509v3</wsse:TokenType> <wsse:SecurityToken wsp:Preference="1"> <wsse:TokenType>wsse:Kerberosv5ST</wsse:TokenType> </wsp:ExactlyOne> </wsp:Policy>

Policy Reference Example <wsp:Policy wsu:Id="tokensWithSignature" xmlns:wsp="..." xmlns:wsse="..."> <wsp:PolicyReference URI="#tokens" /> <wsse:Integrity wsp:Usage="wsp:Required"> ... </wsse:Integrity> </wsp:Policy> <wsp:Policy wsu:Id="tokensWithEncryption" <wsse:Confidentiality wsp:Usage="Required"> </wsse:Confidentiality>

Agenda Introduction Domain Terminology Policy Expressions Policy Assertions Policy Attachments Conclusion Policy In Action

Policy Attachments WS-PolicyAttachment defines mechanisms to associate expressions with subjects Specifically defines mechanisms for: XML elements WSDL definitions UDDI entries Uses attributes wsp:PolicyURIs – list of URIs wsp:PolicyPrefs – list of QNames

Policy Attachments The attribute wsp:PolicyAttachment binds an endpoint to a policy expression Requires no change to the web service <wsp:PolicyAttachment> <wsp:AppliesTo> <wsa:EndpointReference xmlns:s="..."> <wsa:Address>http://virginia.edu/someendpoint</wsa:Address> <wsa:PortType>s:SomePortType</wsa:PortType> <wsa:ServiceName>s:SomeService</wsa:ServiceName> </wsa:EndpointReference> </wsp:AppliesTo> <wsp:PolicyReference URI="http://virginia.edu/policy.xml" /> <wsse:Security> <ds:Signature> ... </ds:Signature> </wsse:Security> </wsp:PolicyAttachment>

Agenda Introduction Domain Terminology Policy Expressions Policy Assertions Policy Attachments Conclusion Policy In Action

Conclusion of WS-Policy The policy specifications define a standard framework Developers can: express requirements, capabilities, and preferences in an interoperable way select web services more meaningfully Policies provide support for standard assertions

Primary References http://msdn.microsoft.com/webservices/default.aspx?pull=/library/en-us/dnglobspec/html/ws-policy.asp#ws-policy__toc42483108 Official document describing WS-Policy http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnwebsrv/html/understwspol.asp “Understanding WS-Policy” – A great reference that I used a lot for this presentation. Provides a great, easy explanation of WS-Policy.

Secondary References http://schemas.xmlsoap.org/ws/2002/12/Policy/ This is the policy schema definition http://msdn.microsoft.com/webservices/default.aspx?pull=/library/en-us/dnglobspec/html/ws-policyassertions.asp Provides a very detailed description of WS-PolicyAssertions http://msdn.microsoft.com/webservices/default.aspx?pull=/library/en-us/dnglobspec/html/ws-policyattachment.asp Provides a very detailed description of WS-PolicyAttachment http://msdn.microsoft.com/webservices/default.aspx?pull=/library/en-us/dnglobspec/html/ws-securitypolicy.asp Provides a detailed description of WS-SecurityPolicy