File: README.md

package info (click to toggle)
voms-clients-java 3.3.7-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 532 kB
  • sloc: java: 2,904; xml: 363; sh: 85; makefile: 27
file content (166 lines) | stat: -rw-r--r-- 5,659 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
<!--
SPDX-FileCopyrightText: 2006 Istituto Nazionale di Fisica Nucleare

SPDX-License-Identifier: Apache-2.0
-->

# VOMS Clients

![Build Status](https://github.com/italiangrid/voms-clients/actions/workflows/maven.yaml/badge.svg)

Command-line clients for Virtual Organization Membership Service (VOMS), i.e.:

- *voms-proxy-init*: creates a VOMS proxy containing VOMS attributes
- *voms-proxy-info*: shows information about a created VOMS proxy certificate
- *voms-proxy-destroy*: destroys a VOMS proxy certificate

## Build instructions

Clone this github repo. 
Build packages with:

```bash
mvn package
```

## Build

You will need maven and Java >= 8.
To build the clients, type:

  mvn package

## Install

A tarball containing the clients can be found in the `target` directory under the source tree.
Untar the tarball to a directory of your choice.

You may want to add the bin directory to your path to be able to directly call voms-proxy-* from you shell

```bash
export PATH=$PATH:<install_dir>/bin
```

## Quickstart

### Credentials

User credentials typically live in the 
```bash
  $HOME/.globus
```
directory.

PKCS12 and PEM X.509 credentials are both supported. For PKCS12 the credential file should be
named:

```bash
  $HOME/.globus/usercred.p12
```

PEM credential files should be named:

```bash  
  $HOME/.globus/usercert.pem
  $HOME/.globus/userkey.pem
```

In case both PEM and PKCS12 formats are present, PEM takes precedence.

Please setup your user credentials so that the private key is only readable by the user owning 
the credentials (i.e., unix mode 0400).

### Configuring VOMS servers locations

VOMS server contact information is typically maintained in `/etc/vomses` or in `$HOME/.glite/vomses` directory.

For more information on the format of these files and what information should be there, consult the `vomses`
man page.

### Configuring trust for VOMS servers

VOMS server trust information in typically maintained in the `/etc/grid-security/vomsdir` directory,
or in the directory pointed by the `X509_VOMS_DIR` environment variable.

For more information on the format of this directory and what information should be there, 
consult the `vomsdir` man page.

### Creating a VOMS proxy certificate

`voms-proxy-init` is the command that creates VOMS proxies which can be used for authorization purposes on the Grid. 

Its basic syntax is:
```bash
$ voms-proxy-init --voms <test>
```
where `test` is the name of the VO to which the user belongs. This command will create a proxy containing all the
groups to which the user belongs, but none of the roles. The -voms option may be specified multiple times to request
multiple attributes or attributes from multiple VOs.

VOMS roles are conditional attributes which are included in a VOMS attribute certificate only when explicitly
requested. Roles can be requested using a command like the following one:
```bash
voms-proxy-init -voms atlas:/atlas/Role=pilot
```
If the `-voms` option is not specified, a proxy without VOMS extension will be created.

### Validity constraints

By default, voms-proxy-init will generate a proxy valid for 12 hours including a VOMS extension valid for the same time (if requested).
These time periods can be changed using the *-valid* option, which will set the validity of both the proxy and
the AC. Note that the validity of the AC can only be "proposed" by voms-proxy-init, as the AC validity is set by the VOMS server
and its maximum value is limited by local VOMS server configuration (typically the maximum value is 24 hours).

More information can be found in the `voms-proxy-init` man page.

### Displayng information embedded in a VOMS proxy certificate 

Once a proxy has been created, the `voms-proxy-info` command allows the user to print the information
cointained in it. 
```bash
subject   : /C=IT/O=INFN/OU=Personal Certificate/L=CNAF/CN=Andrea Ceccanti/CN=proxy
issuer    : /C=IT/O=INFN/OU=Personal Certificate/L=CNAF/CN=Andrea Ceccanti
identity  : /C=IT/O=INFN/OU=Personal Certificate/L=CNAF/CN=Andrea Ceccanti
type      : proxy
strength  : 2048
path      : /tmp/x509up_u501
timeleft  : 11:59:48
key usage : digitalSignature keyEncipherment dataEncipherment
```

Information about VOMS attributes can be printed passing the `-all` option to the command:

```bash
$ voms-proxy-info --all
subject   : /C=IT/O=INFN/OU=Personal Certificate/L=CNAF/CN=Andrea Ceccanti/CN=proxy
issuer    : /C=IT/O=INFN/OU=Personal Certificate/L=CNAF/CN=Andrea Ceccanti
identity  : /C=IT/O=INFN/OU=Personal Certificate/L=CNAF/CN=Andrea Ceccanti
type      : proxy
strength  : 2048
path      : /tmp/x509up_u501
timeleft  : 12:04:48
key usage : digitalSignature keyEncipherment dataEncipherment 
=== VO testers.eu-emi.eu extension information ===
VO        : testers.eu-emi.eu
subject   : CN=Andrea Ceccanti,L=CNAF,OU=Personal Certificate,O=INFN,C=IT
issuer    : CN=emitestbed07.cnaf.infn.it,L=CNAF,OU=Host,O=INFN,C=IT
attribute : /testers.eu-emi.eu/Role=NULL/Capability=NULL
attribute : /testers.eu-emi.eu/pseudotest1/Role=NULL/Capability=NULL
attribute : /testers.eu-emi.eu/test/Role=NULL/Capability=NULL
attribute : /testers.eu-emi.eu/test1/Role=NULL/Capability=NULL
attribute : test_ga = val (/testers.eu-emi.eu/test)
attribute : default-group = camaghe (testers.eu-emi.eu)
timeleft  : 11:59:18
uri       : emitestbed07.cnaf.infn.it:15002
```

More information can be found in the `voms-proxy-info` man page.

### Destroying a proxy certificate

The `voms-proxy-destroy` command erases an existing proxy from the system. Its basic use is:

```bash
$ voms-proxy-destroy
```
More information can be found in the `voms-proxy-destroy` man page.