Bookmark and Share
Document Actions

Autenticazione con Database Relazionali

Up one level
I Database Relazionali assumono la forma di una tabella in cui le righe rappresentano i record e le colonne rappresentano i campi.

In questa sezione, imparerete a gestire ed autenticare gli utenti da un database relazionale SQL. In primo luogo, si creerà il database e la connessione al database; quindi, vedremo come installare e configurare il prodotto sqlpasplugin che vi renderà facile configurare il plug-in sql con pochi click. In casi reali, si può avere un database relazionale di livello enterprise con la tabella degli utenti. Ma per essere più pratici e mantenere le cose il più semplice possibile, nell'esempio in questa sezione useremo un database “dummy“ disponibile di default  in Zope (il database Gadfly). In questo modo è possibile creare rapidamente un nuovo database e riempirlo con un paio di record che rappresentano gli utenti. Come risultato dovreste trovare i membri Plone come record nel vostro database. Sarete così in grado di testare l'integrazione degli utenti di SQL in Plone, senza dover installare nessun database complesso.

Nota: In ambienti di produzione, è necessario utilizzare un database professionale. Tuttavia, il Libro Zope tratta nel dettaglio come configurare l'accesso a un database relazionale; vedete su http://zope.org/Documentation/Books/ZopeBook/2_6Edition/RelationalDatabases.stx.


Cominciamo! Andate nella ZMI, e selezionate la voce di Z Gadfly Database Connection dalla lista Add. Questo vi condurrà al modulo per aggiungere una connessione al database Gadfly. Dal momento che si trova già dentro Zope, non è necessario specificare una stringa di connessione come credenziali di altri connettori database  potrebbero richiedere. Come illustrato nella Figura 8-7, compila l'add form: inserite users_db come ID, selezionate l'elemento “demo”, come data source e poi confermate le modifiche cliccando sul pulsante Add.

Add Z Gadfly Database Connection

Figura 8-7. Parte del form Add Z Gadfly Database Connection, vi basta compilare alcuni dati e fare clic sul pulsante Add. Il resto del pannello fornisce informazioni circa il copyright Gadfly.

In questo modo si aggiunge la connessione al database. Ora, fate clic sulla voce appena aggiunta. Come mostrato nella Figura 8-8, vedrete diverse schede, le seguenti sono le più importanti:

  • La scheda "status" mostra lo stato e gestisce la connessione al database.
  • La scheda "test" consente di inserire le istruzioni SQL (ad esempio, per eseguire il debug o per creare, inserire tabelle o gli oggetti, e così via).
  • La scheda "Browse" vi permette di navigare la struttura delle tabelle del database.
connessione database

Figura 8-8. I tab disponibili per la vostra connessione al database

Il database sarà vuoto. Ora è possibile creare una tabella utenti e aggiungere un nuovo utente nella scheda Test. Andate alla scheda Test, compilate questa istruzione SQL, e confermate facendo clic sul pulsante Submit Query:

CREATE TABLE users_table(
username varchar, password varchar, mail varchar, name varchar)

La prima riga è stata inserita come esempio, in realtà, il database dovrebbe già contenere tutti gli utenti registrati. Tuttavia, se si desidera verificare il vostro inserimento con SQL e aggiungere velocemente un nuovo utente, è possibile fare di nuovo clic sulla scheda Test, inserire questa semplice istruzione SQL a seconda del tipo di tabella che abbiamo creato, e confermare facendo clic sul pulsante Submit Query:

insert into users_table values ('db_user', '12345', 'john.smith@plonebook.com', 'john')

Avete riempito il database con un utente, ora è possibile eseguire una query sulla tabella user con un'istruzione SELECT, come abbiamo fatto per le  dichiarazioni create e insert, con il seguente codice SQL:

select * from users_table

Avete creato un database con una tabella contenente un utente di nome db_user, ora siete pronti per iniziare la configurazione del plug-in PAS SQL e inserire nuovi membri da una sorgente SQL in Plone. A questo punto dovrete installare e configurare il prodotto sqlpasplugin. Se avete un buildout, è possibile aggiungere l'URL alla variabile urls della sezione productdistros:

http://plone.org/products/sqlpasplugin/releases/1.0/SQLPASPlugin-1.0.tar.gz

Fatto ciò, riavviate lo script buildout. Dopo il riavvio di Zope, dovreste trovare SQLPASPlugin come prodotto installabile nel vostro sito Plone. Installate SQLPASPlugin tramite lo strumento portal_quickInstaller o il pannello di controllo Plone. Altrimenti è possibile scaricare il tarball dal sito web Plone.org e scompattarlo nella cartella product dell'istanza. Potete trovare il pannello SQL Authentication Configuration nel pannello di controllo di Plone, raggiungibile cliccando sul collegamento SQL Authentication nell'area Add-­on Product Configuration. La Figura 8-9 mostra il pannello SQL Authentication Configuration che sarà simile dopo la prima inizializzazione. La prima volta che accedete al pannello SQL Authentication Configuration, dovrete scegliere quale connessione al database desiderate utilizzare, in questo caso, la vostra unica scelta sarà la connessione users_db che avete appena creato. Selezionatela e confermate.

SQL Authentication

Figura 8‐9. Il pannello SQL Authentication Configuration.

Un elemento importante è il collegamento “Properties plugin” che si può vedere nella prima riga del paragrafo visualizzata nella parte inferiore del pannello, facendo clic su esso, sarete in grado di cambiare la mappatura delle colonne. Cliccando su questo verrete portati  allo strumento di configurazione ZMI del plug-in PAS di SQL. Sotto col_mapping, dovete inserire una coppia di nomi per ogni colonna che si vuole mappare, con una barra (/) come separatore (questo è valido solo per la mappatura delle colonne). Ad esempio, se si desidera associare la colonna mail nella tabella per la proprietà email, digitare in mail / email nella prima linea. Inserisci una mappatura per ogni riga, come mostrato nella Figura 8-10.

SQL Mutable Property

Figura 8-10. Il pannello SQL Mutable Property Provider nello ZMI, dove è possibile assegnare semplici valori agli  oggetti Zope

Il gioco è fatto! Ora è possibile cercare gli utenti definiti nella sorgente SQL , e gli utenti definiti nella tabella users_table sono autorizzati ad accedere al proprio portale con le proprietà correttamente mappate con le colonne del database. Funziona bene? Cliccate su Users e Groups nel pannello di controllo di Plone, e utilizzate la ricerca per tutti gli utenti, dovreste trovare l'utente definito nella sorgente SQL, come illustrato nella Figura 8-11.

pannello Users Overview

Figura 8-11. Il pannello Users Overview mostra l'utente contenuto nel database da voi creato.

Una meravigliosa fonte di informazioni e di dettagli pratici per PAS è il "PAS Reference Manual", dove si possono trovare le istruzioni per configurare la gestione degli utenti in Plone e anche per lo sviluppo dei plug-in PAS; visitate il sito http://plone.org/documentation/manual/pas-reference-manual.

by Dario Pollino last modified 2010-03-19 16:56
Contributors: Maurizio Delmonte, Davide Moro, Alice Narduzzo, Fabrizio Reale, Enrico Barra, Andrea Cannizzaro, Andrea D'Este, Maurizio Lupo, Giuseppe Masili, Dario Pollino, Matteo Sorba.