GAMA: Grid Account Management Architecture

advertisement
GAMA:
Grid Account Management
Architecture
Kurt Mueller
Grid Middleware Development Group
San Diego Supercomputer Center
University of California, San Diego
Portals and Portlets 2006 - July 17, 2006
GAMA 1 in a nutshell
• A system for creating and managing Grid accounts
for portal and application users
• Provides dedicated server installation consisting
of Grid software (CACL, MyProxy, CAS) wrapped
in web services
• Provides management portlets for easy integration
into GridSphere portal framework
– User account request form
– Administrative account management console
– User login through GAMA - retrieves GSI credential
Portals and Portlets 2006 - July 17, 2006
GAMA 1 architecture
create user
gridportlets
DB
GridSphere
import user
Servlet container
retrieve
credential
Java keystore
Portal server 1
Portal server 2
retrieve
credential
AXIS Web Services
wrapper
gama
CACL
MyProxy
CAS
…
Servlet container
Java keystore
GAMA server
Stand-alone applications
Portals and Portlets 2006 - July 17, 2006
GAMA 1 ideal environment
•
•
•
•
•
•
New portal/Grid project
No existing users/credentials
Single administrator
Globus Grid
GridSphere portal
Authorization through grid-mapfile
Portals and Portlets 2006 - July 17, 2006
GAMA 1 weaknesses
• Hard to incorporate existing user accounts and
Grid credentials
• Hard to use existing infrastructure
– MyProxy server
– Other CA packages
• Hard to expand core GAMA functions
–
–
–
–
SRB account creation
Authorization - CAS not so useful?
Unix accounts
grid-mapfile updates
Portals and Portlets 2006 - July 17, 2006
Back to the drawing board…
Portals and Portlets 2006 - July 17, 2006
GAMA 2 features
•
•
•
•
Implementation agnostic
Extensible through a plug-in architecture
Workflow system for multi-step operations
Supports VOs with many sites and independent
site administrators
• Provides cluster account management
Portals and Portlets 2006 - July 17, 2006
Implementation agnostic
• No explicit reliance on MyProxy, CACL, CAS.
Accomplished through a plug-in architecture on
GAMA server: use whatever CA you want,
whatever credential storage, whatever
authorization service, etc.
• GAMA 2 includes CACL, Naregi and MyProxy plugins out
of the box
• May also include SRB account management, and other
plugins
Portals and Portlets 2006 - July 17, 2006
Extensible
• GAMA admin can write task plugins to accomplish
novel tasks:
– Interface with existing infrastructure
(authentication/authorization mechanisms, databases, CA
packages, etc.)
– Manage Unix / Windows / physical accounts
– etc.
Portals and Portlets 2006 - July 17, 2006
Extensible
All GAMA tasks extend GAMATask class:
abstract public class GAMATask {
…
abstract public void doTask() throws GAMATaskException;
abstract public void rollbackTask() throws
GAMATaskRollbackException {};
…
}
Portals and Portlets 2006 - July 17, 2006
Extensible -
MyProxyAuthNTask.xml
<task-def>
<task-param>
<param-name>username</param-name>
<param-class>java.lang.String</param-class>
<param-required>true</param-required>
</task-param>
<task-param>
<param-name>password</param-name>
<param-class>java.lang.String</param-class>
<param-required>true</param-required>
<param-nopersist>true</param-nopersist>
</task-param>
…
<task-output>
<output-name>credentialobject</output-name>
<output-class>org.globus.gsi.GlobusCredential</output-class>
</task-output>
<task-output>
<output-name>credentialstring</output-name>
<output-class>java.lang.String</output-class>
</task-output>
</task-def>
Portals and Portlets 2006 - July 17, 2006
Extensible - MyProxyAuthNTask.java
public class MyProxyAuthNTask extends GAMATask {
public void doTask() throws GAMATaskException {
String username = (String)
getParamObjectByName("username");
String passwd = (String)
getParamObjectByName("password");
…
cred = (GSSCredential) myproxy.get(username, passwd,
myProxyLifetime.intValue());
…
getOutputByName("credentialobject").setOutputObject(cred);
getOutputByName("credentialstring").
setOutputObject(cred.toString());
}
}
Portals and Portlets 2006 - July 17, 2006
Workflow system
• Server operations are customizable and
expandable. Uses a workflow system that can
execute arbitrary sequences of tasks for any
operation, such as “login.”
– GAMA 1 login does one thing: tries to retrieve a
credential from MyProxy.
– GAMA 2 login could do a sequence of things: retrieve
credential from MyProxy, open an SRB socket connection,
write a message to a logfile, etc.
Portals and Portlets 2006 - July 17, 2006
Workflow system -
MyProxyAuthNSequence.xml
<sequence-def>
<sequence-description>GAMA's default MyProxy authentication
sequence</sequence-description>
<sequence-type>authenticate</sequence-type>
<sequence-type-default>true</sequence-type-default>
<sequence-rollbackallonfailure>false</sequencerollbackallonfailure>
<sequence-item>
<item-class>edu.sdsc.gama.server.services.task.auth.
authn.MyProxyAuthNTask</item-class>
<item-class-config-id>0</item-class-config-id>
<item-description>simple MyProxy authentication with username
and password</item-description>
<item-rollbackonfailure>false</item-rollbackonfailure>
<item-stopsequenceonsuccess>false</item-stopsequenceonsuccess>
<item-stopsequenceonfailure>true</item-stopsequenceonfailure>
</sequence-item>
</sequence-def>
Portals and Portlets 2006 - July 17, 2006
Workflow system -
NewUserSetupSequence.xml
<sequence-def>
<sequence-description>GAMA's default CACL and MyProxy new user
sequence</sequence-description>
…
<sequence-item>
<item-class>edu.sdsc.gama.server.services.task.ca.newuser.
CACLNewUserTask</item-class>
<item-description>Create a new user in CACL</item-description>
<item-rollbackonfailure>true</item-rollbackonfailure>
<item-stopsequenceonsuccess>false</item-stopsequenceonsuccess>
<item-stopsequenceonfailure>true</item-stopsequenceonfailure>
</sequence-item>
<sequence-item>
<item-class>edu.sdsc.gama.server.services.task.myproxy.newuser.
MyProxyLoadCredentialsFromCATask</item-class>
<item-description>Load a user's credentials from CA into MyProxy</itemdescription>
<item-rollbackonfailure>true</item-rollbackonfailure>
<item-stopsequenceonsuccess>false</item-stopsequenceonsuccess>
<item-stopsequenceonfailure>true</item-stopsequenceonfailure>
</sequence-item>
</sequence-def>
Portals and Portlets 2006 - July 17, 2006
GridSphere Portal
Login user
Task engine
Account request portlet
(GridSphere)
Account admin portlet
(GridSphere)
Create user
GEMSTONE
Login web service client
AuthNSequence
NewUserSequence
Login portlet (GridSphere)
GAMA 2
1 Server
CACL
MyProxy
CAS
SRB
…
Kepler
Login web service client
Account admin GUI
(GridSphere portal)
Portals and Portlets 2006 - July 17, 2006
Multi-site support
• GAMA 2 server supports multiple sites, each with
its own local site administrator
• Site admin logs in to GAMA server and manages
accounts for just their site; other sites’ users are
not visible. Primary GAMA admin can manage all
users.
• GAMA can be configured to perform different
sequences of actions for different sites:
– Site A -> login sequence A
– Site B -> login sequence B
Portals and Portlets 2006 - July 17, 2006
Cluster account management
• GAMA knows about resources such as clusters
– A resource belongs to a site
• Site admin can specify access permissions for
each user on each resource in their site
• Resources can poll GAMA server for list of valid
users, and manage individual user accounts and/or
grid-mapfile entries accordingly.
• Provides a critical step in cluster management:
Rocks for OS/software install, GAMA for users
Portals and Portlets 2006 - July 17, 2006
GAMA 2 web services
• Provide a simple API that duplicates GAMA 1 API:
authenticateUser()
authorizeUser()
requestNewUser()
…
• Plus new methods for site/resource management:
createSite()
addNewResource()
getResourceUsers()
addUserToResource()
…
Portals and Portlets 2006 - July 17, 2006
GAMA 2 web services
• All web services take as inputs a set of key-value
pairs, and produce as outputs another set of keyvalue pairs
• Allows flexibility for task/sequence writers, at
the expense of explicitness:
String authenticateUser(String username, String
password, String lifetime) {…}
vs.
HashMap authenticateUser(HashMap inputs) {…}
Portals and Portlets 2006 - July 17, 2006
GAMA server admin GUI demo
Portals and Portlets 2006 - July 17, 2006
GAMA 2.0: Steps to completion
• Finish tying in web service interface to task
engine
• Complete the administrative GUI
– Group management
– Task and sequence management
• Refactor account request and login portlets
• Provide client tools for cluster user management
• Construct server Rocks roll with Naregi, MyProxy
and GAMA
Portals and Portlets 2006 - July 17, 2006
GAMA: the future
• Explore authentication technologies
– CAS still useful?
– Shibboleth / GridShib
– etc.
• More complete end-to-end user management:
– grid-mapfile updates on end resources, for instance
• Synchronization / cooperation between multiple
GAMA servers across VOs
Portals and Portlets 2006 - July 17, 2006
References
•
•
•
•
•
•
•
•
•
GAMA: http://grid-devel.sdsc.edu/gama
GridSphere: http://www.gridsphere.org
CACL: http://www.sdsc.edu/CA
Naregi CA: https://www.naregi.org/ca
MyProxy: http://grid.ncsa.uiuc.edu/myproxy
CAS: http://www.globus.org/security/CAS
GEON project: http://www.geongrid.org
Telescience project: http://telescience.ucsd.edu
NBCR: http://nbcr.sdsc.edu
Portals and Portlets 2006 - July 17, 2006
Credits
SDSC/GEON:
Kurt Mueller, Sandeep Chandra, Karan Bhatia
UCSD/NCMIR:
Abel Lin, Khim Ung, Lu Dai
UCSD/BIRN:
Jason Novotny, Ramil Manansala, Jana Nguyen
Portals and Portlets 2006 - July 17, 2006
Download