LDAP – Mario Baioli GLAD (gruppo di lavoro drupal Sapienza) Corso Drupal advanced.

19
LDAP – Mario Baioli http://www.corsodrupal.uniroma1.it GLAD (gruppo di lavoro drupal Sapienza) Corso Drupal advanced

Transcript of LDAP – Mario Baioli GLAD (gruppo di lavoro drupal Sapienza) Corso Drupal advanced.

Page 1: LDAP – Mario Baioli  GLAD (gruppo di lavoro drupal Sapienza)  Corso Drupal advanced.

LDAP – Mario Baiolihttp://www.corsodrupal.uniroma1.itGLAD (gruppo di lavoro drupal Sapienza)

Corso Drupal advanced

Page 2: LDAP – Mario Baioli  GLAD (gruppo di lavoro drupal Sapienza)  Corso Drupal advanced.

11/04/23LDAP Sapienza - Mario Baioli Pagina 2

Centralizzazione delle utenze

Avere a che fare con una utenza numerosa e con servizi informatici eterogenei e distribuiti spesso

si risolve nella creazione di innumerevoli account per scopi diversi.

• Al crescere delle attività e dei servizi del sito si rende necessaria la manutenzione degli account, che potrebbe diventare un problema per la sicurezza generale del sistema informatico per la presenza di account validi non usati, account dimenticati…, password da cambiare ecc. oltre che un onere da parte di chi gestisce i contatti.

• Il nostro Drupal ha una ottima gestione degli account ed il nostro obbiettivo è di sfruttare i ruoli, ognuno dei quali può aver associati dei permessi specifici, in modo che l’amministratore del sito possa decidere in modo preciso quali sono le operazioni consentite per ciascun utente.

• Centralizzare la gestione delle utenze é un modo per risolvere il problema perché da un lato ci esonera dalla raccolta e manutenzione dei dati identificativi dell’utente e dall’altra ci offre la sicurezza che gli utenti che si stanno autenticando fanno di sicuro parte dell’Ateneo.

• Ci farebbe molto comodo se l’utente avesse già un ruolo assegnato dall’Ateneo.

Page 3: LDAP – Mario Baioli  GLAD (gruppo di lavoro drupal Sapienza)  Corso Drupal advanced.

Gestione centralizzata delle utenze con LDAP

• In questo contesto ci si propone di dare una descrizione di come implementare un sistema per la gestione centralizzata delle utenze facendo uso di LDAP.

11/04/23LDAP Sapienza - Mario Baioli Pagina 3

Page 4: LDAP – Mario Baioli  GLAD (gruppo di lavoro drupal Sapienza)  Corso Drupal advanced.

LDAP un po’ di date …

• Negli anni 90 era X.500/DAP (ISO/OSI)• 1991: definizione di LDAP (TCP/IP)• Da gateway verso X.500 a server LDAP

standalone. • Nel 1993 università del Michigan, LDAP soppianta il

protocollo DAP.• 1996: LDAPv3 è una versione alleggerita del

protocollo DAP, da cui deriva il suo nome di Lightweight Directory Access Protocol

11/04/23LDAP Sapienza - Mario Baioli Pagina 4

Page 5: LDAP – Mario Baioli  GLAD (gruppo di lavoro drupal Sapienza)  Corso Drupal advanced.

ancora storia

• Prima di LDAP, per accedere a dati memorizzati in una directory X.500 un client doveva supportare il DAP (DIRECTORY ACCESS PROTOCOL), il quale imponeva una notevole penalizzazione delle risorse in gioco in quanto richiedeva l'utilizzo della specifica OSI (Open System Interconnection) che oggi é sostituita largamente dalla suite di protocolli TCP/IP ed altri protocolli.

• LDAP nasce proprio per sostituire DAP in quanto molto oneroso dal punto di vista dell'impiego delle risorse. Infatti la “L” aggiunta nell’acronimo sta per Lightweight

11/04/23LDAP Sapienza - Mario Baioli Pagina 5

Page 6: LDAP – Mario Baioli  GLAD (gruppo di lavoro drupal Sapienza)  Corso Drupal advanced.

Quindi LDAP cos’è?

• LDAP è un protocollo di accesso a Directory Servers (RFC 1777)

• Usa un modello gerarchico delle informazioni, che sono organizzate in un albero (DIT)

• Il modello informativo é basato sulle entry, le quali sono composte da attributi che possono avere uno o più valori

• E’ possibile determinare il tipo degli attributi e il loro comportamento.

11/04/23LDAP Sapienza - Mario Baioli Pagina 6

Page 7: LDAP – Mario Baioli  GLAD (gruppo di lavoro drupal Sapienza)  Corso Drupal advanced.

