Mercoledì, 01 Gennaio 2020 12:06

HowTo: LifeRay 7.1: autenticazione su LDAP server UCS

 
LifeRay è uno stupendo ECMS. La sua grande flessibilità permette di configurarlo per far autenticare gli utenti su una base esterna.

In questa guida trovi la descrizione, passo, passo, per realizzare questa configurazione sull'LDAP di un server UCS configurato come PDC di dominio un AD.

1. Premessa

Vogliamo ottenere una istanza di LifeRay che usa gli utenti registrati in UCS per permettere il login. La gestione delle account sarà fatta solo da UCS, pertanto LifeRay non permetterà la modifica dei dati dell'account (es.: nome, password, ecc...). A differenza della configurazione default LifeRay userà le username per l'autenticazione e non le email. Inoltre LifeRay avrà un utente interno che è l'amministratore dell'Installazione.

Anche se UCS è configurato per essere un server Windows sfrutteremo l'interrogazione diretta dell'LDAP. La directory delle utenze è stata aggiunta dell'attributo exampleLiferay per filtrare le utenze che hanno il permesso di accesso oppure no.

Il risultato è la centralizzazione dell'autenticazione, non un sistema di SSO (Single Sign On).

I parametri dei nostri sistemi sono i seguenti:

  • UCS

    • IP: 192.168.0.10

    • Hostname: ucs.example.com

    • Porta LDAP: 7389

    • Account LDAP per accedere alla directory:

      • username: ldap-access

      • password: ldap-password

    • dominio: example.com

    • attributo: exampleLiferay

  • LifeRay

    • IP: 192.168.0.20

    • Hostname: liferay.example.com

    • Account amministratore:

      • username: admin

      • password: admin-password

Note:

  • ai fini accademici non useremo le connessioni criptate di LDAP esposte sulla porta 7636;

  • non c'è alcun firewall

  • LifeRay è configurato per autenticarsi con il nome utente invece che con l'email ("Pannello di controllo -> Impostazioni Istanza -> Come si autenticano gli utenti?: Per Nome Utente").

La guida ipotizza che UCS sia già installato, inizializzato e configurato con alcuni utenti già inseriti.

Similmente anche LifeRay è installato e configurato.

Procediamo configurando LifeRay, successivamente testeremo le configurazioni e, infine, alcune indicazioni per il work-round.

2. Liferay

  1. Accedere a LifeRay e autenticarsi con un utente amministtatore

  2. accedere a "Pannello di controllo -> Configurazione Impostazioni istanza"

  3. cliccare sul tab LDAP

  4. impostare:

    1. Alitato: Si

    2. Pbbligatorio: Si

    3. Metodo: bind

    4. Algoritmo di crittografia password: SHA

    5. il resto può andare bene come'è

  5. cliccare sul bottone "Aggiungi" sotto il titolo Server LDAP

  6. nella lunga finestra dei parametri per LDAP impostare:

    1. nome server: UCS

      NB: il nome è una semplice etichetta. Si può scrivere quello che si vuole!

    2. Provider URL di base: ldap://ucs.example.com:7389

    3. DN base: dc=example,dc=com

    4. Principale: uid=ldap-access,cn=users,dc=berna,dc=lan

    5. Credenziali: ldap-password

    6. Filtro di ricerca Autenticazione: (&(uid=@screen_name@)(exampleLiferay=1))

    7. Importa filtri di ricerca: (objectClass=Person)

    8. UUID: uidNumber

    9. Nome Utente: uid

    10. Indirizzo Email: mail

    11. Password: userPassword

    12. Nome: givenName

    13. Secondo Nome:

    14. Cognome: sn

    15. Nome Completo: cn

    16. Occupazione: title

    17. Stato

    18. Gruppo: memberOf

    19. Ritratto:

    20. Mappatura Dati Utente Personalizzata

    21. Mappatura Dati di Contatto Personalizzata

    22. Importa Filtri di Ricerca: (objectClass=posixGroup)

    23. Nome del Gruppo: cn

    24. Descrizione: description

    25. Utente: uniqueMember

    26. Esporta:

      1. DN Utenti: dc=example,dc=com

      2. Classi Oggetto Predefinite per l'Utente :

      3. DN Gruppi: dc=example,dc=com

      4. Classi Oggetto Predefinite per l'Utente

    27. salvare e uscire.

3. Testing

È consigliabile aprire un altro browser o una finestra anonima e:

  1. accedere a LifeRay

  2. autenticarsi con un utente UCS abilitato ad accedere a LifeRay

  3. uscire e riconnettersi con un utente senza l'abilitazione

  4. invertire l'abilitazione ai due utenti e rifare le prove 2 e 3.

4. Per il work-around

Una piccola rassegna di note utili per indagare e decifrare mancati funzionamenti e/o errori.

  • Configurazione dei parametri per accedere al server LDAP: ogni sezione (server, utenti e gruppi) ha alla fine un bottone "Verifica Connessione LDAP", "Verifica Utenti LDAP", "Verifica Gruppi LDAP" con cui si può verificare subito se LifeRay comunica con il server LDAP, cosa estrae estrae come utente, cosa estrae come gruppo;

  • configurazione corretta, ma non funziona: nella pagina LifeRay di configurazione del server remoto LDAP la voce "Nome Utente" per la mappatura dei dati dell'LDAP su LifeRay è equivoca. Non si tratta del nome dell'utente, ma della username! I dati default lo popolano con l'attributo "sn".

    Assicurarsi che in questo campo ci sia l'attributo LDAP usato per il bind di login. Qui di seguito un esempio con evidenziato il valore da controllare:

    Filtro di Ricerca Autenticazione: (&(uid=@screen_name@)(isbAppOpenKm=1))

    Nome Utente: uid

  • cambio password al primo accesso

  • LDAP sotto UCS: il server UCS usa OpenLDAP come server. La documentazione ufficiale di UCS lo riporta esplicitamente;

  • log di OpenLDAP: di default UCS ha disattivati i log di LDAP. La guida descrive come attivarli. A integrazione di quanto riportato dalla guida:

    • suggerisco di accedere ad un terminale shell di UCS e acquisire l'identità di root. Questo permette maggiore flessibilità, anche se le operazioni richiedono un po' di esperienza

    • aggiungere nel file /etc/ldap/slapd.conf la direttiva per attivare i log (cf. https://www.openldap.org/doc/admin24/slapdconfig.html#loglevel <level> ) come nell'esempio qui di seguito

...
pidfile /var/run/slapd/slapd.pid
argsfile /var/run/slapd/slapd.args
loglevel 256
allow bind_v2 update_anon
...

    • creare il file di configurazione /etc/rsyslog.d/slapd.conf e popolarlo come segue (cf. https://www.rsyslog.com/doc/master/configuration/index.html )

if $programname == 'slapd' then /var/log/slapd.log

    • riavviare i demoni slapd e rsyslog

systemctl restart rsyslog
systemctl restart slapd

    • per ispezionare i log possiamo usare, ad esempio, tailf che permette di vedere in tempo reale cosa rive-fa il server LDAP

tailf /var/log/slapd.log

    • a fine delle attività di ispezione ricordarsi di disattivare i log di OpenLDAP (cancellare la direttiva e riavviare OpenLDAP) e togliere il filtro per Rsyslog (cancellare /etc/rsyslog.d/slapd.conf e riavviare rsyslog)

  • log di LifeRay: lo scenario è più complesso perché variano molto le cose a seconda dell'AS che usiamo (Tomcat, Jetty, WildFly, JBoss, ecc...), della configurazione, ecc.... Ipotizzo che usiamo Tomcat nel il pacchetto bundle di LifeRay installato nella directory /opt .

    In questo scenario possiamo ispezionare il log catalina.out come segue

tailf /opt/liferay/tomcat-9.0.17/logs/catalina.out


5. Conclusione

In uno scenario di centralizzazione e di data integration si tratta di una architettura molto interessante, molto flessibile e che scala facilmente.

Di converso richiede, da parte di chi allestisce l'installazione e la configurazione, una competenza maggiore e una buona conoscenza della modellazione del directory service LDAP fatta nel server UCS.

Infine non guasta la considerazione che possiamo fare il tutto senza dover sostenere gli onerosi costi di licenza d'uso, rimanendo con i pacchetti community, e mirare il nostro budget sul personale e sull'assistenza (magari evolutiva ;).

6. Webgrafia

OpenLDAP Software 2.4 Administrator's Guide: The slapd Configuration File, https://www.openldap.org/doc/admin24/slapdconfig.html#loglevel <level>, 1/1/2020

Configuration, https://www.rsyslog.com/doc/master/configuration/index.html, 1/1/2020

Documentation - UCS 4.3, https://docs.software-univention.de/en/ucs4.3.html, 1/1/2020

LDAP, https://portal.liferay.dev/docs/7-1/deploy/-/knowledge_base/d/ldap, 1/1/2020

RAGHU N M - SHRUTHI VALSALAN, LDAP and Liferay Setup, https://liferay.dev/forums/-/message_boards/message/16387690 , 2010-07-27

Questo sito utilizza cookie, anche di terze parti, per migliorare la tua esperienza e offrire servizi in linea con le tue preferenze. Chiudendo questo banner, scorrendo questa pagina o cliccando qualunque suo elemento acconsenti all’uso dei cookie. Se vuoi saperne di più o negare il consenso a tutti o ad alcuni cookie vai alla sezione Cookie Policy.