Central Authorization System
Download
Report
Transcript Central Authorization System
Penn
Groups
PennGroups
Central Authorization System
June 2009
Penn Groups
PennGroups
PennGroups
PennGroups is derived from the Internet2 open source
Grouper initiative
Has been adopted and deployed at many other universities
(Brown, Cornell, Yale)
Penn has a programmer on the Grouper development team to
enhance the baseline product (UI, web services, SQL loaded
groups)
– Better meets the needs of Penn
– Provides additional useful functionality to other grouper users
PennGroups will be managed by ISC-Data Administration
– Transition from dev team and definition of service level is in progress
There is no additional charge to use PennGroups including
consulting from ISC
7/21/2015
Central Authorization at the University of Pennsylvania
2
Penn Groups
PennGroups
Internet2 Grouper
Open source group management
Internet2 has been working on group management for 8 years
Generally used in educational institutions, but could be
anywhere
Funded by Internet2
7/21/2015
University of Pennsylvania
3
Penn Groups
PennGroups
Why use PennGroups?
Instead of apps managing own groups
Reuse group lists
Central place to see which groups a person is in
Central auditing of group and membership actions
Central management of authorization
Security:
– Who can view/edit groups and memberships
– Opt-in/Opt-out
– Delegate authority
Automatic or manual membership management
Composite groups for group match: and / or / minus
Groups of groups
7/21/2015
University of Pennsylvania
4
Penn Groups
PennGroups
How It Works
Authorization by application
After authentication the application can
interrogate PennGroups for access to group
membership data
– Web services
– LDAP
Changes to group membership are reflected
automatically and propagate to the
application dynamically
7/21/2015
Central Authorization at the University of Pennsylvania
5
Penn Groups
PennGroups
Managing PennGroups
Two modes for creating and managing groups
– Automated
• Web services - build and run a query from your data store and
send group membership information to PennGroups via the web
service API
• SQL loaded groups– Configure a SQL query within the
PennGroups UI to run on a scheduled basis to modify group
membership
– Manual
• UI – log onto the PennGroups UI to manually manage your group
membership
– You cannot manually add members to or remove members from a
group that is managed in an automated fashion
– You can simulate this with include/exclude composite groups
7/21/2015
Central Authorization at the University of Pennsylvania
6
Penn Groups
PennGroups
PennGroups Hierarchy
7/21/2015
Central Authorization at the University of Pennsylvania
7
Penn Groups
PennGroups
PennGroups in a Decentralized Environment
When School/Center is integrating with PennGroups
– LSP (local support provider)/ application developer
contacts ISC: [email protected]
– LSP/developer and ISC collaborate to:
• Establish authorization use cases for the specific application
• Determine access method (LDAP or Web Services)
• Determine best approach for group creation and maintenance
– School/Center fills out access forms
– ISC consults with LSP/developer on group hierarchy
structure
7/21/2015
Central Authorization at the University of Pennsylvania
8
Penn Groups
PennGroups
Use Cases
PTO – Paid Time Off
–
–
–
Self service system used to request/track vacation/sick time
Penn Groups provides the flexibility so that the user selects their approver for time off.
Time off can be routed and approved by other than a direct supervisor
Warehouse Apps
–
Only active employess in certains orgs are allowed to access the application
Secure Share
–
Can share files with a group of collaborators
Email lists (coming soon)
Facilities Website
–
Only facilities employees or contractors can access the facilities website
7/21/2015
Central Authorization at the University of Pennsylvania
9
Penn Groups
PennGroups architecture
7/21/2015
Central Authorization at the University of Pennsylvania
10
Penn Groups
Grouper user interface (continued)
7/21/2015
Central Authorization at the University of Pennsylvania
11
Penn Groups
Grouper web services
Penn/Internet2 spent a lot of effort in winter/spring 2008 to help
create the Grouper web services
They can be REST or SOAP
They can be simple “Lite” calls, or batched
REST accepts formats: XML, XHTML, JSON, HTTP params
There are a dozen operations exposed, including managing:
– Groups
– Memberships
– Permissions
– Folders
Penn uses HTTP credentials sent to kerberos and
penn:etc:webServiceUsers group required for authorization
7/21/2015
ISC, ASTT
12
Penn Groups
Grouper web services (continued)
7/21/2015
Central Authorization at the University of Pennsylvania
13
Penn Groups
Grouper web services (continued)
7/21/2015
Central Authorization at the University of Pennsylvania
14
Penn Groups
Grouper web services (continued)
7/21/2015
Central Authorization at the University of Pennsylvania
15
Penn Groups
PennGroups LDAP
There is a Grouper LDAP provisioning connector
called LDAPPC, though Penn does not use this
We have some simple triggers in Oracle which add
records to a change log
Then a process pulls records off of that table to sends
diffs to openLDAP (runs every 10 minutes)
Daily all records are refreshed
Only users in penn:etc:ldapUsers can login to ldap
Users can only read group membership lists they
have privileges to read in Grouper
7/21/2015
Central Authorization at the University of Pennsylvania
16
Penn Groups
Grouper client
LDAP and web services are low level
Grouper client exposes Grouper LDAP and web
services to a command line API or a Java library
It can also be used to generate custom web service
samples (can log requests and responses)
Institutions can customize the client before distributing
so the LDAP config is done (e.g. Penn allows ID
lookups)
Callers aren’t tied to output, they can tell the client the
output format that is expected
7/21/2015
Central Authorization at the University of Pennsylvania
17
Penn Groups
Grouper client (continued)
7/21/2015
Central Authorization at the University of Pennsylvania
18
Penn Groups
Grouper client (continued)
Sample command line web service call:
c:\grouper> java -jar grouperClient.jar --operation=getMembersWs
--groupNames=aStem:aGroup --outputTemplate=${index}: ${subject.id}
0: 12345
1: 23456
c:\grouper>
Sample Java web service call:
WsAddMemberResults wsAddMemberResults =
new GcAddMember().assignGroupName("aStem:aGroup")
.addSubjectId("12345").execute();
7/21/2015
Central Authorization at the University of Pennsylvania
19
Penn Groups
Grouper loader
Penn contributed the “Grouper loader” in spring 2008
This keeps groups in sync with results of sql queries
7/21/2015
Central Authorization at the University of Pennsylvania
20
Penn Groups
Grouper loader (continued)
7/21/2015
Central Authorization at the University of Pennsylvania
21
Penn Groups
Grouper loader (continued)
SQL> select * from authz_employee_active_v where rownum < 10
PENN_ID
---------12345
12346
12347
12348
12349
12350
12351
12352
12353
7/21/2015
PENN_NAME
-----------------------jsmith
asmith
bsmith
rjohnson
sjohnson
tjohnson
ajones
bjones
cjones
Central Authorization at the University of Pennsylvania
22
Penn Groups
Grouper loader (continued)
7/21/2015
Central Authorization at the University of Pennsylvania
23
Penn Groups
Grouper loader (continued)
SQL> select * from employee_org_groups_v where rownum < 10
SUBJECT_ID
---------12345
12346
12347
12348
12349
12350
12351
12352
12353
7/21/2015
GROUP_NAME
-----------------------penn:community:employee:orgs:employeeOrg123
penn:community:employee:orgs:employeeOrg123
penn:community:employee:orgs:employeeOrg123
penn:community:employee:orgs:employeeOrg124
penn:community:employee:orgs:employeeOrg124
penn:community:employee:orgs:employeeOrg124
penn:community:employee:orgs:employeeOrg128
penn:community:employee:orgs:employeeOrg128
penn:community:employee:orgs:employeeOrg128
Central Authorization at the University of Pennsylvania
24
Penn Groups
PennGroups
More Information
For technical documentation see the Internet2 Grouper wiki
at:
– PennGroups site:
•
http://www.upenn.edu/computing/penngroups/
– PennGroups wiki:
•
http://prowiki.isc.upenn.edu/wiki/PennGroups
– Grouper product
•
https://wiki.internet2.edu/confluence/display/GrouperWG/Grouper+Project
– Grouper project
•
https://wiki.internet2.edu/confluence/display/GrouperWG/Grouper+Project
– Web services info
•
7/21/2015
https://wiki.internet2.edu/confluence/display/GrouperWG/Grouper+-+Web+Services
Central Authorization at the University of Pennsylvania
25