Grouper after Groups Enabling Net+ Services with PAP, PEP, and PDP...Oh My! October 3rd, 2012 Bill...

22
Grouper after Groups Enabling Net+ Services with PAP, PEP, and PDP...Oh My! October 3rd, 2012 Bill Thompson IAM Architect, Unicon Chris Hyzer Grouper Developer, University of Pennsylvania

Transcript of Grouper after Groups Enabling Net+ Services with PAP, PEP, and PDP...Oh My! October 3rd, 2012 Bill...

Page 1: Grouper after Groups Enabling Net+ Services with PAP, PEP, and PDP...Oh My! October 3rd, 2012 Bill Thompson IAM Architect, Unicon Chris Hyzer Grouper Developer,

Grouper after GroupsEnabling Net+ Services with PAP, PEP, and PDP...Oh My!October 3rd, 2012

Bill ThompsonIAM Architect, Unicon

Chris HyzerGrouper Developer, University of Pennsylvania

Page 2: Grouper after Groups Enabling Net+ Services with PAP, PEP, and PDP...Oh My! October 3rd, 2012 Bill Thompson IAM Architect, Unicon Chris Hyzer Grouper Developer,

Grouper after Groups

• XACML – Policy, Rules, and the P*P• Grouper as PAP, PDP, PEP• Access Management Strategies• Penn Example• Grouper PEP POCs (Shiro, Spring, .NET)• NET+ Services and Grouper

Contents

2 – © 2012 Internet2

Page 3: Grouper after Groups Enabling Net+ Services with PAP, PEP, and PDP...Oh My! October 3rd, 2012 Bill Thompson IAM Architect, Unicon Chris Hyzer Grouper Developer,

• XML + Request/Response – subject allowed action on resource?

• Policy Administration Point (PAP) is used to write policies.

• Policy Decision Point (PDP) evaluates policies in the context of an access request

• Policy Enforcement Point (PEP) intercepts access requests and carries out the decisions of the PDP

XACML and P*P

2 – © 2012 Internet2

Page 4: Grouper after Groups Enabling Net+ Services with PAP, PEP, and PDP...Oh My! October 3rd, 2012 Bill Thompson IAM Architect, Unicon Chris Hyzer Grouper Developer,

XACML and P*P

2 – © 2012 Internet2

PAP

PDP

Policy

Context handler

PIP

AttributesSubjects

Request

ResponsePEP

Req

uest

Res

pons

e

AccessRequestor

Request

Response

2

1

Page 5: Grouper after Groups Enabling Net+ Services with PAP, PEP, and PDP...Oh My! October 3rd, 2012 Bill Thompson IAM Architect, Unicon Chris Hyzer Grouper Developer,

XACML and P*P

2 – © 2012 Internet2

PAP

PDP

Policy

Context handler

Request

ResponsePEP

Req

uest

Res

pons

e

AccessRequestor

Request

Response

2

1

Grouper UI

Grouper WS

Plugin orGrouper Client

Grouper WS

Application

Page 6: Grouper after Groups Enabling Net+ Services with PAP, PEP, and PDP...Oh My! October 3rd, 2012 Bill Thompson IAM Architect, Unicon Chris Hyzer Grouper Developer,

7 – © 2012 Internet2

Page 7: Grouper after Groups Enabling Net+ Services with PAP, PEP, and PDP...Oh My! October 3rd, 2012 Bill Thompson IAM Architect, Unicon Chris Hyzer Grouper Developer,

• Grouper Loader • Include/Exclude Groups / Composites• Grouper Inheritance

• Groups• Roles• Actions• Resources

Grouper as “Policy” Administration Point

2 – © 2012 Internet2

Page 8: Grouper after Groups Enabling Net+ Services with PAP, PEP, and PDP...Oh My! October 3rd, 2012 Bill Thompson IAM Architect, Unicon Chris Hyzer Grouper Developer,

• Active faculty members can login to the grading application

• System XYZ can view ad hoc attributes / people in the institution community database

• Active IT support staff can manage applications that they work on

Example policies

2 – © 2012 Internet2

