= Gestione utenze e permessi in LDAP = == Usando Phi == Non è ancora completo ma per ora offre un'interfaccia a linea di comando testata e funzionante. Se invece preferisci continuare ad usare un'interfaccia grafica leggi sotto. === Tunnel SSH === Siccome LDAP non è esposto pubblicamente su Internet occorre accedervi da localhost tramite un tunnel SSH {{{ ssh -L 10389:localhost:389 mio_utente@zaphoda.unit -N -f }}} In questo modo LDAP sarà accessibile in locale sulla porta {{{10389}}} '''TODO:''' Altra pagina della wiki su come configurare ssh per accedere al server nuovo === Installazione === Scarica Phi dal relativo [[https://git.abbiamoundominio.org/unit/phi|repository git]]: {{{ git clone https://git.abbiamoundominio.org/unit/phi cd phi }}} Crea un virtual environment (opzionale) {{{ virtualenv --python=/usr/bin/python3 env source env/bin/activate }}} E lancia il setup vero e proprio (se non stai usando il virtual environment assicurarti di lanciarlo con python3) {{{ python setup.py install }}} === Configurazione === Apri il file {{{real.yml}}} con un editor di testo e cambia il campo {{{port}}} in {{{10389}}} e quello {{{password}}} con la password di root di LDAP {{{ ldap: host: localhost port: 10389 encryption: TLSv1.2 # Can either be None or TLSv1.2. Default: None ciphers: "HIGH" username: cn=root,dc=unit,dc=macaomilano,dc=org password: la_mia_password_di_root base_dn: dc=unit,dc=macaomilano,dc=org }}} === Utilizzo === Creare un nuovo utente: {{{ src/phicli adduser luther_blisset }}} Verranno chiesti diversi campi, premendo invio vengono lasciati i valori di default {{{ Common name: [luther_blisset] Luther Last name: [luther_blisset] Blisset Mail: [luther_blisset@localhost] luther_blisset@autisitci.org Password: Retype password: }}} Aggiungerlo ai gruppi Wiki e Git: {{{ src/phicli addtogroup luther_blisset WikiUsers src/phicli addtogroup luther_blisset GitUsers }}} E abbiamo finito. == Usando Apache Directory Studio (vecchio metodo) == I servizi offerti da zaphoda sono tutti linkati ad un'unico LDAP, presente sulla macchina stessa. In attesa che [[https://git.abbiamoundominio.org/unit/phi|phi]] sia completo, e renda quindi più semplice la gestione delle utenze, possiamo operare a mano. Io non sono riuscito a far funzionare correttamente {{{ldapvi}}} (editor di ldap simile a {{{vi}}}), e ricorro quindi ad una applicazione ad interfaccia grafica: [[https://directory.apache.org/studio/|ApacheDirectoryStudio]] Per installarlo su debian: {{{sudo apt install apacheds}}} Per usarlo, dato che LDAP è bindato solo in localhost, bisogna fare un forward locale con ssh. Io uso localmente la porta 10389 per parlare alla 389 (porta di LDAP) su localhost di zaphoda: {{{ssh -L 10389:localhost:389 mio_utente@abbiamoundominio.org -N -f}}} Si possono omettere {{{-N -f}}}, e il processo ssh non andrà in background. Possiamo adesso usare ApacheDirectoryStudio parlando con ldap sul nostro {{{localhost:10389}}}. === Configurazione ApacheDirectoryStudio === Dal menu in alto a sinistra, andiamo su File > New {{attachment:01-menu.png|Main menu|}} Selezioniamo LDAP Browser > LDAP Connection {{attachment:02-new_menu.png|Creiamo una nuova connessione LDAP|}} Chiamiamo la connessione come vogliamo, ad esempio {{{zaphoda-localhost}}} e specifichiamo i seguenti parametri di connessione: {{{Hostname: locahost}}} {{{Port: 10389}}} (o la porta su cui scegliamo di fare il bind locale nel passo precedente di ssh) {{{Encryption method: Use StartTLS extension}}} {{attachment:03-new_ldap_conn.png|Parametri di connesione|}} Clicchiamo Next e andiamo al pannello di inserimento delle credenziali del'utente root ('''quindi facciamo attenzione''') {{{User: cn=root,dc=unit,dc=macaomilano,dc=org}}} (Nell'immagine l'utente è diverso :D ) {{{Password: ***************************************}}} {{attachment:04-new_ldap_conn_creds.png|Credenziali di connessione|}} Clicchiamo su Finish. A questo punto nel pannello in basso a sinistra dovremmo vedere la nostra connessione LDAP creata con nome {{{zaphoda-localhost}}}. Doppio click e ci connettiamo. Se appaiono errori di certificato TLS è abbastanza normale perché LDAP presenta un certificato TLS per un nome diverso da {{{localhost}}}. Continuiamo e dovremmo ottenere questa lista nel pannello di sinistra in alto: {{attachment:05-left_view.png|Lista di utenti e gruppi|}} === Aggiunta utente === Aprendo la voce {{{ou=Hackers}}} possiamo vedere la lista utenti già esistenti. {{attachment:07-user_list.png|Lista degli utenti|}} Ogni utente è una voce LDAP con i seguenti campi: {{attachment:08-user_fields.png|I campi LDAP di un utente|}} Quelli in grasseto identificano il tipo di entry LDAP * {{{inetOrgPerson}}} * {{{organizationalPerson}}} * {{{person}}} * {{{top}}} e sono attributi che hanno un'utilità interna allo schema LDAP che stiamo usando. I seguenti sono attributi qualificanti per l'utente: * {{{cn}}} * {{{sn}}} * {{{mail}}} * {{{uid}}} * {{{userPassword}}} Solitamente, {{{cn}}}, {{{sn}}} e {{{uid}}} hanno lo stesso valore, ma il campo ''importante'' è {{{uid}}}. Per aggiungere qualcun* possiamo cliccare su {{{ou=Hackers}}} col tasto destro e selezionare "New Entry". {{attachment:06-new_user.png|Nuovo utente|}} {{attachment:09-new_user_from_template_base.png|Scegliamo il template|}} Dobbiamo aggiungere tutti i campi elencati in grassetto sopra. In alternativa possiamo clonare un utente e modicare i suoi dati. {{attachment:10-new_user_from_template_from_existing_user.png|Usiamo un utente esistente per crearne uno nuovo|}} In questo caso avremo la lista di campi necessari a LDAP già popolata {{attachment:11-new_user_from_template_from_existing_user_provided_fields.png|La lista di campi|}} Per terminare dobbiamo scegliere un {{{uid}}} non esistente {{attachment:12-new_user_from_template_from_existing_user_modify_uid.png|Diamo un nome al nuovo utente|}} Se abbiamo clonato un nuovo utente, ricordiamoci di '''aprire''' la voce del nuovo utente creato e modificare le voci * {{{cn}}} * {{{sn}}} * {{{mail}}} * {{{userPassword}}} Che altrimenti resterebbero uguali a quelle dell'utente clonato. L'ultimo campo, la password, ha una modalità di modifica dedicata (tasto destro sul campo {{{userPassword}}} > Edit Value With > Password Editor) === Aggiunta ai gruppi === A questo punto possiamo aggiungere il nostro utente ai gruppi. Ci sono 5 gruppi esistenti. {{attachment:13-groups_list.png|I gruppi su zaphoda|}} Quelli di interesse sono * {{{GitUsers}}} per accedere a git.abbiamoundominio.org * {{{IRCUsers}}} per usare il quasselcore di abbiamoundominio.org * {{{WikiUsers}}} per avere accesso in scrittura a questa wiki Per aggiungere un utente ad un gruppo, selezioniamo il gruppo in questione {{attachment:14-users_in_group.png|Gli utenti nel gruppo WikiUsers|}} Tasto destro su members > New Value e aggiungiamo la stringa che identifica il nostro utente. Ad esempio {{{uid=pinco,dc=unit,dc=macaomilano,dc=org}}} E abbiamo finito.