LDAP

• LDAP è client-sever: un client LDAP invia una richiesta ad un server LDAP, che processa la richiesta ricevuta, accede eventualmente ad un directory database e ritorna dei risultati al client.

11/04/23LDAP Sapienza - Mario Baioli Pagina 7

Page 8: LDAP – Mario Baioli  GLAD (gruppo di lavoro drupal Sapienza)  Corso Drupal advanced.

Tipo di informazioni che possono essere memorizzate in una directory

• Il modello di informazioni di LDAP è basato sulle entry. Una entry è una collezione di attributi aventi un unico nome globale: il Distinguished Name (DN).

• Il DN è usato per riferirsi ad una particolare entry, senza avere ambiguità infatti ogni attributo dell’entry ha un tipo ed uno o più valori.

• I tipi di solito sono stringhe mnemoniche, come cn per i common name (i nomi comuni), oppure mail per gli indirizzi di posta elettronica.

11/04/23LDAP Sapienza - Mario Baioli Pagina 8

Page 9: LDAP – Mario Baioli  GLAD (gruppo di lavoro drupal Sapienza)  Corso Drupal advanced.

Nel nostro caso

Per la sintassi dei valori:

• %username and %basedn are valid tokens in the expression. Typically it will be:

• cn=%username,%basedn which might evaluate to cn=jdoe,ou=campus accounts, dc=ad, dc=mycampus, dc=edu Base DNs are entered above.

• Utilizziamo cn=%username

11/04/23LDAP Sapienza - Mario Baioli Pagina 9

Page 10: LDAP – Mario Baioli  GLAD (gruppo di lavoro drupal Sapienza)  Corso Drupal advanced.

DN identifica in maniera univoca un elemento

• uid (userid), si tratta di un identificativo unico obbligatorio

• cn (common name), si tratta del cognome della persona

• o (organization), si tratta dell'azienda della persona

• u (organization unit), si tratta dell’unità organizzativa dell‘Ateneo dove la persona lavora

• mail, si tratta dell'indirizzo di posta elettronica

11/04/23LDAP Sapienza - Mario Baioli Pagina 10

Page 11: LDAP – Mario Baioli  GLAD (gruppo di lavoro drupal Sapienza)  Corso Drupal advanced.

Dati LDAP Sapienza

11/04/23LDAP Sapienza - Mario Baioli Pagina 11

Valore LDAP Sapienza descrizione

Prof. Ordinario Professore I fascia – ordinario

Prof. Associato Professore II fascia – associato

Ricercatore e assimilato Ricercatore universitario

Area Biblioteche Personale tecnico amministrativo area biblioteche

Tecnico-Amministrativo Personale tecnico amministrativo delle altre aree

Professore a Contratto Docenti non strutturati

Collaboratore a Contratto Personale amministrativo non strutturato

Organizzazione Interna Account per ufficio esempio: [email protected]

Area sociosanitaria non è ancora importata (!)

Immagino che ci saranno anche i colleghi dell’area infermieristica del Policlinico Umberto I

Page 12: LDAP – Mario Baioli  GLAD (gruppo di lavoro drupal Sapienza)  Corso Drupal advanced.

LDAP

LDAP configurato … ora cosa dobbiamo fare?

• Il ruolo è associato all’utente già dall’Ateneo e la nostra gestione profili utenti, ruoli e permessi si popola automaticamente al solo accesso da parte dell’utente.

11/04/23LDAP Sapienza - Mario Baioli Pagina 12

Page 13: LDAP – Mario Baioli  GLAD (gruppo di lavoro drupal Sapienza)  Corso Drupal advanced.

LDAP

• Una volta che l’utente si autentica con successo sul nostro sito Drupal con LDAP Sapienza, resterà tra gli utenti del sito portandosi con se il ruolo assegnato da Sapienza.

• Quindi noi cosa dobbiamo fare

11/04/23LDAP Sapienza - Mario Baioli Pagina 13

Page 14: LDAP – Mario Baioli  GLAD (gruppo di lavoro drupal Sapienza)  Corso Drupal advanced.

LDAP

• Ora conosciamo i ruoli che possono arrivare sul sito da autenticazione LDAP e possiamo progettare l’insieme dei permessi associati a ciascuno di questi ruoli dal pannello Permessi dove verranno mostrati tutti i permessi associati ai ruoli esistenti: in questo modo possiamo prevedere quali permessi avrà un utente registrato.

• Il nuovo utente che arriva da LDAP avrà un ruolo già assegnato con i suoi permessi che noi gli abbiamo costruito.

11/04/23LDAP Sapienza - Mario Baioli Pagina 14

