User Tools

Site Tools


cn:ccr:aai:howto:protoaai:protoserv3

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
cn:ccr:aai:howto:protoaai:protoserv3 [2019/09/09 13:39] enrico@infn.itcn:ccr:aai:howto:protoaai:protoserv3 [2022/02/14 13:24] (current) – [Esempi] monducci@infn.it
Line 1: Line 1:
 +====== Inserire Utenti e Gruppi in protoAAI <infnUUID> ======
 +
 +Per inserire le entry e' sufficiente collegarsi tramite protocollo SSH al nodo ''protoserv.infn.it'' sulla porta ''57847''.
 +
 +L'autenticazione può avvenire in due modi:
 +  * SSH Publickey: e' necessario che inviate ad aai-support at infn.it la vostra chiave pubblica ssh in modo da autorizzarla.
 +  * Kerberos5 GSSAPI: se avete un principal Kerberos correttamente registrato in AAI e siete membri di un servizio di calcolo o della ccr.
 +
 +Per autenticarsi con SSH pubkey
 +  ssh -i key_file ...
 +
 +Per autenticarsi con K5 (dopo aver preso il TGT)
 +  ssh -K ...
 +
 +L'utente SSH dipende dal tipologia di dati che si vogliono gestire.
 +====== Gestione Utenti  ======
 +
 +Anche se per tradizione si è sempre utilizzato il Codice Fiscale come chiave univoca per identificare le identità digitali, la sempre maggiore presenza di identità digitali relativi a stranieri ed i vincoli imposti dal GDPR e dal garante della privacy (minimizzazione dei dati richiesti) ci hanno imposto l'utilizzo di una chiave primaria differente.
 +
 +Grazie al nuovo sistema per la registrazione delle Identità Digitali, la chiave univoca da utilizzare è il valore dell'attributo **infnUUID** assegnato all'identità digitale (che quindi deve essere definita precedentemente).
 + 
 +Il valore di infnUUID può essere visualizzato sia usando l'interfaccia grafica [[https://godiva.infn.it/GODiVA/GODiVA.jnlp|GODiVA-GUI]] sia attraverso una semplice qyery LDAP non autenticata. In questo caso è ovviamente necessario conoscere il valore di un altro attributo univoco, come l'indirizzo e-mail utilizzato in fase di registrazione dell'anagrafica.
 +
 +Supponendo di voler trovare il valore di infnUUID di Pinco Pallino il cui indirizzo e-mail è Pinco.Pallino@mail.io, la query LDAP sarebbe
 +
 +  /usr/bin/ldapsearch  -o ldif-wrap=no -ZZ -x  -LLL -h ds.infn.it  -b ou=people,dc=infn,dc=it 'mailAlternateAddress=Pinco.Pallino@mail.io' dn 2>/dev/null | cut -d " " -f 2 | cut -d "=" -f 2 | cut -d "," -f 1
 +
 +Una volta che si è ottenuto il valore di **infnUUID** basterà collegarsi via SSH come utente ''extuserserv'' al nodo protoserv.infn.it. Il comando da eseguire e' quindi:
 +
 +  ssh -p 57847 { -i key_file | -K } extuserserv@protoserv.infn.it
 +
 +Una volta aperta la connessione, con il comando precedentemente indicato, il server aspetta i comandi uno per linea.
 +
 +E' possibile eseguire un inserimento singolo scrivendo i comandi come ulteriori parametri nella linea di ssh.
 +
 +
 +
 +===== Comandi =====
 +
 +^Comando^Descrizione^Sintassi^
 +| ''TRYADD'' | Mostra la entry che verrebbe inserita con ''ADD'', senza inserirla realmente | ''TRYADD dnsDomain:userName:infnUUID:Nome:Cognome:[kerberosPrincipal@REALM]:primaryEmailAddress[:mailAlternateAddress[...]]''|
 +| ''ADD''    | Esegue l'inserimento | ''ADD dnsDomain:userName:infnUUID:Nome:Cognome:[kerberosPrincipal@REALM]:primaryEmailAddress[:mailAlternateAddress[...]]''|
 +| ''MOD''    | Modifica la entry relativa alla ''userName'' sostituendo i valori degli attributi con i nuovi | ''MOD dnsDomain:userName:infnUUID:Nome:Cognome:[kerberosPrincipal@REALM]:primaryEmailAddress[:mailAlternateAddress[...]]''|
 +| ''FIXUID'' | Allinea la ''username'' del ramo locale a quella del ramo nazionale | ''FIXUID dnsDomain:userName'' |
 +| ''ROLLBACKFIXUID'' | Annulla l'allineamento della ''username'' del ramo locale a quella del ramo nazionale | ''ROLLBACKFIXUID dnsDomain:userName'' |
 +| ''DEL''    | Elimina la entry relativa alla ''userName'' | ''DEL dnsDomain:userName''|
 +| ''SHO''    | Mostra la entry relativa alla ''userName'' presente in AAI | ''SHO dnsDomain:userName'' (puo' contenere wildcard)|
 +
 +**NOTA:** Nel caso in cui **non sia disponibile un Principal Kerberos** omettere il contenuto di tale campo, usando quindi **due separatori consecutivi**.
 +
 +**NOTA:** Per i comandi TRYADD, ADD e MOD verra' controllata l'univocita' della username e la coerenza dell'associazione username-infnUUID a livello nazionale. Per questo **si consiglia di effettuare il TRYADD prima di aggiungere le identita' nei propri DataBase**.
 +
 +**NOTA:** Solo nel Comando SHO è possibile, come dominio, usare la chiave "all", in questo modo la ricerca sarà effettuata su tutto l'albero delle sedi.
 +
 +===== Posix data =====
 +
 +I comandi ''ADDPOSIX'' e ''DELPOSIX'' permettono di aggiungere le informazioni posix nelle entry degli utenti.
 +
 +^Comando^Descrizione^Sintassi^
 +| ''ADDPOSIX''    | Aggiunge dati posix ad un utente esistente | ''ADDPOSIX dnsdomain:userName:password:uidNumber:gidNumber:gecos:homeDirectory:loginShell''|
 +| ''DELPOSIX''    | Rimuove solo i dati posix di un utente  | ''DELPOSIX dnsdomain:userName''|
 +
 +**ATTENZIONE**: Per non inserire la password in ldap, per chi ha Kerberos, usare la stringa **KRBPW** nel campo password.
 +===== Esempi =====
 +
 +Inserimento di una singola entry - **da inserire in un eventuale script di creazione utente**:
 +
 +  # ssh -p 57847 extuserserv@protoserv.infn.it 'ADDlnf.infn.it:dmaselli:6e4b0a83-4067-4966a4c1-5d4797114fef:Dael:Maselli:dmaselli@LNF.INFN.IT:Dael.Maselli@lnf.infn.it:dmaselli@lnf.infn.it:maselli@lnf.infn.it'
 +  # ssh -p 57847 extuserserv@protoserv.infn.it  'ADDPOSIX lnf.infn.it:dmaselli:KRBPW:5748:3101:Dael Maselli,#14/6,:/afs/lnf/user/d/dmaselli:/bin/tcsh'
 +
 +
 +Inserimento di piu' entry in interattivo
 +  # ssh -p 57847 extuserserv@protoserv.infn.it
 +  > ADD lnf.infn.it:dlenci:XXXXXXXXXXXXXXX:Davide:Lenci::Davide.Lenci:dlenci
 +  Line 1: OK - Entry added
 +  > ADD lnf.infn.it:dmaselli:MSLDLAXXXXXXXXXX:Dael:Maselli:dmaselli:Dael.Maselli:dmaselli:maselli
 +  Line 2: OK - Entry added
 +  > ADDPOSIX lnf.infn.it:dmaselli:KRBPW:5748:3101:Dael Maselli,#14/6,:/afs/lnf/user/d/dmaselli:/bin/tcsh
 +  3 actions requested. 3 done. Bye!
 +
 +Inserimento di piu' entry da file
 +  # ssh -p 57847 extuserserv@protoserv < file
 +  ...........
 +  11 actions requested. 11 done. Bye!
 +
 +
 +====== Gruppi ======
 +
 +
 +Per la gestione dei gruppi collegarsi come utente ''groupserv''. Il comando da eseguire e' quindi:
 +
 +  ssh -p 57847 [-i rsa_private_key_file] groupserv@protoserv.infn.it
 +
 +Una volta aperta la connessione, con il comando precedentemente indicato, il server aspetta i comandi uno per linea.
 +
 +E' possibile eseguire un inserimento singolo scrivendo i comandi come ulteriori parametri nella linea di ssh.
 +
 +
 +===== Comandi =====
 +
 +^Comando^Descrizione^Sintassi^
 +| ''ADDGROUP''    | Esegue l'inserimento di un gruppo | ''ADDGROUP dnsDomain:groupName:gidNumber''|
 +| ''MODGROUP''    | Modifica la entry relativa a ''groupName'' sostituendo il gidNumber | ''MODGROUP dnsDomain:groupName:gidNumber''|
 +| ''ADDUSER''   | Aggiunge un utente a un gruppo | ''ADDUSER dnsDomain:groupName:userName''|
 +| ''DELUSER''   | Rimuove un utente da un gruppo | ''DELUSER dnsDomain:groupName:userName''|
 +| ''DELGROUP''    | Elimina la entry relativa a ''groupName'' | ''DELGROUP dnsDomain:groupName:gidNumber''|
 +| ''SHO''    | Mostra la entry relativa a ''groupName'' | ''SHO dnsDomain:groupName'' (puo' contenere wildcard)|
 +
 +
 +
 +====== Netgroup ======
 +
 +
 +Per la gestione dei netgroup collegarsi come utente ''netgroupserv''. Il comando da eseguire e' quindi:
 +
 +  ssh -p 57847 [-i rsa_private_key_file] netgroupserv@protoserv.infn.it
 +
 +Una volta aperta la connessione, con il comando precedentemente indicato, il server aspetta i comandi uno per linea.
 +
 +E' possibile eseguire un inserimento singolo scrivendo i comandi come ulteriori parametri nella linea di ssh.
 +
 +
 +===== Comandi =====
 +
 +^Comando^Descrizione^Sintassi^
 +| ''ADDNETGROUP''    | Esegue l'inserimento di un gruppo | ''ADDNETGROUP dnsDomain:netGroupName''|
 +| ''ADDELEMENT''   | Aggiunge una tripletta o un altro netgroup a un netgroup | ''ADDELEMENT dnsDomain:netGroupName:ELEMENT''|
 +| ''DELELEMENT''   | Rimuove una tripletta o un altro netgroup da un netgroup | ''DELELEMENT dnsDomain:netGroupName:ELEMENT''|
 +| ''DELNETGROUP''    | Elimina la entry relativa a ''netGroupName'' | ''DELNETGROUP dnsDomain:netGroupName''|
 +| ''SHO''    | Mostra la entry relativa a ''netGroupName'' | ''SHO dnsDomain:netGroupName'' (puo' contenere wildcard)|
  

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki