Che tipo di permesso è questo? (Gruppi + ruoli)

4

Sto iniziando a richiedere un controllo di accesso per i ruoli nella mia app.

Non ne so molto, ma capisco come funziona vBulletin:

I create groups, then give permissions to groups.

Penso che quello di cui ho bisogno è Role Bases Access Control (RBAC) , ma non lo sono certo, perché ho bisogno di gruppi per dare i permessi invece dei singoli utenti (Forse non è così complicato da realizzare).

Esempio di quello che sto pensando:

Dato un post:

Editor's Group has permission to view it before it's published.
Editor's Group has permission to edit its content.
Public Group (Default) has not permission to view it before it's published.
Admin Group has permission to delete the post.

Quindi fondamentalmente non sono orientato a capire se RBAC è ciò di cui ho bisogno.

Inoltre, come sarebbe opportuno memorizzare l'appartenenza a un gruppo in un utente, ad esempio, sarebbe utile avere: ID NAME PASSWORD GROUPS (1, MyName, MyPassword, 1/2/3/4/5) ed esploderlo tramite PHP o un registro per ogni appartenenza a un gruppo in una tabella denominata permissions , esempio: USERID, USERGROUP values (1, 1), (1, 2)

Forse dovrebbe essere il secondo modo a causa delle norme formali ma non ho ancora studiato Database 1 al college.

    
posta JorgeeFG 04.10.2012 - 16:57
fonte

2 risposte

2

Questa è una attività comune piuttosto e ha pratiche semplici da seguire e implementare. Puoi scegliere uno dei seguenti approcci che soddisfa i tuoi requisiti:

  • Basato sul livello
  • basato sul gruppo
  • Basato sulla responsabilità
  • Basato su utente - lo hai già escluso ed è una decisione saggia

Dalla tua descrizione del problema , sembra che controllo degli accessi basato sui ruoli abbia più senso. Ecco un link a un elenco di alcune implementazioni per progetti PHP. Ti suggerisco di dare uno sguardo e scegliere quello che si adatta alle tue esigenze specifiche: RBAC + PHP

Nel caso, se nessuno dei suddetti metodi funzionasse, ecco un tutorial su come creare il proprio (completo di origine): Sviluppo del framework CMS PHP 5

    
risposta data 04.10.2012 - 17:35
fonte
0

Assegna le autorizzazioni ai ruoli e quindi i ruoli agli utenti.

Per quanto riguarda lo storage personalmente, mi piace molto il metodo unix che utilizza un valore numerico per memorizzare i ruoli. Ogni ruolo ha un valore numerico e quindi tutti i ruoli aggiunti da un utente, ad esempio:

Ruolo 1 = 1

Ruolo 2 = 2

Ruolo 1 e 2 = 3

Tuttavia questo ti confonderà se hai molti ruoli.

Il modo più facilmente leggibile dall'uomo per implementarlo consiste nel dare a ciascun utente un numero ID univoco generato (usarlo come chiave primaria) nella tabella utente e lo stesso per ogni ruolo nella tabella dei ruoli. Quindi utilizzare una tabella intermedia per abbinare i ruoli agli utenti. NB: questa tabella intermedia dovrebbe avere 2 colonne in modo che un id utente abbia più voci se hanno più ruoli.

Questo è anche più semplice da estendere rispetto al metodo menzionato in precedenza.

    
risposta data 04.10.2012 - 17:10
fonte

Leggi altre domande sui tag