Secure Identity Propagation Using WS- Trust, SAML2, and WS-Security 12 Apr 2011 IBM Impact



Similar documents
Easy CramBible Lab DEMO ONLY VERSION Test284,IBM WbS.DataPower SOA Appliances, Firmware V3.6.0

CICS Web Service Security. Anthony Papageorgiou IBM CICS Development March 13, 2012 Session: 10282

An Oracle White Paper Dec Oracle Access Management Security Token Service

Web Services Security: OpenSSO and Access Management for SOA. Sang Shin Java Technology Evangelist Sun Microsystems, Inc. javapassion.

Federated Identity and Trust Management

Redbook Overview Patterns: SOA Design with WebSphere Message Broker and WebSphere ESB

Software Requirement Specification Web Services Security

Securely Managing and Exposing Web Services & Applications

Introduction to WebSphere Process Server and WebSphere Enterprise Service Bus

Integrated Systems & Solutions. Some Performance and Security Findings Relative to a SOA Ground Implementation. March 28, John Hohwald.

Avoiding Web Services Chaos with WebSphere Service Registry and Repository

Authentication and Single Sign On

A standards-based approach to application integration

OPENIAM ACCESS MANAGER. Web Access Management made Easy

The Challenges of Web single sign-on

SOA Fundamentals For Java Developers. Alexander Ulanov, System Architect Odessa, 30 September 2008

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

IBM WebSphere Application Server

Setup Guide Access Manager 3.2 SP3

SOA Software: Troubleshooting Guide for Policy Manager for DataPower

IBM Tivoli Federated Identity Manager V6.2.2 Implementation. Version: Demo. Page <<1/10>>

Session Code*: 0310 Demystifying Authentication and SSO Options in Business Intelligence. Greg Wcislo

Get Success in Passing Your Certification Exam at first attempt!

AquaLogic ESB Design and Integration (3 Days)

Entitlements Access Management for Software Developers

1 What Are Web Services?

WebLogic Server 7.0 Single Sign-On: An Overview

1 What Are Web Services?

Exam Name: Test284,IBM WbS.DataPower SOA

SCA-based Enterprise Service Bus WebSphere ESB

This Working Paper provides an introduction to the web services security standards.

IBM SPSS Collaboration and Deployment Services Version 6 Release 0. Single Sign-On Services Developer's Guide

enterprise^ IBM WebSphere Application Server v7.0 Security "publishing Secure your WebSphere applications with Java EE and JAAS security standards

Enabling secure communication for a Tivoli Access Manager Session Management Server environment

Designing an Enterprise Application Framework for Service-Oriented Architecture 1

Interoperable Provisioning in a Distributed World

Securing Web Services From Encryption to a Web Service Security Infrastructure

September 9 11, 2013 Anaheim, California 507 Demystifying Authentication and SSO Options in Business Intelligence

FUSE-ESB4 An open-source OSGi based platform for EAI and SOA

WEB SERVICES SECURITY

IBM WebSphere ESB V6.0.1 Technical Product Overview

Acknowledgments. p. 55

Biometric Single Sign-on using SAML Architecture & Design Strategies

Course Description. Course Audience. Course Outline. Course Page - Page 1 of 5

AquaLogic Service Bus

IBM WebSphere Application Server

Service Virtualization: Managing Change in a Service-Oriented Architecture

WebSphere Training Outline

WEB SERVICES. Revised 9/29/2015

ActiveVOS Server Architecture. March 2009

<Insert Picture Here> Oracle Web Services Manager (WSM)

Apigee Gateway Specifications

Table of Contents. 1 Executive Summary SOA Overview Technology Processes and Governance... 8

e-gov Architecture Architectural Blueprint

Oracle Access Manager. An Oracle White Paper

Policy Guide Access Manager 3.1 SP5 January 2013

OpenLDAP Oracle Enterprise Gateway Integration Guide

REST and SOAP Services with Apache CXF

Federated Identity Management Solutions

CA SOA Security Manager

Creating a Strong Security Infrastructure for Exposing JBoss Services

