Utilizzare authManager per la gerarchia autorizzativa RBAC.

La scorsa volta abbiamo parlato dell’ RBAC (Role-based access control), e come abilitarne il modulo che gestisce la gerarchia autorizzativa con Yii Framework per poi salvarla sul nostro Database.

In questo nuovo articolo riprenderemo l’argomento, andando però a spiegare come utilizzare le API di authManager un componenete del Framework che mette a disposizione dei metodi che permettono la creazione di questi ruoli applicativi, le operazioni e le relazioni tra permessi e ruoli.

Come prima cosa diciamo che per proseguire nell’implementazione della nostra gerarchia autorizzativa avremo bisogno di popolare  le nostre tabelle del Database con i ruoli e permessi da noi definiti. Noi faremo questo usando le API messa a disposizione di authManager, ricordiamo che stiamo andando a definire solo i ruoli e le operazioni base, non setteremo per adesso alcuni task formali di RBAC .

In questo articolo andremo a definire una gerarchia base tipica di un Blog, in cui c’è un Proprietario del Blog, un’utente Registrato e un Lettore, come segue: gerarchia_autorizzativa Osservando il diagramma precedente vediamo che i ruoli ereditano da sopra a sotto. Così, i Proprietari hanno tutti i permessi elencati, in più essi ereditano tutti i permessi da entrambe i ruoli Registrati e Lettori.

Similmente, I Registrati ereditano i permessi dai Lettori, a questo punto quello che ci serve fare e stabilire questa gerarchia di permessi nell’applicazione.

Come precedentemente menzionato, la migliore strada per fare questo è scrivere il codice da utilizzare con le API di  authManager.

Facciamo un semplice esempio, scivendo il codice per creare un nuovo ruolo e una nuova operazione e aggiungere la relazione tra il ruolo e il permesso, bastano poche righe:

$auth=Yii::app()->authManager;

$role=$auth->createRole(proprietario);

$auth->createOperation(‘creaContenuto’,crea un nuovo contenuto’);

$role->addChild(‘creaContenuto’);

Con il codice precedente, noi prima prendiamo l’istanza di  authManager, poi usiamo i metodi dell’API:  createRole(), createOperation(), e addChild() API per creare un nuovo ruolo proprietario, e una nuova operazione chiamata creaContenuto,  infine viene aggiunto il permesso al ruolo del proprietario.

Questa è solo una dimostrazione della creazione di una piccola parte della gerarchia di cui abbiamo bisogno, tutte le rimanenti relazioni sono sottilineate nella figura precedente bisogna crearle in maniera simile a quanto fatto in questo  breve esempio di codice.

Spero di essere riuscito ad introdurvi questo complesso argomento nel migliore dei modi, comunque in un’applicazione reale sono diversi i controlli e le complessità da tenere in considerazione e sul sito troverete delle extension di Yii complete che potrete integrate nelle vostre applicazioni.

Anche per oggi vi saluto e vi prego di scrivermi per qualsiasi approfondimento in merito, intanto vi saluto e a risentirci presto.

Giovanni Masucci – Media Solutions Expert

 

Be Sociable, Share!

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *