Corso Drupal advanced
LDAP – Mario Baioli
http://www.corsodrupal.uniroma1.it
GLAD (gruppo di lavoro drupal Sapienza)
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.
LDAP Sapienza - Mario Baioli
21/12/2015
Pagina 2
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.
LDAP Sapienza - Mario Baioli
21/12/2015
Pagina 3
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
LDAP Sapienza - Mario Baioli
21/12/2015
Pagina 4
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
LDAP Sapienza - Mario Baioli
21/12/2015
Pagina 5
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.
LDAP Sapienza - Mario Baioli
21/12/2015
Pagina 6
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.
LDAP Sapienza - Mario Baioli
21/12/2015
Pagina 7
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.
LDAP Sapienza - Mario Baioli
21/12/2015
Pagina 8
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
LDAP Sapienza - Mario Baioli
21/12/2015
Pagina 9
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
LDAP Sapienza - Mario Baioli
21/12/2015
Pagina 10
Dati LDAP Sapienza
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
LDAP Sapienza - Mario Baioli
21/12/2015
Pagina 11
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.
LDAP Sapienza - Mario Baioli
21/12/2015
Pagina 12
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
LDAP Sapienza - Mario Baioli
21/12/2015
Pagina 13
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.
LDAP Sapienza - Mario Baioli
21/12/2015
Pagina 14
LDAP
• L’unico sforzo da parte dell’amministratore è la
configurazione iniziale ed una buona progettazione
sui ruoli e permessi.
• Niente altro … ;-)
LDAP Sapienza - Mario Baioli
21/12/2015
Pagina 15
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
LDAP Sapienza - Mario Baioli
21/12/2015
Pagina 16
Download modulo LDAP
Al momento sul mio sito è up questo modulo:
Versione
7.x-1.0-beta12
Downloads
tar.gz (192.38 KB)
LDAP Sapienza - Mario Baioli
zip (271.48 KB)
21/12/2015
Data
15 aprile 2013
Links
notes
Pagina 17
Modulo LDAP 7.x-1.0-beta12
attivo
nome
versione

LDAP Authentication
7.x-1.0-beta12
Implements LDAP authentication
Richiede: LDAP Servers (attivato)
Richiesto da: LDAP SSO (attivato)

LDAP Authorization
7.x-1.0-beta12
Implements 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-beta12
VERY 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 fields
Richiede: LDAP Servers (attivato)

LDAP Query
7.x-1.0-beta12
LDAP Query Builder and Storage for queries used by other ldap modules such as ldap feeds, ldap provision, etc
Richiede: LDAP Servers (attivato)
Richiesto da: LDAP Feeds (disattivato), LDAP Views (attivato)

LDAP Servers
7.x-1.0-beta12
Implements LDAP Server Configuration
Richiesto 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 Authentication
Richiede: 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)
LDAP Sapienza - Mario Baioli
descrizione
21/12/2015
Pagina 18
LDAP Sapienza - Mario Baioli
21/12/2015
Pagina 19
Scarica

LDAP