Axiomatics fornisce un ciclo di vita della politica di autorizzazione che ti aiuterà a formulare la tua politica ABAC.
- Definisci il caso d'uso
- Definisci i requisiti di autorizzazione del caso d'uso in dichiarazioni linguistiche naturali
- Identifica gli attributi utilizzati nelle dichiarazioni di linguaggio naturale
- Identifica da dove provengono gli attributi
- Rielaborare le istruzioni in linguaggio naturale come regole basate sugli attributi
- Definisci i casi di test
- Collega i punti: disegna un diagramma di architettura dell'intero sistema
Analizziamo il tuo esempio.
Usa caso
Un negozio di libri online vuole un grande accesso ai clienti per quanto riguarda il loro abbonamento. Esistono 3 tipi di abbonamento A, B e C.
Requisiti di autorizzazione
- I clienti ottengono l'accesso nel tipo di abbonamento che scelgono.
- Se un libro non è elencato nell'elenco delle iscrizioni è gratuito per tutti.
- Ogni 15 di ogni mese tutti i libri sono gratuiti.
Identifica attributi
Attributi utente
- Ruolo utente ad es. cliente
- Piano di abbonamento utente, ad es. A, B, C
- Facoltativamente lo stato del cliente (attivo, non attivo)
Attributi di risorse
- Piano di iscrizione al libro
Attributi di azione
- ID azione, ad es. visualizza, elimina, approva ...
Attributi contestuali
- Data / giorno del mese
Identifica la fonte degli attributi
In questa fase si definisce se gli attributi provengono da un database, da un LDAP, da un servizio Web ... Questo è più un problema di implementazione / distribuzione. In questo esercizio teorico, puoi saltare questo passaggio.
Rilancia le dichiarazioni linguistiche naturali come basate sugli attributi
- Un utente con il ruolo == cliente può eseguire l'azione == download su un oggetto di tipo == libro se customer.subscription == book.subscription
- Un utente con il ruolo == cliente può eseguire l'azione == download su un oggetto di tipo == book se book.subscription == ''
- Un utente con il ruolo == cliente può eseguire l'azione == download su un oggetto di tipo == book if date.day == '15'
In conclusione significa che il tuo modello RBAC ha bisogno di un singolo ruolo, cliente.
Puoi utilizzare la lingua ALFA per modellare le tue norme e convertirle in XACML, il controllo di accesso eXtensible Markup Language.