Secure the Web: OpenSSO

ITS. Java WebService. ITS Data-Solutions Pvt Ltd BENEFITS OF ATTENDANCE:

IBM WebSphere Data Power SOA Applicances V3.8.1 Solution IMP. Version: Demo. Page <<1/10>>

Authentication Integration

Redpaper. IBM WebSphere DataPower SOA Appliances. Part II: Authentication and Authorization. Front cover. ibm.com/redbooks

DataPower SOA Appliances Simplify, Secure, and Accelerate SOA

SAML and OAUTH Technologies WebSphere Application Server

Enterprise Reference Architecture

XML Signatures in an Enterprise Service Bus Environment

New Single Sign-on Options for IBM Lotus Notes & Domino IBM Corporation

JBoss SOAP Web Services User Guide. Version: M5

Developing Java Web Services

IBM DataPower SOA Appliances & MQ Interoperability

An Oracle White Paper November Oracle Primavera P6 EPPM Integrations with Web Services and Events

Run-time Service Oriented Architecture (SOA) V 0.1

IBM WebSphere DataPower Integration Appliance XI52

Biometric Single Sign-on using SAML

WebSphere Integration Solutions. IBM Day Minsk Anton Litvinov WebSphere Connectivity Professional Central Eastern Europe

A Conceptual Technique for Modelling Security as a Service in Service Oriented Distributed Systems

PowerCenter Real-Time Development

Accelerate your SOA Projects through Service Simulation

Tivoli Access Manager for e-business FP4 with Tivoli Federated Identity Manager FP2 Security Target

SAML-Based SSO Solution

Novell Access Manager

Secure Identity in Cloud Computing

e-gov Architecture Service Interface Guidelines

Ameritas Single Sign-On (SSO) and Enterprise SAML Standard. Architectural Implementation, Patterns and Usage Guidelines

WA2087 Programming Java SOAP and REST Web Services - WebSphere 8.0 / RAD 8.0. Student Labs. Web Age Solutions Inc.

The Enterprise Service Bus

Requirement Priority Name Requirement Text Response Comment

Core Feature Comparison between. XML / SOA Gateways. and. Web Application Firewalls. Jason Macy jmacy@forumsys.com CTO, Forum Systems

Microsoft Dynamics CRM Server 2011 software requirements

Unifying IT Vision Through Enterprise Architecture

How To Create A C++ Web Service

