WEB 401: Security Practices for Web Services (Part 2): Now My Brain Hurts Keith Ballinger (XML Web Services, Microsoft)
Abstract
Drill into the advanced concepts of Web Services security. Specifically see how to build a service for key distribution and trust enforcement, how to enforce policy and how to deal with different tokens like SAML. Review several patterns for proper programming techniques to build common trust and authorization services. Explore the WS-Trust, WS-SecurityPolicy and WS-SecureConverastion specifications.
Notes
Disclaimer: I cannot validate that everything stated below is entirely accurate. Unfortunately, I wasn’t able to take notes on my laptop during the talk because my battery was running low. The following notes are from memory…
Keith's talk covered WS-Trust, WS-SecureConversation, WS-Policy, and WS-SecurityPolicy. During his talk, he demo'ed support in WSE v2.0 for each specification.
WS-SecureConversation looks to be very well supported in WSE v2.0. Through a new type – RequestTokenService, if I remember correctly - clients can issue a request security token (RST) message to a service endpoint, which returns a request security token response (RSTR) – a message which contains security token reference pointing to the new security context token and a proof token reference pointing to the "secret" for the returned context. Keith mentioned that WS-SecureConversation greatly improves security performance over a long running series of messages by orders of magnitude over WS-Security-based authentication on a message-by-message basis.
Support for WS-Policy in WSE v2.0 looks to be incredibly promising. From what I saw in the demo, policy is applied to service descriptions and their associated endpoints through a HTTP handler. This handler uses policy documents (i.e. policy.xml) to control the way in which the WSDL in augmented with WS-Policy-related elements. This includes augmentation of custom WS-Policy-related elements include wse:role, which specifies a mapping to a particular Windows group or role on the host machine. At the server end, policy is validated by this handler prior to entering scope of the WebMethod.
WS-SecurityPolicy support in WSE v2.0 will augment the current Web service stack very well. That is, the ability to persist policy assertions in WSDL of the particular types of security tokens required and types of encryption and/or signatures to be applied will provide a great deal more semantic meaning in service contracts.
As a side note, WSE v2.0 supports policy assertion declarations to target particular elements through XPath or "parts", which closely resemble functors in C++.
I was really excited to see Keith's talk and it did not disappoint one bit. Put simply: It rocked. It was the best talk I have heard at TechEd yet.
11:06:23 PM
|