Page 15: LDAP – Mario Baioli  GLAD (gruppo di lavoro drupal Sapienza)  Corso Drupal advanced.

LDAP

• L’unico sforzo da parte dell’amministratore è la configurazione iniziale ed una buona progettazione sui ruoli e permessi.

• Niente altro … ;-)

11/04/23LDAP Sapienza - Mario Baioli Pagina 15

Page 16: LDAP – Mario Baioli  GLAD (gruppo di lavoro drupal Sapienza)  Corso Drupal advanced.

Utenti diversi da LDAP

• D. Vogliamo usare anche altri LDAP server per gestire ulteriori gruppi di utenti (es. studenti) o altre modalità di autenticazione come quelle standard di drupal, open id o altro. Drupal come gestisce l’autenticazione?

R. Modulo LDAP 7.x -1.0-beta12 Menu: Authentication logon options, Allowable Authentications selezionare Mixed mode. Drupal authentication is tried first. On failure, LDAP authentication is performed. help at http://drupal.org/node/997082

11/04/23LDAP Sapienza - Mario Baioli Pagina 16

Page 17: LDAP – Mario Baioli  GLAD (gruppo di lavoro drupal Sapienza)  Corso Drupal advanced.

Download modulo LDAP

Al momento sul mio sito è up questo modulo:

11/04/23LDAP Sapienza - Mario Baioli Pagina 17

Versione Downloads Data Links

7.x-1.0-beta12 tar.gz (192.38 KB) zip (271.48 KB) 15 aprile 2013 notes

Page 18: LDAP – Mario Baioli  GLAD (gruppo di lavoro drupal Sapienza)  Corso Drupal advanced.

Modulo LDAP 7.x-1.0-beta12

attivo nome versione descrizione

LDAP Authentication 7.x-1.0-beta12Implements LDAP authenticationRichiede: LDAP Servers (attivato)Richiesto da: LDAP SSO (attivato)

LDAP Authorization 7.x-1.0-beta12Implements LDAP authorization (previously LDAP Groups)Richiede: LDAP Servers (attivato)Richiesto da: LDAP Authorization - Drupal Roles (attivato), LDAP Authorization - OG (Organic Groups) (disattivato)

LDAP Authorization - Drupal Roles 7.x-1.0-beta12 Implements LDAP authorization for Drupal roles

Richiede: LDAP Authorization (attivato), LDAP Servers (attivato)

LDAP Authorization - OG (Organic Groups) 7.x-1.0-beta12 Implements LDAP authorization for Organic Groups

Richiede: LDAP Authorization (attivato), LDAP Servers (attivato), Og (mancante)

LDAP Feeds 7.x-1.0-beta12VERY MUCH IN ALPHA STATE. Included feeds fetcher for a generic ldap query and ldap entry parser to turn fetcher data into feeds compatible parser result. Used to automate content creation based on ldap queries.Richiede: Feeds (mancante), LDAP Servers (attivato), LDAP Query (attivato)

LDAP Help 7.x-1.0-beta12 LDAP Help for configuration and reporting issues.Richiede: LDAP Servers (attivato)

LDAP Profile 7.x-1.0-beta12 Implements LDAP Profile. Allows you to map Drupal profile fields to LDAP profile fieldsRichiede: LDAP Servers (attivato)

LDAP Query 7.x-1.0-beta12LDAP Query Builder and Storage for queries used by other ldap modules such as ldap feeds, ldap provision, etcRichiede: LDAP Servers (attivato)Richiesto da: LDAP Feeds (disattivato), LDAP Views (attivato)

LDAP Servers 7.x-1.0-beta12

Implements LDAP Server ConfigurationRichiesto da: LDAP Authentication (attivato), LDAP Authorization (attivato), LDAP Authorization - Drupal Roles (attivato), LDAP Authorization - OG (Organic Groups) (disattivato), LDAP Query (attivato), LDAP Feeds (disattivato), LDAP Help (attivato), LDAP Profile (attivato), LDAP SSO (attivato), LDAP Views (attivato)

LDAP SSO 7.x-1.0-beta12 Implements Single Sign On (SSO) LDAP AuthenticationRichiede: LDAP Servers (attivato), LDAP Authentication (attivato)

LDAP Views 7.x-1.0-beta12 Implements LDAP integration with ViewsRichiede: LDAP Query (attivato), LDAP Servers (attivato), Views (attivato), Chaos tools (attivato)

11/04/23LDAP Sapienza - Mario Baioli Pagina 18

Page 19: LDAP – Mario Baioli  GLAD (gruppo di lavoro drupal Sapienza)  Corso Drupal advanced.

11/04/23LDAP Sapienza - Mario Baioli Pagina 19