IAM Online - Grouper Permissions Chris Hyzer University of Pennsylvania / Internet2 September 14,...

47
IAM Online - Grouper Permissions IAM Online - Grouper Permissions IAM Online - Grouper Permissions Chris Hyzer Chris Hyzer University of Pennsylvania / University of Pennsylvania / Internet2 Internet2 September 14, 2011 September 14, 2011 03/27/22 1

Transcript of IAM Online - Grouper Permissions Chris Hyzer University of Pennsylvania / Internet2 September 14,...

Page 1: IAM Online - Grouper Permissions Chris Hyzer University of Pennsylvania / Internet2 September 14, 2011 9/14/20151.

IAM Online - Grouper Permissions

IAM Online - Grouper PermissionsIAM Online - Grouper Permissions

Chris HyzerChris Hyzer

University of Pennsylvania / Internet2University of Pennsylvania / Internet2

September 14, 2011September 14, 2011

04/19/23 1

Page 2: IAM Online - Grouper Permissions Chris Hyzer University of Pennsylvania / Internet2 September 14, 2011 9/14/20151.

IAM Online - Grouper Permissions

IAM Online Grouper PermissionsIAM Online Grouper Permissions

Use case description Architecture Permissions setup Oracle Fine Grained Access Control Demo Real-time provisioning Workflow Note: all code in slide notes and SVN (viewVC) Note: youtube demo (part 1) (part 2) Note: presentation and notes here (google “grouper

documents”, though not OLD one)

04/19/23 2

Page 3: IAM Online - Grouper Permissions Chris Hyzer University of Pennsylvania / Internet2 September 14, 2011 9/14/20151.

IAM Online - Grouper Permissions

Use case descriptionUse case description From Penn State, also needed at University of PA Personal user data stored in SQL DB Applications across the University need to access the data Principle of least privilege at a row and column level User information (test data set):

– PersonID– NetID– First and last name– Email address– Phone numbers

SQL access will take place with different schemas per application

This service is called SecureUserData (SUD)

04/19/23 3

Page 4: IAM Online - Grouper Permissions Chris Hyzer University of Pennsylvania / Internet2 September 14, 2011 9/14/20151.

IAM Online - Grouper Permissions

Use case description (continued)Use case description (continued) PSU and UP only need read-only access managed,

but for this example, let’s manage READ/WRITE

04/19/23 4

Oracle

Student billingweb app

Fac/staff filesharing app

Schema: FASTDEV2IDs (read-only)Name (read/write)Student rows

IDs (read-only)Name (read-only)Contact info (read/write)Faculty/staff rows

Schema: FASTDEV3

Page 5: IAM Online - Grouper Permissions Chris Hyzer University of Pennsylvania / Internet2 September 14, 2011 9/14/20151.

IAM Online - Grouper Permissions

Sample dataSample data

04/19/23 5

ID PersonID NetID First Last Email Work# Home#

A3 12345 js John Smith [email protected] 3-1234 123-4567

B4 98765 sd Sara Davis [email protected] 5-2345 234-5678

C5 54321 rj Ryan Jones [email protected] 7-4567 345-6789

T7 56789 jc Julia Clark [email protected] 9-6789 456-7890

Students Faculty

Page 6: IAM Online - Grouper Permissions Chris Hyzer University of Pennsylvania / Internet2 September 14, 2011 9/14/20151.

IAM Online - Grouper Permissions

ArchitectureArchitecture

One table in Oracle with personal user information Secure the table with Oracle FGAC (Fine grained

access control) / VPD (Virtual private database) Security data needs to be replicated from Grouper to

Oracle for performance reasons Store memberships for rows and permissions for

schemas in Grouper Access request workflow with Kuali Rice edoclite /

Grouper Note: a schema in Oracle is the connecting DB user

04/19/23 6

Page 7: IAM Online - Grouper Permissions Chris Hyzer University of Pennsylvania / Internet2 September 14, 2011 9/14/20151.

IAM Online - Grouper Permissions

Grouper demo serverGrouper demo server

Publicly accessible server that runs various versions of Grouper for demo purposes

Grouper demo server: https://grouperdemo.internet2.edu/ Grouper demo wiki You can register an InCommon login ID

04/19/23 7

Page 8: IAM Online - Grouper Permissions Chris Hyzer University of Pennsylvania / Internet2 September 14, 2011 9/14/20151.

IAM Online - Grouper Permissions

Setup on Grouper demo server: affiliationsSetup on Grouper demo server: affiliations

Normally these would be available in Grouper as loader jobs They are not on the Grouper demo server, so add

04/19/23 8

Page 9: IAM Online - Grouper Permissions Chris Hyzer University of Pennsylvania / Internet2 September 14, 2011 9/14/20151.

