====== godivacli (OSX/Linux command line interface) ======
Da scaricare e compilare con:
make; make install;
per l'help:
godivacli --help
{{:cn:ccr:aai:howto:godivacli.tar| godivacli (src)}}
E' possibile scaricare il codice di godivacli dal seguente repository: [[https://baltig.infn.it/aai/godivacli]]
git clone https://baltig.infn.it/aai/godivacli.git
cd godivacli
make
make install
Il repository può essere clonato anche via SSH ma è necessario prima fare il login via web su baltig usando le proprie credenziali AAI e poi aggiungere la propria chiave SSH in alto a dx nella gestione del profilo sotto "Settings"-->"SSH Keys" e poi:
git clone git@baltig.infn.it:aai/godivacli.git
per l'help:
godivacli --help
Per chiamare le API di GODiVA in maniera autenticata, è possibile passare a godivacli il proprio certificato (oppure il certificato di un servizio).
Il formato richiesto da godivacli è di tipo PEM, ed è richiesto che sia la chiave privata concatenata con il suo certificato.
Per convertire un certificato DER (.crt .cer .der) in formato PEM
openssl x509 -inform der -in server.crt -out crt.pem
Per convertire una chiave privata DER in formato PEM
openssl rsa -des3 -inform der -in server.key -out key.pem
Ora con la chiave privata e il certificato in formato PEM, basterà concatenare i due file con
cat key.pem crt.pem > server_cert.pem
Per chiamare una API in maniera autenticata possiamo usare:
godivacli --cert server_cert.pem --certpwd "[password_chiave_privata]" --cacert TERENA_SSL_CA_3.pem --ufc [codice_fiscale]
Scarica il certificato {{ :cn:ccr:aai:howto:terena_ssl_ca_3.zip | Terena SSL CA3}}
NOTA: Il comando ''%%--%%ufc'' ritorna il valore l'UUID associato ad un utente, passando in input il codice fiscale. Questo comando non richiederebbe autenticazione, ma è stato usato solo a scopo di esempio.
===== Comandi =====
Lista dei comandi che è possibile invocare con godivacli
=== Opzioni di connessione ===
^ Opzione ^ Descrizione ^ Sintassi ^
| ''--help'' | Stampa il menu di aiuto | ''godivacli --help'' |
| ''--version'' | Stampa la versione di godivacli | ''godivacli --version'' |
| ''--host '' | Imposta il nome host di godiva e la porta (default: godiva.dsi.infn.it:443) | ''godivacli --host godiva.dsi.infn.it[:443]'' |
=== Opzioni per autenticazione con certificato ===
^ Comando ^ Descrizione ^ Sintassi ^
| ''%%--cert %%'' | Nome file del certificato in formato .pem da utilizzare per l'autenticazione | |
| ''%%--certpwd %%'' | Imposta la password del certificato | |
| ''%%--cacert %%'' | Nome file del CACert in formato .pem del certificato del server (opzionale se già presente tra i CACerts del sistema operativo) | ''%%godivacli --cert certificato.pem --certpwd "c3rt_p4ssw0rd" --cacert terena.pem%%'' |
=== Opzioni per chiamata API ===
^ Comando ^ Descrizione ^ Sintassi ^
| ''%%--username%%'' | Ritorna una username disponibile a partire da ''%%--%%name'' e ''%%--%%surname'' | |
| ''%%--name %%'' | Parametro ''nome'' per il comando ''%%--%%username'' | |
| ''%%--surname %%'' | Parametro ''surname'' per il comando ''%%--%%username'' | ''%%godivacli --username --name mario --surname rossi%%'' |
| |||
| ''%%--rduid %%'' | Rimuove la uid di default a partire dall'UUID **nazionale** | ''%%godivacli --rduid 26a24a4c-5292-11e7-966d-37f7ce510f39%%'' |
| ''%%--staai %%'' | Sincronizza l'identità su LDAP identificata dall'UUID **nazionale** | ''%%godivacli --staai 26a24a4c-5292-11e7-966d-37f7ce510f39%%'' |
| ''%%--sfp %%'' | Sincronizza le entry locali con quella nazionale, identificata con CF o UUID **nazionale** | ''%%godivacli --sfp 26a24a4c-5292-11e7-966d-37f7ce510f39%%'' |
| ''%%--ufc %%'' | Ritorna il valore dell'UUID **nazionale** a partire dal CF | ''%%godivacli --ufc RSSMRA01A01A001K%%'' |
| | | |
| ''%%--mail %%'' | Parametro ''mail'' per i comandi ''add-mail-alias'' e ''remove-mail-alias'' | |
| ''%%--is-official <1|0>%%'' | Indica se l'indirizzo email specificato debba essere quello ufficiale. Se uguale a ''1'' sarà il valore che comparirà nell'attributo ''mail'' di LDAP | |
| ''%%--add-mail-alias %%'' | Aggiunge un alias nazionale (formato ''@infn.it'') all'anagrafica relativa all'infnUUID specificato. Da utilizzare con ''%%--mail%%'' e ''%%--is-official%%'' | ''%%godivacli --add-mail-alias 26a24a4c-5292-11e7-966d-37f7ce510f39 --mail mario.rossi@infn.it --is-official 1%%'' |
| ''%%--remove-mail-alias %%'' | Rimuove l'alias nazionale (formato ''@infn.it'') dall'anagrafica relativa all'infnUUID specificato. Da usare con ''%%--mail %%'' | ''%%godivacli --remove-mail-alias 26a24a4c-5292-11e7-966d-37f7ce510f39 --mail mario.rossi@infn.it%%'' |
=== Opzioni per link entry locale/nazionale ===
E' possibile unire le entry dei rami locali con quelle nazionali. Questa operazione è utile soprattutto per le entry locali che non dispongono di un codice fiscale (VISITOR), e per cui esiste comunque la necessità di sincronizzarle con la relativa entry nazionale.
^ Comando ^ Descrizione ^ Sintassi ^
| ''%%--localUUID %%'' | Specifica la uuid del ramo **locale** | |
| ''%%--nationalUUID %%'' | Specifica la uuid del ramo **nazionale** | |
| ''%%--lpu%%'' | Crea un link tra entry locale e nazionale, valorizzando l'attributo **infnLinkedUUID** sulla locale | ''%%godivacli --lpu --localUUID 0c213fda-5296-11e7-b592-df9633a01947 --nationalUUID 26a24a4c-5292-11e7-966d-37f7ce510f39 %%'' |