24
1 © Copyright 2011 EMC Corporation. All rights reserved. A Framework for Obligation Fulfillment in REST Services WS-REST 2011 John Field Senior Technologist EMC Office of the CTO Joint work with Steven Graham and Tom Maguire

A Framework for Obligation Fulfillment in REST Services

Embed Size (px)

DESCRIPTION

WS-REST 2011. Second International Workshop on RESTful Design. Chairs: Cesare Pautasso, Erik Wilde, Rosa Alarcon.Security Session. John Field, Stephen Graham and Tom Maguire

Citation preview

Page 1: A Framework for Obligation Fulfillment in REST Services

1 © Copyright 2011 EMC Corporation. All rights reserved.

A Framework for Obligation Fulfillment in REST Services WS-REST 2011

John Field Senior Technologist EMC Office of the CTO Joint work with Steven Graham and Tom Maguire

Page 2: A Framework for Obligation Fulfillment in REST Services

2 © Copyright 2011 EMC Corporation. All rights reserved.

Agenda   Introduction

–  Motivating Use Case

 Modeling Obligations –  Definitions, Architectural Roles

  Extending Spring Security –  Design and Implementation

 Obligation Design Patterns –  Metadata, Compatibility with REST Constraints

 Obligation-enhanced Operations –  Development, Test, Deployment.

 Conclusion –  Q&A, and Open Discussion

Page 3: A Framework for Obligation Fulfillment in REST Services

3 © Copyright 2011 EMC Corporation. All rights reserved.

What is an Obligation?  An Obligation is an expression of non-functional or cross-cutting requirements

–  The scope of which transcends any specific service… – …But for which the service bears an enforcement

responsibility.  Example: The regulatory requirements imposed upon processing of Electronic Health Records (EHR).

Page 4: A Framework for Obligation Fulfillment in REST Services

4 © Copyright 2011 EMC Corporation. All rights reserved.

 Example: –  “A patient’s records may be released to a 3rd party, but

only on a secure channel, and in a redacted form, and only with an appropriate notification to the parent or guardian within 24 hours”.

 The implied requirements go beyond a simple “Permit” or “Deny” authorization decision, and include:

–  Privacy/Redaction –  Records Retention –  Patient and/or guardian notifications –  Complex conditional authorization rules –  Etc.

A Motivating Use Case: E-Health Records

Page 5: A Framework for Obligation Fulfillment in REST Services

5 © Copyright 2011 EMC Corporation. All rights reserved.

  These types of requirements are also subject to change, and may not even be known until deployment time.

–  Making design, development, and product roadmap planning even more difficult.

 Developers need a way to satisfy these requirements, while avoiding tangling the non-functional and cross-cutting GRC code into their core service logic.

–  Question: Can we help by creating an appropriate developer framework?

  Finally, note that use cases like this create challenges for many different stakeholders, not just developers:

–  Product Managers –  Security Administrators –  Auditors

A Motivating Use Case: E-Health Records

Page 6: A Framework for Obligation Fulfillment in REST Services

6 © Copyright 2011 EMC Corporation. All rights reserved.

Modeling Obligations

Policy Administration

Point

Policy Enforcement

Point

Policy Decision

Point

 Obligations can be modeled as an extension to the classical conceptual model used for security enforcement.

Page 7: A Framework for Obligation Fulfillment in REST Services

7 © Copyright 2011 EMC Corporation. All rights reserved.

Conceptual Model for Obligations

4.  Policy Request

5.  Policy Response

1.  Define Policy w/Obligations

2.  Request Resource

3.  Decision Request

6.  Decision Response Semantic

Contract

7.  Enforce Decision, and Fulfill Obligations

…with Obligations

8.  Return Resource Representation

Policy Administration

Point

Policy Enforcement

Point

Policy Decision

Point

Page 8: A Framework for Obligation Fulfillment in REST Services

8 © Copyright 2011 EMC Corporation. All rights reserved.

Conceptual Model for Obligations

Policy Administration

Point

Policy Enforcement

Point

Policy Decision

Point

  The PAP defines the Obligations.   The PEP fulfills the Obligations.   The PDP is a trusted intermediary.

  Instantiates the obligation assertions,   Does not otherwise interpret or enforce the obligation.

 Obligations extend the interface contract between the PDP and the PEP, and the semantic contract between the PEP and the PAP.

Page 9: A Framework for Obligation Fulfillment in REST Services