IAM Online - Grouper Permissions

Setup: row level groupsSetup: row level groups

Create the application folder, and organize subfolders Add the community groups as members

04/19/23 9

Page 10: IAM Online - Grouper Permissions Chris Hyzer University of Pennsylvania / Internet2 September 14, 2011 9/14/20151.

IAM Online - Grouper Permissions

Setup: row/column level permission definitionSetup: row/column level permission definition Permission definition has configuration and security

04/19/23 10

Page 11: IAM Online - Grouper Permissions Chris Hyzer University of Pennsylvania / Internet2 September 14, 2011 9/14/20151.

IAM Online - Grouper Permissions

Setup read/write action for this permission defSetup read/write action for this permission def

Include an “all” which implies read and write

Note: this is specific to this one permission definition, and does not affect other permissions in Grouper

04/19/23 11

Page 12: IAM Online - Grouper Permissions Chris Hyzer University of Pennsylvania / Internet2 September 14, 2011 9/14/20151.

IAM Online - Grouper Permissions

Setup permission name for each set of columnsSetup permission name for each set of columns

04/19/23 12

Page 13: IAM Online - Grouper Permissions Chris Hyzer University of Pennsylvania / Internet2 September 14, 2011 9/14/20151.

IAM Online - Grouper Permissions

Setup column permission name inheritanceSetup column permission name inheritance

04/19/23 13

Page 14: IAM Online - Grouper Permissions Chris Hyzer University of Pennsylvania / Internet2 September 14, 2011 9/14/20151.

IAM Online - Grouper Permissions

Setup permission name for each group of rowsSetup permission name for each group of rows

04/19/23 14

Page 15: IAM Online - Grouper Permissions Chris Hyzer University of Pennsylvania / Internet2 September 14, 2011 9/14/20151.

IAM Online - Grouper Permissions

Setup row permission name inheritanceSetup row permission name inheritance

04/19/23 15

Page 16: IAM Online - Grouper Permissions Chris Hyzer University of Pennsylvania / Internet2 September 14, 2011 9/14/20151.

IAM Online - Grouper Permissions

Assign the permissionsAssign the permissions

04/19/23 16

Page 17: IAM Online - Grouper Permissions Chris Hyzer University of Pennsylvania / Internet2 September 14, 2011 9/14/20151.

IAM Online - Grouper Permissions

Setup: insert sample dataSetup: insert sample dataTable: SECUREUSERDATA_USERTable: SECUREUSERDATA_USER

04/19/23 17

Page 18: IAM Online - Grouper Permissions Chris Hyzer University of Pennsylvania / Internet2 September 14, 2011 9/14/20151.

IAM Online - Grouper Permissions

Setup: enable client subject for WSSetup: enable client subject for WS

04/19/23 18

Page 19: IAM Online - Grouper Permissions Chris Hyzer University of Pennsylvania / Internet2 September 14, 2011 9/14/20151.

IAM Online - Grouper Permissions

Setup: privileges for grouperClientSubject (e.g.)Setup: privileges for grouperClientSubject (e.g.)

04/19/23 19

Page 20: IAM Online - Grouper Permissions Chris Hyzer University of Pennsylvania / Internet2 September 14, 2011 9/14/20151.

IAM Online - Grouper Permissions

Setup: groups without members represent schemasSetup: groups without members represent schemas

04/19/23 20

Page 21: IAM Online - Grouper Permissions Chris Hyzer University of Pennsylvania / Internet2 September 14, 2011 9/14/20151.

IAM Online - Grouper Permissions

04/19/23 21

Full sync Grouper to Oracle security tablesFull sync Grouper to Oracle security tables

Grouper

SUD synclogic

WS select

1

Oracle

SQL select

2

SQL insert/delete

3

Page 22: IAM Online - Grouper Permissions Chris Hyzer University of Pennsylvania / Internet2 September 14, 2011 9/14/20151.

IAM Online - Grouper Permissions

Run the full sync Java programRun the full sync Java program Code in SVN:

http://anonsvn.internet2.edu/svn/i2mi/trunk/grouper-misc/poc_secureUserData/

04/19/23 22

Page 23: IAM Online - Grouper Permissions Chris Hyzer University of Pennsylvania / Internet2 September 14, 2011 9/14/20151.

IAM Online - Grouper Permissions

Local cache of security tables and membershipsLocal cache of security tables and memberships SECUREUSERDATA_MEMBERSHIPS

SECUREUSERDATA_ROW_PERMISS

SECUREUSERDATA_COL_PERMISS

04/19/23 23

Page 24: IAM Online - Grouper Permissions Chris Hyzer University of Pennsylvania / Internet2 September 14, 2011 9/14/20151.

IAM Online - Grouper Permissions

