Schemi di autorizzazione genitore e figlio

1

Quale approccio ha più senso usare, quello distruttivo o quello non distruttivo? Qualcuno ha esperienza nel mondo reale con uno, entrambi o addirittura un approccio diverso?

Modello

Uno schema di autorizzazione ha un insieme di permessi ad esso collegati. Può anche avere un genitore dal quale eredita le autorizzazioni.

Distruttivo

Le autorizzazioni di rimozione da uno schema padre rimuovono anche quelle autorizzazioni in qualsiasi schema figlio.

Motivo per utilizzare questo: quando riattivando successivamente tali autorizzazioni per uno schema principale, non vengono riattivate automaticamente per gli schemi figlio.

Motivo per non utilizzare questo: rimuovere accidentalmente le autorizzazioni da uno schema padre significa che le autorizzazioni per gli schemi figlio devono essere ripristinate separatamente.

non distruttiva

Rimuovere le autorizzazioni da uno schema padre non ha alcun effetto sugli schemi figlio. Gli schemi padre e figlio vengono combinati per determinare le autorizzazioni corrette.

Motivo per utilizzare questo: rimuovere accidentalmente le autorizzazioni da uno schema padre non richiede il ripristino separato degli schemi figlio.

Motivo per non utilizzarlo: quando riattiverai in seguito tali autorizzazioni per uno schema principale, queste verranno automaticamente riabilitate per gli schemi figlio.

    
posta Stijn 19.01.2012 - 13:30
fonte

2 risposte

2

È una domanda molto complessa e non esiste la migliore soluzione universale, in genere ogni implementazione sceglie l'approccio migliore in base alle proprie esigenze specifiche.

Consiglierei di leggere di più sulla teoria del controllo di accesso basato sui ruoli per ottenere una migliore comprensione e un quadro più ampio dell'impatto di ciascuna specifica implementazione.

Ecco un elenco di fonti che puoi trovare utili:

  1. " Il modello NIST per il controllo degli accessi basato sui ruoli: verso uno standard unificato "
  2. " Razionale standard RBAC "
  3. Wikipedia panoramica RBAC
  4. Blog di discussione sull'identità di Kim Cameron: link

Come uno degli approcci che posso suggerire è di gestire le tue autorizzazioni / ruoli attraverso l'appartenenza ai gruppi. Ogni utente può essere assegnato a qualsiasi gruppo .. ciascun ruolo può essere assegnato a qualsiasi gruppo. Ciò disaccoppierà i ruoli dagli utenti e ti darà la flessibilità di aggiungere / rimuovere utenti senza influenzare le autorizzazioni degli altri.

    
risposta data 19.01.2012 - 20:07
fonte
1

Normalmente ciò che ho visto fare è una combinazione di entrambi nel modo seguente:

  • Schema genitore ha un insieme di permessi
  • Lo schema figlio ha una serie di permessi di cui un sottoinsieme è ereditato da un genitore.
  • Se Child specifica una particolare autorizzazione nel suo schema, l'impostazione childs ha la precedenza su tutto ciò che potrebbe essere ereditato da un genitore.
  • Se Child non specifica un'autorizzazione particolare, l'impostazione per questa autorizzazione verrà ereditata da un genitore.

Quindi ciò che accadrà è che se il permesso che stai modificando nel genitore viene usato dal bambino senza eseguire l'override, l'autorizzazione per il bambino verrà sovrascritta.

Ma se il bambino ha il proprio valore per la particolare autorizzazione, il cambiamento genitore non avrà alcun effetto sul bambino.

    
risposta data 19.01.2012 - 16:17
fonte

Leggi altre domande sui tag