- Introducción a IAM
- ¿Qué es la autorización?
¿Qué es la autorización?
La autorización es el proceso para dar a alguien la capacidad de acceder a un recurso.
Por supuesto, esta definición puede sonar oscura, pero muchas situaciones de la vida real pueden ayudar a ilustrar lo que significa la autorización para que usted pueda aplicar esos conceptos a los sistemas informáticos.
Un buen ejemplo es la propiedad de una casa. El propietario tiene todos los derechos de acceso a la propiedad (el recurso), pero puede conceder a otras personas el derecho a acceder a él. Dice que el propietario autoriza a las personas a acceder a ella. Este sencillo ejemplo nos permite introducir algunos conceptos en el contexto de la autorización.
Por ejemplo, acceder a la casa es un permiso, es decir, una acción que se puede realizar sobre un recurso. Otros permisos sobre la casa pueden ser amueblarla, limpiarla, repararla, etc.
Un permiso se convierte en un privilegio (o derecho) cuando se asigna a alguien. Por lo tanto, si asigna el permiso para amueblar su casa a su decorador de interiores, le está concediendo ese privilegio.
Por otro lado, el decorador puede pedir permiso para amueblar su casa. En este caso, el permiso solicitado es un ámbito, es decir, la acción que el decorador quiere realizar en su casa.
A veces, la autorización está algo relacionada con la identidad. Piense en el proceso de subir a un avión. Tiene su boleto de embarque que indica que está autorizado a volar con ese avión. Sin embargo, no basta con que el agente de la puerta de embarque le deje subir a bordo. También necesita su pasaporte que acredite su identidad. En este caso, el agente de la puerta de embarque compara el nombre del pasaporte con el del boleto de embarque y lo deja pasar si coinciden.
En el contexto de la autorización, su nombre es un atributo de su identidad. Otros atributos son su edad, su idioma, su tarjeta de crédito y cualquier otra cosa que sea pertinente en un escenario específico.
Su nombre escrito en el pasaporte es un reclamo, es decir, una declaración que afirma que usted tiene ese atributo. Alguien que lea su nombre en su pasaporte puede estar seguro de su nombre porque confía en el gobierno que emitió su pasaporte.
El boleto de embarque, junto con la prueba de identidad de los consumidores, representa una especie de “token de acceso” que otorga derechos de acceso para subir al avión.
En las situaciones descritas anteriormente, se puede ver que el acto de autorizar permite a las entidades ejecutar tareas que otras entidades no pueden completar.
Los sistemas informáticos que utilizan la autorización funcionan de manera similar.
Gestión de la autorización en un sistema informático
En los sistemas informáticos, las reglas de autorización forman parte de una disciplina informática denominada Gestión de identidades y accesos (IAM). Dentro de IAM, la autorización y la autenticación ayudan a los administradores del sistema a controlar quién tiene acceso a los recursos del sistema y a establecer los privilegios de los clientes. La forma en que los sistemas informáticos se ocupan de los servicios de autorización es muy similar a un proceso de control de acceso en el mundo real.
Caso de uso de la autorización
Considere una herramienta de colaboración como Google Docs.
La aplicación permite crear y compartir documentos. Otros permisos incluyen la posibilidad de actualizar, eliminar o comentar un documento. Si eres el propietario de un documento, puedes compartirlo con otra persona y definir una o varias políticas de acceso. Por ejemplo, puede compartir su documento con alguien permitiéndole simplemente añadir comentarios.
En esta situación:
Recurso: es el documento
Propietario del recurso: es el usuario que crea un documento, el propietario del documento
Usuario autorizado: es el usuario al que el propietario del recurso le da derechos de comentario:
El siguiente diagrama representa la autorización de acceso al recurso:
Definición de autorización mediante estrategias de autorización
Existen diferentes estrategias de autorización que los sistemas informáticos aprovechan durante la implementación de las aplicaciones. Los más destacados son el control de acceso basado en roles (Role-Based Access Control, RBAC) y el control de acceso basado en atributos (Attribute-Based Access Control, ABAC). Recientemente, Auth0 ha estado investigando y resolviendo el control de acceso basado en relaciones (Relationship Based Access Control, ReBAC). Existen otras múltiples alternativas, como el Control de acceso basado en gráficos (Graph-Based Access Control, GBAC) y el Control de acceso discrecional (Discretionary Access Control, DAC). Cada una de estas estrategias ayudará a los desarrolladores de aplicaciones a lidiar con diferentes requisitos de autorización y servicios de autorización.
Control de acceso basado en atributos (ABAC) y autorización
Cuando se utiliza ABAC, un sistema informático define si un usuario tiene suficientes privilegios de acceso para ejecutar una acción basándose en un rasgo (atributo o reclamo) asociado a ese usuario. Un ejemplo de uso de este proceso de autorización es una tienda online que vende bebidas alcohólicas. El usuario de la tienda online debe registrarse y acreditar su edad. En el contexto de la autorización, esta situación puede describirse de la siguiente manera:
La tienda online es el propietario del recurso
La bebida alcohólica es el recurso
La edad del consumidor validada durante el proceso de registro es una reclamación, es decir, la prueba del atributo de edad del usuario
La presentación de la declaración de edad permite a la tienda tramitar las solicitudes de acceso para comprar alcohol. Por lo tanto, en este caso, la decisión de conceder el acceso al recurso se toma en función del atributo del usuario.
Control de acceso basado en roles (RBAC) y autorización
El RBAC, por otro lado, trata la autorización como permisos asociados a los roles y no directamente a los usuarios. Un rol no es más que un conjunto de permisos. Por ejemplo, imagine que trabaja como director de departamento en una organización. En esta situación, debe tener permisos que reflejen su rol, por ejemplo, la capacidad de aprobar solicitudes de vacaciones y de gastos, asignar tareas, etc. Para conceder estos permisos, un gestor del sistema crearía primero un rol llamado “Gestor” (o similar). Entonces, le asignarían estos permisos a este rol y le asociarían el rol de “Gestor”. Por supuesto, otros usuarios que necesiten el mismo conjunto de permisos pueden ser asociados a ese rol.
La ventaja de usar RBAC es que la gestión de los privilegios de autorización se hace más fácil porque los administradores del sistema pueden tratar con los usuarios y los permisos en masa en lugar de tener que tratar con ellos uno por uno.
Control de acceso basado en relaciones (ReBAC) y autorización
El control de acceso basado en la relación examina la siguiente cuestión en relación con la autorización: “¿Tiene este usuario una relación suficiente con este objeto o acción como para poder acceder a él?” La relación puede venir a través de un atributo del usuario, como ser miembro de un grupo de roles relacionados con el objeto, o tener una relación directa, como ser compartido en un documento. A veces, un recorrido por un gráfico de grupos, roles, organizaciones y objetos requiere explorar muchos nodos para establecer una relación entre un usuario y lo que intenta hacer. Qué relaciones son críticas para obtener acceso y los permisos que esas relaciones otorgan depende del implementador del sistema ReBAC.
Recientemente, Auth0 ha lanzado una vista previa de la comunidad de desarrolladores para nuestro próximo producto Auth0 Fine Grained Authorization, basado en ReBAC. Puede obtener más información en nuestra página de vista previa para desarrolladores de Fine Grained Authorization.
¿Quiere saber más?
Siga leyendo en nuestra página de Introducción a IAM para explorar más temas en torno a la gestión de identidades y accesos.
Table of contents
- Gestión de la autorización en un sistema informático
- Caso de uso de la autorización
- Definición de autorización mediante estrategias de autorización
- Control de acceso basado en atributos (ABAC) y autorización
- Control de acceso basado en roles (RBAC) y autorización
- Control de acceso basado en relaciones (ReBAC) y autorización
Resolver su autorización
Vea este seminario web para ver cómo una empresa resolvió sus problemas de autenticación con Auth0.
Ver el seminario webQuick assessment
¿Por qué razones utilizaría la autorización para controlar un recurso informático? (seleccione todas las que correspondan)
Quick assessment
¿Qué estrategia de autorización permite crear colecciones de permisos que se pueden asignar o eliminar fácilmente a un usuario de una sola vez?