Oracle FGAC/VPD/RLSOracle FGAC/VPD/RLS Oracle Fine Grained Access Control (FGAC) aka: Virtual Private Database

(VPD)– A way to apply a virtual (hidden to the user) “where clause” to limit rows (Row Level

Security (RLS))– A way to null-out columns in a way that is hidden to the user– Based on schema, or if trusted schema, data in the context

Note: this part does not have to be FGAC, you could use a view with functions, or something else…– With Oracle, FGAC is supposed to perform better than a view with

functions

04/19/23 24

Page 25: IAM Online - Grouper Permissions Chris Hyzer University of Pennsylvania / Internet2 September 14, 2011 9/14/20151.

IAM Online - Grouper Permissions

04/19/23 25

Application schemas accessing FGAC’ed dataApplication schemas accessing FGAC’ed data

SchemaYFGAC

SchemaX accesses data

Run a PL/SQL functionthat appends a predicate to the query based on the schema or data in context. Can restrict insert/update/deletes. Predicate joins to SUD security tables from Grouper

1

Oracle

Filtered results

2

3

Query on FGAC’ed table/view

Page 26: IAM Online - Grouper Permissions Chris Hyzer University of Pennsylvania / Internet2 September 14, 2011 9/14/20151.

IAM Online - Grouper Permissions

Oracle FGAC (continued)Oracle FGAC (continued) For performance, cache security in the connection context

(similar to ThreadLocal)– Only cache for a certain amount of time (5 minutes?)– Can cache on connect trigger, or on demand

• “on demand” might be better if users connect to the DB for things unrelated to the FGAC

– Cache who the user is, when cache was created, if can read/write all rows, which column sets can read/write

04/19/23 26

Page 27: IAM Online - Grouper Permissions Chris Hyzer University of Pennsylvania / Internet2 September 14, 2011 9/14/20151.

IAM Online - Grouper Permissions

Oracle FGAC (continued)Oracle FGAC (continued) Designate an Oracle package to hold the FGAC code

– Full code in slide notes

04/19/23 27

Page 28: IAM Online - Grouper Permissions Chris Hyzer University of Pennsylvania / Internet2 September 14, 2011 9/14/20151.

IAM Online - Grouper Permissions

Oracle FGAC row predicateOracle FGAC row predicate Two functions are where clause predicates relating to the

query: one for select, one for update

Six functions are “where clause” predicates relating to the columns in query: 3 different colsets, for insert/update

04/19/23 28

Page 29: IAM Online - Grouper Permissions Chris Hyzer University of Pennsylvania / Internet2 September 14, 2011 9/14/20151.

IAM Online - Grouper Permissions

Oracle FGAC (continued)Oracle FGAC (continued) Assign the policies to table Here is an example of 1 of the 8 policies (full code in slide

notes)

04/19/23 29

Page 30: IAM Online - Grouper Permissions Chris Hyzer University of Pennsylvania / Internet2 September 14, 2011 9/14/20151.

IAM Online - Grouper Permissions

Oracle FGAC queries from owner schema: all dataOracle FGAC queries from owner schema: all data Note: there is a short circuit, if owner schema, allow access

04/19/23 30

Page 31: IAM Online - Grouper Permissions Chris Hyzer University of Pennsylvania / Internet2 September 14, 2011 9/14/20151.

IAM Online - Grouper Permissions

Oracle FGAC queries from student billing Oracle FGAC queries from student billing application: sees students and no contact infoapplication: sees students and no contact info

04/19/23 31

Page 32: IAM Online - Grouper Permissions Chris Hyzer University of Pennsylvania / Internet2 September 14, 2011 9/14/20151.

IAM Online - Grouper Permissions

Oracle FGAC queries from student billing Oracle FGAC queries from student billing application: can update name, not idsapplication: can update name, not ids

04/19/23 32

Page 33: IAM Online - Grouper Permissions Chris Hyzer University of Pennsylvania / Internet2 September 14, 2011 9/14/20151.

IAM Online - Grouper Permissions

Oracle FGAC queries from faculty/staff file sharing Oracle FGAC queries from faculty/staff file sharing application: sees fac/staff and all columnsapplication: sees fac/staff and all columns

04/19/23 33

Page 34: IAM Online - Grouper Permissions Chris Hyzer University of Pennsylvania / Internet2 September 14, 2011 9/14/20151.

IAM Online - Grouper Permissions

Oracle FGAC queries from faculty/staff file sharing Oracle FGAC queries from faculty/staff file sharing application: can update contact info, not nameapplication: can update contact info, not name

04/19/23 34

Page 35: IAM Online - Grouper Permissions Chris Hyzer University of Pennsylvania / Internet2 September 14, 2011 9/14/20151.

