170 likes | 292 Views
Access Grid Authorization. Thomas Uram turam@mcs.anl.gov Argonne National Laboratory. Agenda. Authorization Landscape Role-based Authorization AuthorizationManager API Examples and exercises. Landscape. PKI Every user has a unique certificate Web Services
E N D
Access Grid Authorization Thomas Uram turam@mcs.anl.gov Argonne National Laboratory
Agenda • Authorization Landscape • Role-based Authorization • AuthorizationManager API • Examples and exercises
Landscape • PKI • Every user has a unique certificate • Web Services • Web-accessible components of the AG software are exposed via SOAP over GSI • GSI connections are authenticated using certificates • User’s identity subject to verification by server • Server’s identity subject to verification by user • Methods are distinguished by their callability • Administrator methods • Venue configuration • User methods • Venue entry
Audio Service Video Service Venue Landscape Multicast
Role-based Authorization • Abstraction layer between objects and persons who will access them • Similar to *nix file system concept • Each object has a list of actions that can be performed on it (rwx) • Each action has a list of groups which are allowed to call it • Each group has a list of members (/etc/group)
Roles • Roles are user groups • Required roles • Administrator • User • Custom roles • Venue.AllowedEntry • Venue.RegisteredUsers
Actions • Actions define operations on web services • In *nix file system analog, read/write/execute are Actions • Actions currently map one-to-one to web service methods • VenueServer.GetVenues • Venue.GetStreams
Subjects • Subject class holds information about a user (in particular, the user’s distinguished name)
Policies • An authorization policy describes the role/action/subject relationships in force for a service • The policy for a service is represented in XML • The policy can be modified wholesale, or through individual calls • Services define default policies
Authorization UI • VenueServer
Authorization UI • Venue
AuthorizationManager • AccessGrid.Security.AuthorizationManager • Exposes interfaces for modifying the authorization policy for a service • Used in authorization callback registered with SOAP server
Future work • Finer-grained authorization • Apply to objects in Venue • Permit authorization of individuals, not just groups • Consider integrating a well-established authorization framework
Example: List defined Roles #!/usr/bin/python2 import sys from AccessGrid.Toolkit import CmdlineApplication from AccessGrid.Venue import VenueIW from AccessGrid.Security.AuthorizationManager import AuthorizationManagerIW url = sys.argv[1] # Create and initialize application app = CmdlineApplication() app.Initialize('ListRoles') # Get url for authorization manager and create interface wrapper v = VenueIW(url) amurl = v.GetAuthorizationManager() authManager = AuthorizationManagerIW(amurl) # Get roles from venue and process roleList = authManager.ListRoles() for role in roleList: print role.name