PERMIS (PrivilEge and Role Management Infrastructure Standards) es un sofisticado sistema de autorización basado en políticas que implementa una versión mejorada del modelo estándar de control de acceso basado en roles ( RBAC ) del Instituto Nacional de Estándares y Tecnología ( NIST ) de EE. UU . PERMIS admite la asignación distribuida de roles y atributos a los usuarios mediante múltiples autoridades de atributos distribuidos, a diferencia del modelo NIST que asume la asignación centralizada de roles a los usuarios. PERMIS proporciona una infraestructura de gestión de privilegios ( PMI ) criptográficamente segura que utiliza tecnologías de cifrado de clave pública y certificados de atributos X.509 para mantener los atributos de los usuarios. PERMIS no proporciona ningún mecanismo de autenticación, pero deja que la aplicación determine qué utilizar. La fortaleza de PERMIS proviene de su capacidad para integrarse en prácticamente cualquier aplicación y cualquier esquema de autenticación como Shibboleth (Internet2) , Kerberos , nombre de usuario / contraseñas, certificados de proxy Grid e Infraestructura de clave pública ( PKI ).
Como sistema RBAC estándar, las principales entidades de PERMIS son
- una política de autorización,
- un conjunto de usuarios,
- un conjunto de administradores (autoridades de atributos) que asignan roles / atributos a los usuarios,
- un conjunto de recursos que deben protegerse,
- un conjunto de acciones sobre recursos,
- un conjunto de reglas de control de acceso,
- y obligaciones y limitaciones opcionales.
La política de PERMIS se basa en el lenguaje de marcado extensible ( XML ) y tiene reglas para las asignaciones de roles de usuario y las asignaciones de privilegios de roles, estas últimas contienen obligaciones opcionales que se devuelven a la aplicación cuando un usuario obtiene acceso a un recurso. Una política PERMIS se puede almacenar como un archivo XML de texto simple o como un atributo dentro de un certificado de atributo X.509 firmado para brindar protección de integridad y detección de manipulación. Los roles y atributos de usuario pueden guardarse en certificados de atributos X.509 firmados y almacenados en directorios de Protocolo ligero de acceso a directorios ( LDAP ) o repositorios de creación y control de versiones distribuidos ( WebDAV ) basados en la web , o pueden crearse a pedido como afirmación de seguridad. Aserciones de atributos de lenguaje de marcado ( SAML ).
El motor de autorización de PERMIS consta de dos componentes: un servicio de validación de credenciales que valida los roles de los usuarios de acuerdo con las reglas de asignación de roles de usuario, y el punto de decisión de políticas (PDP) que evalúa las solicitudes de acceso de los usuarios de acuerdo con las reglas de asignación de permisos de roles (o reglas de control de acceso). El acceso a un recurso depende de los roles / atributos asignados al usuario y las asignaciones de permisos de roles, que pueden contener restricciones basadas en la solicitud de acceso del usuario (por ejemplo, "imprimir menos de 10 páginas") y el entorno (por ejemplo, la hora del día ). PERMIS puede funcionar en modo push (la aplicación envía las asignaciones de atributos de usuario a PERMIS) o en modo pull (PERMIS obtiene las asignaciones de atributos por sí mismo de los repositorios LDAP / WebDAV o las autoridades de atributos SAML). PERMIS es un proyecto de código abierto y el código fuente de Java se puede descargar desde http://www.openpermis.info . Alternativamente, las bibliotecas Java precompiladas se pueden descargar desde http://sec.cs.kent.ac.uk/permis/ .
PERMIS es único con su soporte para proteger criptográficamente los atributos / roles del usuario y la política, lo que garantiza su integridad y los protege de ser manipulados. Continuamente se le agregan nuevas funciones , como una interfaz estándar de Lenguaje de marcado de control de acceso extensible ( XACML ) que permite que los PDP de PERMIS y XACML se intercambien sin problemas, la capacidad de aceptar afirmaciones de atributos SAML , soporte para la delegación dinámica de autoridad y separación de funciones. políticas, y la reciente incorporación de una interfaz de lenguaje natural controlada (en inglés) para escribir políticas PERMIS simples.
Ver también
- Autorización
- Gestión de identidad
- Servicio de autenticación y autorización de Java (JAAS)
- Protocolo ligero de acceso a directorios (LDAP)
- RBAC (control de acceso basado en roles)
- X.509
- Santo y seña
- SAML (lenguaje de marcado de aserción de seguridad)
- Kerberos
- XACML (Lenguaje de marcado de control de acceso extensible)
- PKI (infraestructura de clave pública)