IAM Online - Grouper Permissions

Add a requirement: read-only access of file sharing Add a requirement: read-only access of file sharing application to student rows. Assign in Grouperapplication to student rows. Assign in Grouper

Kick off the sync’ing app, or wait for cron

04/19/23 35

Page 36: IAM Online - Grouper Permissions Chris Hyzer University of Pennsylvania / Internet2 September 14, 2011 9/14/20151.

IAM Online - Grouper Permissions

Add a requirement (continued). See rows in OracleAdd a requirement (continued). See rows in Oracle

The new student row is read-only

04/19/23 36

Page 37: IAM Online - Grouper Permissions Chris Hyzer University of Pennsylvania / Internet2 September 14, 2011 9/14/20151.

IAM Online - Grouper Permissions

04/19/23 37

Real-time row membership notificationReal-time row membership notification

Grouper

SUD real-time logic

Student or staff group membership changes

1

Oracle

XMPP XML message with group and subjectId

2

Check Grouper and Oracle for membership

3

WS

SQL

4

Insert or delete membership in cached table (if needed)

Page 38: IAM Online - Grouper Permissions Chris Hyzer University of Pennsylvania / Internet2 September 14, 2011 9/14/20151.

IAM Online - Grouper Permissions

Real-time row membership notification demoReal-time row membership notification demo Add Ryan Jones as a student Note: in reality the student system and loader will do this

04/19/23 38

Page 39: IAM Online - Grouper Permissions Chris Hyzer University of Pennsylvania / Internet2 September 14, 2011 9/14/20151.

IAM Online - Grouper Permissions

Real-time row membership notification demoReal-time row membership notification demo Start the real time XMPP listener:

Less than 1 minute after Grouper change, XMPP message goes from Grouper to SUD real time logic

Note, it is configured to only send/receive relevant messages

See the listener process the message

04/19/23 39

Page 40: IAM Online - Grouper Permissions Chris Hyzer University of Pennsylvania / Internet2 September 14, 2011 9/14/20151.

IAM Online - Grouper Permissions

Real-time row membership notification demoReal-time row membership notification demo See that Ryan is now a student, select users from fastdev2

(student application)

04/19/23 40

Page 41: IAM Online - Grouper Permissions Chris Hyzer University of Pennsylvania / Internet2 September 14, 2011 9/14/20151.

IAM Online - Grouper Permissions

04/19/23 41

Real-time permission notificationReal-time permission notification

Grouper

SUD real-time logic

Relevant permission or role assignment

1

Oracle

XMPP XML message to refresh all permissions

2

Check Grouper and Oracle for permissions

3

WS

SQL

4

Insert or delete permission diffs in cached table

Page 42: IAM Online - Grouper Permissions Chris Hyzer University of Pennsylvania / Internet2 September 14, 2011 9/14/20151.

IAM Online - Grouper Permissions

Real-time permission notification demoReal-time permission notification demo Allow file sharing app to read student data

04/19/23 42

Page 43: IAM Online - Grouper Permissions Chris Hyzer University of Pennsylvania / Internet2 September 14, 2011 9/14/20151.

IAM Online - Grouper Permissions

Real-time permission notification demoReal-time permission notification demo The listener was already started

Less than 1 minute after Grouper change, XMPP message goes from Grouper to SUD real time logic

Note, it is configured to only send/receive relevant messages

See the listener process the message

04/19/23 43

Page 44: IAM Online - Grouper Permissions Chris Hyzer University of Pennsylvania / Internet2 September 14, 2011 9/14/20151.

IAM Online - Grouper Permissions

Access request workflowAccess request workflow Penn will use its Kuali Rice eDocLite with a template like this Can auto-provision, though needs some work for

allow/disallow and schema entity creation

04/19/23 44

Page 45: IAM Online - Grouper Permissions Chris Hyzer University of Pennsylvania / Internet2 September 14, 2011 9/14/20151.

IAM Online - Grouper Permissions

Access request workflow mockup (continued)Access request workflow mockup (continued)

04/19/23 45

Page 46: IAM Online - Grouper Permissions Chris Hyzer University of Pennsylvania / Internet2 September 14, 2011 9/14/20151.

IAM Online - Grouper Permissions

04/19/23 46

Access request workflowAccess request workflow

Requestor

SUD real-time logic

Fills out eForm1Oracle

SQL

Supervisor Approves2

Senior BA Approves3

Central ITApproves,creates schema4

EDocLiteGrants/revokespermissions5 Grouper

XMPP

WS

FGAC

6

7

8

Page 47: IAM Online - Grouper Permissions Chris Hyzer University of Pennsylvania / Internet2 September 14, 2011 9/14/20151.

IAM Online - Grouper Permissions

Questions?Questions?

04/19/23 47