controllo degli accessi basato sui ruoli - stesso ruolo, diversi reparti

0

Questa domanda sull'implementazione di RBAC. Un soggetto può avere un ruolo in un certo reame?

Supponiamo che un'università sia composta da dipartimenti. I dipartimenti hanno corsi. I corsi hanno studenti. Gli studenti hanno voti nei corsi.

Nota che questi gradi sono ENTRO il regno di un particolare dipartimento, ma non sono di proprietà del dipartimento.

Desideriamo dichiarare che il ruolo di "capo reparto" dovrebbe avere accesso a tutte le cose nell'ambito del loro dipartimento, compresi tutti i gradi. C'è un modo standard / consigliato per farlo. Sono (leggermente) familiare con la proprietà, ma i voti sono di proprietà dello studente. Il fatto che il voto sia all'interno del dipartimento è indiretto.

Dalla mia lettura iniziale, sembra che almeno uno dovrebbe creare molti ruoli duplicati: "capo dipartimento della matematica", "capo del dipartimento storia", "capo del dipartimento inglese", ecc. Sembra preferibile definire il " capo dipartimento "e assegnare quel ruolo a un soggetto _relativo_a_un determinato reparto, quindi avere quel flusso fino a gradi all'interno del dipartimento X. È possibile? Grazie mille per l'assistenza.

    
posta Ray Morris 14.02.2014 - 04:29
fonte

3 risposte

2

si desidera utilizzare il controllo dell'accesso basato su attributi che si estende oltre il controllo dell'accesso basato sui ruoli per includere altri attributi su utenti, risorse e altro.

Nel tuo esempio devi creare un ruolo "MathDepartmentHead" se usi RBAC. Ma se usi ABAC puoi scrivere una regola come segue:

Un utente con il ruolo " capo reparto " può eseguire l'azione " vista " su tutte le risorse se e solo se resource.department = = user.department .

Puoi leggere ulteriori informazioni sul controllo degli accessi basato sugli attributi qui:

Ci sono un paio di modi per ottenere il controllo degli accessi basato sugli attributi. Il modo standard è utilizzare XACML, il linguaggio di markup di controllo accessi estensibile. Vale anche la pena prendere in considerazione l'idea di Microsoft basata sulle attestazioni

Nel mondo di XACML sono disponibili diverse implementazioni open source e vendor. Lavoro per uno dei fornitori, Axiomatics .

Alcuni dei casi d'uso che sono visti in questo spazio includono la protezione di dati medici sensibili, informazioni personali e persino informazioni accademiche come è il tuo caso d'uso.

Se vuoi iniziare a modellare le politiche di controllo degli accessi basate sugli attributi, dai un'occhiata a Plug-in ALFA per Eclipse , uno strumento gratuito che ti permette di scrivere XACML in pseudo-codice.

Spero che questo aiuti. Se si scende lungo la rotta ABAC, si:

  • evita l'esplosione di ruolo
  • abilita il controllo degli accessi basato sulla relazione (permesso se user.department == resource.department)
  • essere in grado di implementare regole di segregazione dei compiti, ad es. il capo dipartimento può visualizzare i dati nel proprio dipartimento, ad eccezione dei dati relativi agli studenti o al personale che sono membri della famiglia.
risposta data 14.02.2014 - 10:17
fonte
0

Sì, è possibile. Pensa ai forum, dove i moderatori potrebbero moderare solo determinati argomenti.

Quello che dovresti fare è, a mio parere, definire regole diverse, come "Può cambiare la matematica", "Può cambiare arte", "Può vedere la matematica" ... ecc. a seconda di ciò che hai .. Di te Math insegnare avrebbe valore VERO per "Può cambiare matematica" e falso per altre regole "modifica" ma "vero" per gli altri.

Oppure puoi impostare le regole sotto departmants ... ad esempio un elenco che determina come può modificare e chi può vedere solo i voti ecc ...

tuttavia dovresti dare più informazioni sul tuo sistema per una risposta diretta. Spero che questo aiuti.

    
risposta data 14.02.2014 - 09:50
fonte
0

Non è ben documentato come RBAC ma quello che stai descrivendo ho considerato il controllo dell'accesso basato sulla responsabilità.

Un semplice esempio dal nostro preferito, il DMV: puoi avere un ruolo DMVEmloyee che può creare un oggetto Title. Una delle proprietà dell'oggetto del titolo sarebbe (in un sistema normalizzato almeno) un riferimento a una persona - una "responsabilità". Può essere usato come un ruolo a livello di oggetto ma come una proprietà ha la capacità di contribuire alla validità dell'oggetto. (L'aggiornamento del titolo richiede Owner.age > = 18 e Owner.Deceased! = True). Tale responsabilità potrebbe garantire al proprietario la possibilità di modificare l'indirizzo del veicolo (se CurrentUser == Title.Owner) ma nient'altro.

    
risposta data 11.12.2014 - 21:52
fonte

Leggi altre domande sui tag