Axiomatics proporciona un ciclo de vida de la política de autorización que le ayudará a formular su política ABAC.
- Defina el caso de uso
- Defina los requisitos de autorización del caso de uso en declaraciones en lenguaje natural
- Identifique los atributos que se utilizan en las declaraciones en lenguaje natural
- Identifique de dónde provienen los atributos
- Reproduzca las declaraciones en lenguaje natural como reglas basadas en atributos
- Definir los casos de prueba
- Conecte los puntos: dibuje un diagrama de arquitectura del sistema en general
Veamos tu ejemplo.
Caso de uso
Una librería en línea desea tener un gran acceso a los clientes con respecto a su suscripción. Hay 3 tipos de suscripciones A, B y C.
Requisitos de autorización
- Los clientes obtienen acceso en el tipo de suscripción que elijan.
- Si un libro no aparece en la lista de suscripción, es gratis para todos.
- Cada 15 de cada mes, todos los libros son gratuitos.
Identificar atributos
Atributos de usuario
- rol de usuario, por ejemplo cliente
- plan de suscripción del usuario, por ejemplo, A, B, C
- Opcionalmente estado del cliente (activo, inactivo)
Atributos de recursos
- Plan de suscripción de libros
Atributos de acción
- ID de acción, por ejemplo, ver, eliminar, aprobar ...
Atributos contextuales
- Fecha / Día del mes
Identifique la fuente de los atributos
En esta etapa, usted define si los atributos provienen de una base de datos, un LDAP, un servicio web ... Esto es más un problema de implementación / implementación. En este ejercicio teórico, puedes omitir este paso.
Vuelva a trabajar las declaraciones en lenguaje natural como basadas en atributos
- Un usuario con el rol == cliente puede realizar la acción == descargar en un objeto de tipo == libro si customer.subscription == book.subscription
- Un usuario con el rol == cliente puede realizar la acción == descargar en un objeto de tipo == libro si book.subscription == ''
- Un usuario con el rol == cliente puede realizar la acción == descargar en un objeto de tipo == reservar si date.day == '15'
En conclusión, significa que su modelo RBAC necesita un solo rol, cliente.
Puede usar el lenguaje ALFA para modelar sus políticas y convertirlas en XACML, el control de acceso extensible Lenguaje de marcado.