How To Develop A Web Service In A Microsoft J2Ee (Java) 2.5 (Oracle) 2-Year Old (Orcient) 2Dj (Oracles) 2E (Orca) 2Gj (J

Transcription:

Secure Identity Propagation Using WS- Trust, SAML2, and WS-Security 12 Apr 2011 IBM Impact Robert C. Broeckelmann Jr., Enterprise Middleware Architect Ryan Triplett, Middleware Security Architect

Requirements Actors Agenda Related Security concepts Specifications Technology Websphere 7.0 DataPower XI-50 TFIM 6.2 Security Token Service Flow of identity through the system Page 2

Disclaimers Here representing ourselves, not our employer. What we present here is one of numerous possible ways to use IBM SOA technology. Your situation and requirements will probably differ. As always, test things in a non-production environment prior to using anything in production. We are not responsible for spontaneous combustion of the known universe or any other undesirable outcomes associated with using what is discussed here. Page 3

Requirements

Business Requirements-- Hypothetical Maintain a high quality customer experience Increase business and IT agility and adaptability Constantly improve speed to market of new products Decrease the growth rate in customer servicing costs Provide a stable, scalable platform for payment processing Consistent security interface to customers Page 5

Technical Requirements-- Hypothetical Presentation tier of a customer facing application must be able to access business logic located across different systems within the enterprise. Apply industry standards to solve problems whenever possible. Will construct wrapper services around legacy systems that are not already SOAP services. Standardize on SOAP over HTTP(S) All services must satisfy WS-I Basic Interoperability. All services are advertised on the ESB; Service Consumer service calls pass through the ESB. Page 6

Security Requirements-- Hypothetical Standards-based, secure end-user identity propagation mechanism Mechanism should include a digital signature to ensure message integrity. Mutually Authenticated SSL at all hops to ensure message confidentiality (and integrity). Token validation and authorization decision made at ESB tier. Obtain identity at Service Provider tier(s) via token revalidation. Page 7

Actors

Actors Service Providers Service Consumers ESB Security Token Service Page 9

Service Providers Service Provider tiers host WS-I Basic Interoperability-compliant SOAP Web Services. WS-I BP (Basic Profile) 1.1 (see [6]) SSBP (Simple SOAP Binding Profile) 1.0 (see [7]) In our scenario, this is an application running in WebSphere Application Server 7.0.0.7 (or above). Application contains POJOs that implement JAX-WS Web Service(s). See [1] for more information about JAX-WS Page 10

Service Consumers Service Consumer tiers host SOAP clients. Again, WS-I Basic Interoperabilitycompliant (see last slide for description). JAX-WS SOAP client. Requires a client stub to be generated by RAD tooling. In our scenario, once again, this is a Web Application running in WebSphere Application Server 7.0.0.7(or above). Page 11

Security Token Service WS-Trust-compliant service(s) that supports issuing, validation, and renewal of security tokens. A Security Token contains identification information about a Principal(user of the system). We ll talk about Principals shortly. More information about these ideas can be found in [2], [3], and [4]. Page 12

Enterprise Service Bus (ESB) SOA pattern One possible implementation of a Service Oriented Architecture(SOA). A middleware platform. There are many. A central access point for reusable, logical components (services) whose use spans multiple spheres of concern. For more information, see [5] Page 13

Related Security Concepts

Authentication Process of a remote entity (user or system) proving its identity to the system. Can be achieved in a variety of ways. In this story, we will use JEE Security with Form-Based Authentication(WAS 7.0) for enduser authentication. Token Validation confirm a security token is valid and trusted Validating digital signature Checking expiration timestamp Checking user exists in a User Repository See [9] for more information. Page 15

An entity that can be authenticated. Could be a system. Batch job. An application. A computer. Principal Could be an end user. A Web application user in our case. See [8] for more information. Page 16

User Repository A collection of user information known to the system. May include: usernames, passwords, groups, group membership, and other attributes Examples LDAP Flat file Database Master copy of all user and group information within the system. Trust Domain collection of systems that share a common User Repository In our case, LDAP Repository (Tivoli Directory Server, TDS) All systems are in the same Trust Domain See [12] for more information. Page 17

LDAP Lightweight Directory Access Protocol. A specification. Our user repository. Contains LDAP Inetorgperson objects describing users. Group objects describing groups Users can be members of multiple groups. Captures group membership relationships. Page 18

Security Token A self-contained collection of information that systems can pass around that describes a Principal. May contain (we ll assume ours does): User ID. List of Groups. Other attributes(from LDAP). May utilize: Encryption Digital signature Timestamp Page 19

Process by which the system makes a decision of whether an authenticated principal has permission to access a resource. A resource could be: Web Application path (Servlet, JSP, etc) EJB (or EJB method) Web Service Authorization Will often be based upon: Static information e.g., LDAP Group membership or a user attribute Dynamic information e.g., authentication method See [10] for more information. Page 20

Process by which one system transmits identity of a requestor to another system. Identity Propagation usually achieved through some form of token. Token contains username, group membership, other LDAP attributes. Digital signature Confidentiality Identity Propagation We are using SAML2 tokens in this discussion. Page 21

Security Token Service(STS) Defined by WS-Trust spec. Composed of Web Service(s) that perform operations on Security Tokens. Client trusts STS. MASSL Shared key WS-Security Other mechanisms Requires a client to provide credentials to prove trust & an identity to be represented in the output token. We ll call these the input credentials. Provides assertions about the input credentials in the form of a Security Token. We ll call this the output credential. In our example, Input credential is an LTPA2 Token Output credential is a SAML2 token Using STS for all token transformations. Central management of digital signature keys/certificates for security tokens. Central management of token generation. token transformations. See [11] for more information. Page 22

Identity Propagation--Visualized Page 23

Security Within the ESB ESB: Extracts Security Token Validates Security Token Checks Authorization We will revisit this shortly. Page 24

Policy Driven Security Policy Administration Point (PAP) component used for the creation, maintenance, change, and deletion of security policy regarding system resources Policy Decision Point (PDP) component responsible for providing a response to an authorization request to a protected resource Policy Enforcement Point (PEP) component which manages access to system resources See [18] User Policy Decision Point Administrator Policy Enforcement Point Policy Administration Point System Resource

Mutually Authenticated SSL Secure Sockets Layer (SSL) provides transportlayer security between each tier of the system. Provides message integrity and confidentiality Mutually Authenticated SSL refers to the requirement of the client presenting a valid x509v3 certificate. In our case, all communication is over MASSL connections at each network hop. Could also use WS-Security Integrity & Confidentiality. See [13], [14], [15]. Page 26

Relevant Specifications

Relevant Specifications WS-Security WS-Trust SAML2 Page 28

Provides the basic mechanisms for securing SOAP messages. Standard provides for the following to SOAP messages. Integrity (XML Digital Signature with SOAP) Confidentiality(XML Encryption with SOAP) Transmitting identity tokens (SAML2, others) See [16]. WS-Security Page 29

Builds on WS-Security base. Provides additional mechanisms for working with security tokens. Defines communication with a Security Token Service. WS-Trust clients can make the following types of calls: ISSUE VALIDATE RENEW CANCEL See [17]. WS-Trust Page 30

OASIS standard for exchanging authentication and authorization information. Information is propagated as tokens that contain assertions about an entity or person. Snippet of XML WS-Security provides for passing a SAML2 token in a SOAP Header. SAML2 spec defines use of XML Digital Signature and XML Encryption with SAML tokens. See [19]. SAML v2 Page 31

Technology

Technology Websphere Application Server 7 TFIM 6.2 Security Token Service DataPower XI50 (acting as an ESB) Page 33

Description Websphere Application Server(WAS) 7.0 JEE v1.5 compliant Application Server Service Provider Platform Service Consumer Platform Using JAX-WS SOAP Runtime. Out-of-box functionality (relevant to this discussion) provides WS-Security Support(propagates SAML2 token in SOAP Header) WS-Trust (STS client) support. Local validation of SAML2 tokens(on Service Provider) Dynamic Endpoints can be used to setup client x509v3 cert/key to be used with MASSL connection. See [22] for more information. Page 34

Tivoli Federated Identity WS-Trust v1.3-compliant Security Token Service(STS) Only interested in Security Token Service, but offers solutions for a variety of Federated Single Sign On scenarios. Note, token validations will be done locally whenever possible. See [21] for more information. Manager 6.2 Page 35

SOA Appliance Acting as an ESB (together with WMQ 7.0). Support for: SOAP REST XML (XML Acceleration) WS-* support. Security(authentication, authorization, etc) Many others Add on features support: ODBC TAM TIBCO HSM module See [20] for more information. DataPower XI50 Page 36

Flow of credentials Through System

End User Authenticates To System (Service Consumer) End user could authenticate to Service Consumer system numerous ways WebSEAL scenario (identity assertion to WAS via LTPA2 token, TAI++, or other methods) JEE Security(Form-Based) our scenario does this. Other Websphere container (Service Consumer) knows the end user by the user session s Security Context. JAAS Subject describes the user s identity Page 38

Service Consumer obtains WAS7 SOAP/WS-Security runtime interacts with the TFIM STS via a WS-Trust ISSUE request. Input credential: LTPA2 BST Output credential: SAML2token SAML2 token is digitally signed by the STS (XML Digital Signature). Mutually authenticated SSL for WS- Trust calls. Custom module in TFIM STS queries LDAP for user information. Token cached locally in Service Consumer WAS container with patch IBM recently created. SAML2 token Page 39

Service Consumer Issues Service Consumer uses JAX-WS SOAP Runtime and client stub to issue SOAP call. SAML2 token obtained from STS. Transport-level security (Mutually Authenticated SSL) for SOAP call. WS-Security Runtime injects SAML2 token into WS-Security SOAP Header. HTTP POST passes request SOAP message to ESB. Wait for response. SOAP Call Page 40

SOAP Request Arrives at DataPower HTTPS Front Side Handler advertises service. Request is routed to a configured WS-Proxy. Page 41

Internal ESB Security Processing WS-Proxy has a Request Rule defining policy. Service s WS-Proxy Security configuration AAA Policy SAML2 token validation TAM Authorization Exception Handler Audit Logger Other configuration, not relevant to security If Service Consumer isn t capable of passing a SAML2 token, DataPower could make a WS-Trust call to TFIM to obtain one or generate token locally. Page 42

ESB routes request to Service Provider WS-Proxy configuration routes SOAP request to Service Provider Could be based upon URL in WSDL. Determined dynamically, based upon message content Service Provider Endpoint defined in WSDL stored in Websphere Service Registry & Repository. DataPower routes request to this Service Provider Endpoint. Page 43

Request arrives at Service Provider WAS WS-Security runtime: Extracts token from request message. Validates SAML2 token locally XML Digital Signature validation. Check timestamp. Security Context created JAAS Subject Only valid for this one service invocation. Original SAML2 token stored in JAAS Subject. Page 44

Service Execution POJO method exposed as a JAX-WS Web Service operation intercepts SOAP call. Service logic is executed. @WebService public class Echo { } @WebMethod public String echo(string str) {... } Page 45

Response SOAP Runtime returns response to ESB. ESB intercepts response and passes it to Service Consumer. Service Consumer intercepts response. For synchronous, requestrespond Message Exchange Patterns, identity tokens will generally only be passed in the Consumer->Provider direction. Page 46

Third-Party Products & Identity Propagation WS-Security, WS-Trust, and SAML2 can be used as the bases for secure identity propagation across compliant platforms. For example: JBoss.NET Layer 7

Questions??? Thank You Page 48

Reference [1]http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/index.jsp?topic=/com.ibm.websphere.soafep.multiplatform.doc/info/ae/ae/ cwbs_jaxws.html [2] http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/topic/com.ibm.websphere.nd.doc/info/ae/ae/cwbs_wstruststd.html [3] http://www.ibm.com/developerworks/library/specification/ws-trust/ [4]http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/topic/com.ibm.websphere.base.iseries.doc/info/iseries/ae/cwbs_sectoken v6.html [5] http://www.redbooks.ibm.com/redbooks/pdfs/sg246346.pdf [6] http://www.ws-i.org/profiles/basicprofile-1.1.html [7] http://www.ws-i.org/profiles/simplesoapbindingprofile-1.0.html [8] http://en.wikipedia.org/wiki/security_principal [9] http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/topic/com.ibm.websphere.base.doc/info/aes/ae/tsec_pofolo.html [10] http://publib.boulder.ibm.com/infocenter/wsdatap/v3r8m1/topic/xs40/webapplicationfirewalldevelopersguide132.htm [11] [12] [13[ http://www.freesoft.org/cie/topics/ssl-draft/3-spec.htm [14] http://www.ietf.org/rfc/rfc2246.txt [15] http://www.ietf.org/rfc/rfc2459.txt [16] http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=wss [17] http://docs.oasis-open.org/ws-sx/ws-trust/200512 [18] http://www.redbooks.ibm.com/redpapers/pdfs/redp4233.pdf [19] http://docs.oasis-open.org/security/saml/v2.0/saml-core-2.0-os.pdf [20] http://publib.boulder.ibm.com/infocenter/wsdatap/v3r8m1/index.jsp?topic=/xi50/welcome.htm [21] http://publib.boulder.ibm.com/infocenter/tivihelp/v2r1/topic/com.ibm.tivoli.fim.doc_6.2/welcome.htm [22] http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/topic/com.ibm.websphere.nd.doc/info/ae/ae/welcome_nd.html