9 © Copyright 2011 EMC Corporation. All rights reserved.

A Standardized Model for Obligations

  The OASIS XACML Technical Committee has defined a standard conceptual model for obligations.

–  Boolean response + Obligation URN + attribute metadata. –  …unordered collection of strongly typed attributes, with values

associated at runtime.   Permit…but do urn:emc:cto:obl:poc:1 with attributes   Deny…and do urn:emc:cto:obl:poc:2 with attributes

  Our implementation was inspired by the XACML core standard, but is not a complete implementation.   Our design choices were driven by the desire to support REST developers who are already using a services framework such as Apache CXF or Spring MVC, along with Spring Security.

Page 10: A Framework for Obligation Fulfillment in REST Services

10 © Copyright 2011 EMC Corporation. All rights reserved.

Developer Enablement via the Spring Framework  Effective use of obligations requires support via a developer framework.

–  Framework-based enforcement ensures appropriate:   Separation of concerns in the Java code   Separation of skills and responsibilities between application development and application deployment.

 The Spring Framework is the de facto standard for Java developers

–  Thus, we explored what could be done to provide support for obligations via Spring Security.

Page 11: A Framework for Obligation Fulfillment in REST Services

11 © Copyright 2011 EMC Corporation. All rights reserved.

Extending Spring Security

 Spring Security’s features are extensible through the use of dependency injection.

–  We designed and implemented the new obligation-aware components, and then configured these using DI.

 The new components are designed to co-exist with the installed base.

–  But to ensure that fulfillment occurs, deployers must be sure to configure the obligation-aware components first.

Page 12: A Framework for Obligation Fulfillment in REST Services

12 © Copyright 2011 EMC Corporation. All rights reserved.

Servlet  Container                              

Delega�ngFilterProxy  

…  

Other  Servlet  Filters  

Spring  IoC  Container  

…  

Page 13: A Framework for Obligation Fulfillment in REST Services

13 © Copyright 2011 EMC Corporation. All rights reserved.

Other    Servlet    Filters  

Security  Context  

Persistence  

Author-­‐  iza�on  

Session  Management  

Authent-­‐  ica�on  

Security

Context

Access Decision Manager

Authen�ca�on  ROLE_XXX  

Inside the Spring Security Filter Chain

Allowed Denied

Page 14: A Framework for Obligation Fulfillment in REST Services

14 © Copyright 2011 EMC Corporation. All rights reserved.

Security  Context  

Persistence  

Author-­‐  iza�on  

Session  Management  

Authent-­‐  ica�on  

Security

Context

Access Decision Manager

Obliga�on  Enhanced  Security  Context  

Persistence  

Obligation

Enhanced Security Context PiP PiP PiP

PiP PiP PaP

Obligation

Enhanced Access

Decision Manager

Obliga�on  Fulfiller  Filter  

Other    Servlet    Filters  

PiP PiP Fulfiller    Registry  

Obliga�on  Fulfillers  

Authen�ca�on  ROLE_XXX  Obliga�ons  

Supporting Obligations in Spring Security

Allowed Allowed, but… Denied Denied and…

Page 15: A Framework for Obligation Fulfillment in REST Services

15 © Copyright 2011 EMC Corporation. All rights reserved.

Security  Context  

Persistence  

Author-­‐  iza�on  

Session  Management  

Authent-­‐  ica�on  

Security

Context

Access Decision Manager

Obliga�on  Enhanced  Security  Context  

Persistence  

Obligation

Enhanced Security Context PiP PiP PiP

PiP PiP PaP

Obligation

Enhanced Access

Decision Manager

Obliga�on  Fulfiller  Filter  

Other    Servlet    Filters  

PiP PiP Fulfiller    Registry  

Obliga�on  Fulfillers  X  

Deny  Obliga�on  Fulfiller  Filter  

Obliga�on  Fulfillers  

PiP PiP Fulfiller    Registry  

Authen�ca�on  ROLE_XXX  Obliga�ons  

What about Obligations related to “Access Denied”?

Page 16: A Framework for Obligation Fulfillment in REST Services

16 © Copyright 2011 EMC Corporation. All rights reserved.

General Obligation Design Pattern Q: When should software designers use obligations?

A: When there is a requirement for a supplementary policy enforcement action that is:

–  Application-centric, but not application-specific. –  The supplementary enforcement is concurrent with the

processing of a specific user transaction. –  Enforcement action may be independent of the outcome

of the user transaction. –  Enforcement requirement specified at deployment time.

  Requirement may not yet be known at application design time

Page 17: A Framework for Obligation Fulfillment in REST Services

17 © Copyright 2011 EMC Corporation. All rights reserved.

Metadata for Obligations

Obl. Category

Obl. Type

Directly Modifies Request?

Directly Modifies Response?

Fires Before Resource Access?

Fires After Resource Access?

Side Effects?

Synchro-nized*

GRC Policy Mgmt

No No Yes No Yes. PAP

updated

No

Security, SIEM

Audit Logging

No No No Yes Yes. Logs

updated

No

SLA Resource Mgmt

No Yes No Yes None No

*Synchronized before response sent to client?

 No standards exist for the metadata properties that characterize the obligation behaviors.  Our analysis led to the following table:

Representing and Managing both the Implict and Explicit Properties

Page 18: A Framework for Obligation Fulfillment in REST Services

18 © Copyright 2011 EMC Corporation. All rights reserved.

Obligation Management Consistent with REST  Obligations must themselves be considered REST resources.

–  They are addressable, cacheable, resources.

  The linked data representation of the obligation should include

–  Implicit metadata properties, as described above –  Explicit relationships with other resources, i.e. a type, such as

a Patient application or record.

  The obligation management system must exhibit the appropriate emergent properties:

–  Loose coupling through the uniform interface, scalability, visibility

Page 19: A Framework for Obligation Fulfillment in REST Services

19 © Copyright 2011 EMC Corporation. All rights reserved.

Compatibility With HATEOAS Constraint  Obligations can have a direct impact on the resource representation that is delivered to the client.

–  The client may or may not be made aware that obligation fulfillment has occurred.

 Either scenario can maintain complete adherence to the HATEOAS constraint.

–  The representation must contain a consistent metadata set, via appropriate links, and media types.

–  i.e. one could represent the required fulfillments through the use of specific media types   Content-Type, maybe Accept headers.

Page 20: A Framework for Obligation Fulfillment in REST Services

20 © Copyright 2011 EMC Corporation. All rights reserved.

Compatibility with the Layered System Constraint   Our current prototype is based upon an in-process model.

–  Targeted to the installed base of Java + Spring Framework developers.

  One can also envision other fulfillment models.   The layered system and uniform interface constraints of REST ensure that clients and servers may rely upon arbitrary intermediaries to provide fulfillment.

–  This approach may have advantages when in-process fulfillment is not convenient or achievable.

  An out-of-process fulfillment option again highlights the importance of defining obligations as addressable resources

–  As the intermediary may be a shared component supporting more than one administrative domain, i.e. in a Cloud Service.

Page 21: A Framework for Obligation Fulfillment in REST Services

21 © Copyright 2011 EMC Corporation. All rights reserved.

Obligation-enhanced Development Application Developer

design/code/ test/release

GRC Admin

- Add GRC obligations - Tailor fulfillers - Test

GRC Obligation Packages Repository

Security Admin

- Add security obligations - Tailor fulfillers - Test

Security Obligation Packages Repository

Deployment Engineer

test/deploy Production

Auditor

- Validate compliance via tool - Compare to best practices - Monitor regulatory changes

Industry Standard Obligation Packages Repository

Obligation Developer

- Build new obligation fulfillers - Tailor existing obligation fulfillers

Page 22: A Framework for Obligation Fulfillment in REST Services

22 © Copyright 2011 EMC Corporation. All rights reserved.

Operational Benefits of Obligations   For the developer

–  obligations provide a consistent and standardizable mechanism to enable injection of application-centric GRC controls at design, development or deployment time.

  For the security admin –  obligations provide a mechanism to enable applications to

effectively leverage an existing XACML-based enterprise entitlement management infrastructure.

  For the deployment engineer –  obligations can also be used to customize a generic application in

support of specific corporate policies.   including adjustments required for different localities or geographies.

  For the auditor –  obligations are an effective way to factor and package the code that

implements any application-independent or well-known controls.

Page 23: A Framework for Obligation Fulfillment in REST Services

23 © Copyright 2011 EMC Corporation. All rights reserved.

Q&A

Page 24: A Framework for Obligation Fulfillment in REST Services

24 © Copyright 2011 EMC Corporation. All rights reserved.

THANK YOU