Page 9: Grouper after Groups Enabling Net+ Services with PAP, PEP, and PDP...Oh My! October 3rd, 2012 Bill Thompson IAM Architect, Unicon Chris Hyzer Grouper Developer,

• Active faculty members can login to the grading application

Example policy in Grouper #1

2 – © 2012 Internet2

Institution community groups

Faculty SOR

PayrollSystem

Load

er

Excludes

Includes

FacultyGrading Faculty

Role

Includes

Excludes

Login permission

Application groupsand permissions

WS haspermission

Action: assign

Page 10: Grouper after Groups Enabling Net+ Services with PAP, PEP, and PDP...Oh My! October 3rd, 2012 Bill Thompson IAM Architect, Unicon Chris Hyzer Grouper Developer,

• System XYZ can view ad hoc attributes / people in the institution community database

Example policy in Grouper #2

2 – © 2012 Internet2

Institution community groups

FacultyPayroll systemLoader

System entity

Colpermission

App groups / permissions

WS getpermissions

Action: select

StudentsStudent systemCol

permissionColSetpermissionCol

permissionColpermissionRowGroup

permission

WS getmembers

Page 11: Grouper after Groups Enabling Net+ Services with PAP, PEP, and PDP...Oh My! October 3rd, 2012 Bill Thompson IAM Architect, Unicon Chris Hyzer Grouper Developer,

• Active IT support staff can manage applications that they work on

Example policy in Grouper #3

2 – © 2012 Internet2

Institution community groups

IT orgPayroll system

Loader

App Support

Role

Colpermission

App groups / permissions

WS getpermissions

Action(s):restartTomcatrestartApachedeployviewLogsall

ColpermissionApp1

permission

IT orgIT org

CompositeIntersection

userAuserAuserAuserA

Page 12: Grouper after Groups Enabling Net+ Services with PAP, PEP, and PDP...Oh My! October 3rd, 2012 Bill Thompson IAM Architect, Unicon Chris Hyzer Grouper Developer,

• Is in Group/Role? Has permissions?– Determined via loader, grouper config, inheritance,... – Effective membership– Effective permissions– Available for caching

• Has permission based on context?– Grouper Limits– Only available at time of request– Access through Web Service API– XACML-like yes/no response to PDP request

Grouper as “Policy” Decision Point

5 – © 2012 Internet2

Page 13: Grouper after Groups Enabling Net+ Services with PAP, PEP, and PDP...Oh My! October 3rd, 2012 Bill Thompson IAM Architect, Unicon Chris Hyzer Grouper Developer,

• Grouper connectors for Kuali Rice, uPortal, Atlassian• Proof-of-concept connectors for Shiro, Spring, and .NET

– Application developers can focus language/platform specific authorization API

Grouper as “Policy” Enforcement Point

5 – © 2012 Internet2

Page 14: Grouper after Groups Enabling Net+ Services with PAP, PEP, and PDP...Oh My! October 3rd, 2012 Bill Thompson IAM Architect, Unicon Chris Hyzer Grouper Developer,

• Apache Shiro– Grouper group membership to Shiro hasRole– Grouper permissions to Shiro hasPermission

• Spring Security– Grouper group to GrantedAuthority

• .NET– Grouper group to .NET hasRole

• Jasig CAS– Course-grained access control via PersonDirectory Grouper

plugin

https://github.com/Unicon/iam-labs

Grouper POC Connectors for Authorization APIs

5 – © 2012 Internet2

Page 15: Grouper after Groups Enabling Net+ Services with PAP, PEP, and PDP...Oh My! October 3rd, 2012 Bill Thompson IAM Architect, Unicon Chris Hyzer Grouper Developer,

Config: <intercept-url pattern="/secure/extreme/**" access="hasRole('ss-app:supervisor')" />

<intercept-url pattern="/secure/**" access="hasRole('ss-app:user')" />

<intercept-url pattern="/**" access="hasRole('ss-app:user')" />

Code:<sec:authorize ifAllGranted="ss-app:supervisor">

<p>You are a supervisor! You can therefore see the <a href="extreme/index.jsp">extremely secure page</a>.</p>

