Version 5 (modified by pjkersha, 11 years ago) (diff)


MashMyData Delegation with MyProxy



  1. User
  2. User's browser
  3. MashMyData web portal application
  4. Portal Trust Registry: a registry containing a list of trusted services one per user. These are services which the user has previously agreed to delegate to act on their behalf. Trust settings could be set with an expiry. For the purposes of this project, this service could be co-located with the portal. For production use it would be likley to be associated with the user's IdP (Identity Provider)
  5. CEDA WPS (OGC Web Processing Service): this will execute a job for the portal on behalf of the user. The job involves pulling data from another service, a TDS (THREDDS Data Server) also hosted at CEDA. Both services have access control in place.
  7. CEDA Token Service: issues OAuth request and access tokens for the WPS and TDS. There is at least one Token Service per OAuth realm. IT could be implemented as a filter in front of both the WPS and TDS.


  1. The user signs in at the portal using OpenID (deliberately shown compressed into a single step for simplicity).



This illustrates how delegation can work with proxy certificates and two MyProxy servers. One MyProxy server is used to obtain credentials. The second is used to upload delegated credentials which another delegate service can use:

  1. Obtain a user credential from a MyProxy server
  2. Upload it to another MyProxy server delegating permission for a given service to access it
  3. Service access a delegated credential
  1. User gets credential by calling a MyProxy service at their home site:
    $ myproxy-logon -s -o creds.pem
  2. They or some portal or middleware upload it to another MyProxy server so that a service, CEDA's WPS can obtain a delegated credential from it:
    $ myproxy-init -s -x -Z "/C=UK/O=CEDA/OU=MashMyData/CN=host/" -d -n
    A proxy certificate has been uploaded to which only the CEDA WPS is allowed to delegate from.
  3. The CEDA WPS, obtains a delegated credential so that it can run a job on the user's behalf:
    $ myproxy-logon -s -l "/O=MyIdP/CN=myusername" -n
    A credential has been received for user /O=MyIdP/CN=myusername in /tmp/x509up_u0.

Steps 1 and 2 could be performed by the Portal on behalf of the user.