
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: 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