====== Inserire Utenti e Gruppi in protoAAI ====== 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)|