</sec:authorize>

Annotations:@PreAuthorize("hasRole('ROLE_USER')")

public void create(Contact contact);

Grouper Connectors for Spring Security

5 – © 2012 Internet2

Page 16: Grouper after Groups Enabling Net+ Services with PAP, PEP, and PDP...Oh My! October 3rd, 2012 Bill Thompson IAM Architect, Unicon Chris Hyzer Grouper Developer,

Config:

[urls]

/shiro-cas = casFilter

/user/** = user

/** = anon

Code:

<shiro:hasRole name="shiro-app:admin">

<shiro:hasPermission name="payroll:run">

<shiro:lacksRole/>

<shiro:hasAnyRoles/>

<shiro:hasPermission/>

<shiro:lacksPermission/>

Grouper Connector for Apache Shrio

5 – © 2012 Internet2

Page 17: Grouper after Groups Enabling Net+ Services with PAP, PEP, and PDP...Oh My! October 3rd, 2012 Bill Thompson IAM Architect, Unicon Chris Hyzer Grouper Developer,

Config: <authorization>

<allow roles="Admin"/>

<deny users="*"/>

</authorization>

Code:if (User.IsInRole("Administrator"))...

Annotations:[Authorize(Roles = "Administrator")]

public ActionResult Index()

Grouper Connectors for .NET

5 – © 2012 Internet2

Page 18: Grouper after Groups Enabling Net+ Services with PAP, PEP, and PDP...Oh My! October 3rd, 2012 Bill Thompson IAM Architect, Unicon Chris Hyzer Grouper Developer,

• Caching• Scoping for applications• Permission name transformation• Invalidating cache (change log listener + call back to app via

https)• Permissions could also be put in to Spring granted authorities

Grouper POC Connectors...need more work.

5 – © 2012 Internet2

Page 19: Grouper after Groups Enabling Net+ Services with PAP, PEP, and PDP...Oh My! October 3rd, 2012 Bill Thompson IAM Architect, Unicon Chris Hyzer Grouper Developer,

• ChangeLog/PSP– propagate memberOf/eduPersonEntitlement via LDAP (consumed

directly or via SAML)

• ChangeLog– propagate change notification, then sync (pull into) application specific

authorization data store

• Grouper Connectors for Authorization APIs– read/cache group/permissions from Grouper upon initial access

• Grouper as PDP for permission with Limits– Web Services call for each access decision

Access Management Strategies

5 – © 2012 Internet2

Page 20: Grouper after Groups Enabling Net+ Services with PAP, PEP, and PDP...Oh My! October 3rd, 2012 Bill Thompson IAM Architect, Unicon Chris Hyzer Grouper Developer,

• PAP at Grouper• PDP via Grouper effective membership/permissions• PEP via Connectors, propagation via LDAP/SAML, or notify and pull

via Grouper WS, PSP propagate via service specific APIs or SCIM?• Standard APIs for groups, people, and permissions provisioning

Net+ Services Authorization Models

5 – © 2012 Internet2

Page 21: Grouper after Groups Enabling Net+ Services with PAP, PEP, and PDP...Oh My! October 3rd, 2012 Bill Thompson IAM Architect, Unicon Chris Hyzer Grouper Developer,

• Is it useful to describe Grouper in terms of P*P in the way it has been presented? or does it confuse the matter?

• Should Grouper project support/sponsor the connectors in the respective frameworks?

• Enterprise Access Management strategy for Net+ enablement?

Questions/Discussion

5 – © 2012 Internet2

Page 22: Grouper after Groups Enabling Net+ Services with PAP, PEP, and PDP...Oh My! October 3rd, 2012 Bill Thompson IAM Architect, Unicon Chris Hyzer Grouper Developer,

https://github.com/Unicon/iam-labshttp://www.internet2.edu/grouper/https://spaces.internet2.edu/display/groupertrain/Grouper+Training

Grouper after GroupsEnabling Net+ Services with PAP, PEP, and PDP...Oh My!

Chris HyzerGrouper Developer, University of [email protected]

Bill ThompsonIAM Architect, [email protected]