This section expands some material that has been presented earlier in passing.
Each grid user is expected to have an X509 certificate. This certificate is signed by a trustworthy certification authority (CA) stating the identity of the person. If one trusts the CA, then one can be sure that the certificate was issued to the person named in the certificate.
The certificate contains the public part of a (public-private) key-pair, so may be freely distributed. The private part of the pair must be kept secret. The whole X509 security infrastructure critically depends on the secrecy of the private key.
A user may dispatch an agent to work on a user's behalf; for example, a user may request a job be run on a remote site. This agent may undertake activity on behalf of the user; for example, to upload the results from a job. Since the user's private key must be kept secret, how does the agent identify itself?
To solve this problem, a short-lived key-pair is generated. The public key is signed by the user's certificate and both are given to the agent. This is referred to as a proxy certificate. If the private key is compromised, it will expire automatically, so limiting the damage that can be done.
In addition to being signed by the user's certificate, the public key of the short-lived public key may be signed by the VOMS server, along with some attributes. These attributes declare which groups a user is in and with which specific roles (if any).
The Fully-Qualified Attribute Name (FQAN) is a representation of
a user's VO membership. It has the form
/
.
The following are examples of FQANs:
vo-name
[/groups
][/Role=role
]
/gks /gks/gks08 /gks/dech /dech
To create a simple proxy certificate without any VO membership
information, the voms-proxy-init command is
used. The -all
option to
voms-proxy-info is specified so it will also
display VO information; although, in this example, no VO
membership information is present.
[user@ui-node] $
voms-proxy-init Enter GRID pass phrase: Your identity:Your DN is here
Creating proxy ................................................... Done Your proxy is valid until Sun Sep 7 10:21:38 2008 and check the certificate[user@ui-node] $
voms-proxy-info -all WARNING: Unable to verify signature! Server certificate possibly not installed. Error: VOMS extension not found! subject :Your DN is here
/CN=proxy issuer :Your DN is here
identity :Your DN is here
type : proxy strength : 512 bits path : /tmp/x509up_u100099 timeleft : 11:59:55
With the -voms
option the
voms-proxy-init will contact the VOMS server
and ask for the server to sign the proxy certificate, indicating
VO membership, along with any groups and roles the user may have.
Generate a proxy certificate that also include membership of VO gks[user@ui-node] $
voms-proxy-init -voms gks Enter GRID pass phrase: Your identity:Your DN is here
Creating temporary proxy ................................... Done Contacting dgrid-voms.fzk.de:15025 [/O=GermanGrid/OU=FZK/CN=host/dgrid-voms.fzk.de] "gks" Done Creating proxy .............................................. Done Your proxy is valid until Sun Sep 7 10:25:36 2008 We check the generated certificate. Note how the certificate has three FQANs, listed as attributes[user@ui-node] $
voms-proxy-info -all subject :Your DN is here
/CN=proxy issuer :Your DN is here
identity :Your DN is here
type : proxy strength : 512 bits path : /tmp/x509up_u100099 timeleft : 11:59:48 === VO gks extension information === VO : gks subject :Your DN is here
issuer : /O=GermanGrid/OU=FZK/CN=host/dgrid-voms.fzk.de attribute : /gks/Role=NULL/Capability=NULL attribute : /gks/gks08/Role=NULL/Capability=NULL attribute : /gks/dech/Role=NULL/Capability=NULL timeleft : 12:00:04
The VOMS server will always list all groups and roles a user has
been assigned; however, the order in which they are listed can
be adjusted. This is achieved by specifying one or more
-order
options.
Generate a certificate, but emphasis the dech group membership (FQAN: /gks/dech) above the others[user@ui-node] $
voms-proxy-init -voms gks -order /gks/dech Enter GRID pass phrase: Your identity:Your DN is here
Creating temporary proxy ..................................................... Done Contacting dgrid-voms.fzk.de:15025 [/O=GermanGrid/OU=FZK/CN=host/dgrid-voms.fzk.de] "gks" Done Creating proxy .................................... Done Your proxy is valid until Sun Sep 7 10:42:19 2008 ... and verify the certificate[user@ui-node] $
voms-proxy-info -all subject :Your DN is here
/CN=proxy issuer :Your DN is here
identity :Your DN is here
type : proxy strength : 512 bits path : /tmp/x509up_u100099 timeleft : 11:59:58 === VO gks extension information === VO : gks subject :Your DN is here
issuer : /O=GermanGrid/OU=FZK/CN=host/dgrid-voms.fzk.de attribute : /gks/dech/Role=NULL/Capability=NULL attribute : /gks/gks08/Role=NULL/Capability=NULL attribute : /gks/Role=NULL/Capability=NULL timeleft : 12:00:13