RCAuth.eu MasterPortal VOPortal integration guide
This page describes the steps for a VO portal or Science Gateway to obtain proxy certificates from the RCauth.eu online CA.
Note that VO portals do not directly contact the RCauth CA, but use an intermediate service, a so-called Master Portal, which handles most of the complexity. From the point of view of a VO portal, a Master Portal is an OpenID Connect Provider, with an integrated protected endpoint for obtaining proxy certificates.
Register a new client
Register a new client at a Master Portal at the /register endpoint:
- E.g. for the EGI development instance:
- or the EGI production instance:
NOTE: Make sure to store the client_id and client_secret in a secure place.
Get the client approved
In order to get the client approved, send an email to the adminstrator of the Master Portal to request client approval. For EGI use EGI CheckIn support.
Implement an OIDC Connect flow to obtain a proxy chain
See this working PHP demo.
The steps needed to obtain a proxy certificate from the RCauth.eu CA via the Master Portal follow the standard OIDC Authorization Flow.
- VO portal initiates the flow by sending the user (browser redirect) to the /authorize endpoint on the Master Portal. Parameters (see Client Requests Authorization):
- scope="openid edu.uiuc.ncsa.myproxy.getcert"
Optionally the VO portal can redirect the user to a specific IdP by also sending an idphint parameter. This is a RCauth / MasterPortal extension (see also Master Portal Internals#The_IdP_Hint).
- idphint=... (fill in URL-encoded entityID of the IdP).
- When the authorization flow succeeds, an authorization grant is sent via the browser as code parameter to the redirect_uri (see Authorization Response).
- The VO portal uses the authorization grant to obtain an access_token, an id_token and optionally a refresh_token from the /token endpoint (back-channel to the OIDC provider). Parameters (see Access Token Request):
- code=... (fill in URL-encoded value of the code received)
- When successful, the response is a JSON including the access_token, id_token (and the refresh_token when configured). (see Access Token Response)
- The VO portal can optionally access the /userinfo endpoint using the access_token (back-channel to the OIDC provider). Note that it can get the same information directly from the id_token. Parameters (see UserInfo Request):
- The VO portal can now obtain a proxy certificate from the /getproxy endpoint using the access_token, and authenticating using its client_id and client_secret (back-channel). Parameters (see OAuth for MyProxy GetProxy Endpoint):
- voms=... (e.g. testvo or testvo:/testvo/Role=VO-Admin)
- vomses=... (e.g. the URL-encoded value of '"testvo" "vomsserver.example.org" "15000" "/C=NL/O=Example/OU=Test/CN=vomsserver.example.org" "testvo"')
- The response will consist of the proxy certificate chain in a single PEM.
A VO portal should make sure to store the retrieved proxy certificates in a appropriate way, such as keeping the files outside of the web root, restricting access to the host, etc.
Use of the retrieved proxy certificates
In order to be able to use the proxy certificates, the VO portal will need to install the relevant RCauth CA files: