sabato 12 febbraio 2011

Interfacciare Liferay con LDAP



Liferay è una applicazione web open source basata sul linguaggio Java per la gestione e la customizzazione di portali.
Liferay sfrutta la gestione delle portlet (supporta lo standard portlet API JSR-168). Esso permette di creare facilmente da un normale sito web a un complesso portale di servizi. Una caratteristica interessante di Liferay è che esso può essere interfacciato con un preesistente sistema di autenticazione quale LDAP, NTLM ecc.
Liferay può essere personalizzato per ciascun utente che si logga al portale con una granularità molto fine: per esempio posso decidere per ciascun utente o gruppi di utenti quali portlet, documenti, contenuti ecc. può vedere o con quali può interagire.
Tutti gli accessi al portale (profilazione utente con i suoi privilegi) saranno pilotati dal nostro sistema di autenticazione centralizzato.

Vediamo un esempio di integrazione con LDAP: una volta loggati come utente administrator di Liferay (utente Administrator locale), andare nel Pannello di Controllo di Liferay nella sezione Portale -> Configurazione -> Autenticazione -> LDAP. Chekkare il flag "Abilitato", mentre quello "Richiesto" abilitarlo solo nel caso che tutti gli utenti che si dovranno loggare a Liferay siano solo di LDAP. Premere il bottone "Aggiungi" Server LDAP. A questo punto dobbiamo configurare l'autenticazione:
Configurazione
Top o

Nome del server (immettere un nome simbolico del server)
Valori Predefiniti (selezionare il tipo server LDAP)
Scegliere il tipo di server tra quelli a disposizione, per esempio se abbiamo in azienda un Active Directory con LDAP selezionare "Microsoft Active Directory Server", introdurre l'IP e la porta del servizio LDAP (ricavabile dal server), di default vale "ldap://localhost:10389".
 
Apache Directory Server
Fedora Directory Server
Microsoft Active Directory Server
… ecc.
Connessione - Base Provider URL, Il formato dell'URL del LDAP Base Provider è ldap://host:port.- Base DN specifica il contesto di ricerca iniziale per gli utenti ed è opzionale. Ad esempio, usare ldap://localhost:389 e ou=Users,o=Example come valori - Il formato dell'URL del LDAP Base Provider è ldap://host:port. Il Base DN specifica il contesto di ricerca iniziale per gli utenti ed è opzionale. Ad esempio, usare ldap://localhost:389 e ou=Users,o=Example come valori.- Immetere le credenziali di un amministratore (ad esempio admin,dc=local)
Utenti

- Filtro di Ricerca Autenticazione. Inserisci il filtro di ricerca che sarà utilizzato per verificare la validità di un utente. I campi @company_id@, @email_address@ e @user_id@ sono sostituiti a runtime con i valori corretti. Ad esempio (mail=@email_address@)- Importa Filtri di Ricerca: ad esempio (objectClass=person), filtro di ricerca per utente
Mappatura dell'Utente
Immetere i valori dei campi che a runtime verranno sostituiti con quelli trovati sul server:
Nome Utente:  cn
Password: userPassword
Indirizzo Email: userPrincipalName
Nome Completo:
Nome: givenName
Secondo Nome:
Cognome: sn
Job Title: title
Gruppo: memberOf
Gruppi
Filtro per importare i gruppi:
Importa Filtri di Ricerca: (objectClass=groupOfUniqueNames)
Tracciato del Gruppo
Nome del Gruppo: cn
Descrizione: description
Utente: uniqueMember
Esporta
Esporta i dati su Liferay
DN Utenti: ou=users,dc= company_domain,dc=local
Classi Oggetto Predefinite per l'Utente: top,person,organizationalPerson,inetOrgPerson
Gruppi DN: ou=groups,dc= company_domain,dc=local
Codici categoria di oggetto di difetto del gruppo: top,groupOfUniqueNames
Bottom of Form
Questo potrebbe essere un esempio di configurazione di Liferay. In pratica Liferay si connetterà al nostro server LDAP e importerà gli utenti e i gruppi che soddisfano i criteri di ricerca indicati nei filtri. Alla fine della procedura tali utenti compariranno come utenti di Liferay veri e propri.
Dopo aver testato la connessione al server LDAP e testato i vari filtri su gruppi e utenti tramite i relativi bottoni, salviamo la configurazione del server e torniamo alla schermata di LDAP.
A questo punto possiamo settare le rimanenti opzioni:

Importa / Esporta

(importa gli utenti LDAP al primo login)
(importa tutti gli utenti LDAP all'avvio)
(esporta gli utenti LDAP)

Politica per le Password

(abilita la politica LDAP delle password come per esempio la scadenza ecc.)
Salviamo le modifiche effettuate, delogghiamo l'utente corrente di Liferay e proviamo ad effettuare un login con utente LDAP: se tutto andrà bene ci verrà chiesta per questo utente la domanda segreta per il ripristino della password. L'utente avrà i permessi indicati per il gruppo LDAP, se si vogliono dare permessi diversi andare in Pannello di Controllo->Portale->Ruoli e dopo aver selezionato un ruolo in Azioni cliccare su Assegna membri -> disponibili. Naturalmente nella sezione Utenti di Liferay (Pannello di Controllo ->Portale ->Utenti), dopo il login dovranno comparire tutti gli utenti LDAP importati e che soddisfano i criteri dei filtri che abbiamo immesso. A questo punto Liferay è stato interfacciato con LDAP ed è pronto all'uso con un sistema di autenticazione centralizzato.

4 commenti:

Anonimo ha detto...

ottimo post! Grazie. Purtroppo continuo ad avere problemi con il test degli utenti. Possibile che debba cambiare "Import Search Filter" o altro. Sai dirmi a cosa devo stare attento per fare il test users correttamente.

Unknown ha detto...

Non so bene che tipo di problema hai riscontrato e se tale problema avviene al momento del test (bottone "Verifica Utenti LDAP") o al momento dell' importazione.
- Per verificare l'autenticità di un utente devi immettere uno dei campi @company_id@, @email_address@ o @user_id@ nel "Filtro di Ricerca Autenticazione".
- In "Importa Filtri di Ricerca" puoi lasciare (objectClass=person) assicurandoti che tale oggetto sia incluso in "Classi Oggetto Predefinite per l'Utente".
- Assicurati che i campi degli utenti che stai richiedendo siano esistenti sul server, altrimenti tali utenti non verranno importati.
- Assicurati di aver abilitato tutte le proprietà di importazione/esportazione.

Antonio Musarra ha detto...

Ciao Andrea, un buon post.
Una domanda veloce. Mi sembra che nativamente Liferay 6.0 non supporti però l'importazione delle OU (Organizzazioni) e le relative associazioni, a mio avviso questa funzionalità sarebbe l'ideale. Secondo te è fattibile aggiungere facilmente questo comportamento a Liferay ?

Grazie,
Antonio.

Anonimo ha detto...

Ciao,
ottimo articolo,

io ho invece un problema di lentezza verso LDAP.
Escludendo problemi di rete ti viene in mente qualcos altro?

Grazie

Posta un commento

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | cna certification