Conceptos básicos de autorización

La autorización (en ocasiones abreviada como AuthZ) se utiliza para configurar permisos que se usan para evaluar el acceso a recursos o funcionalidades. Por el contrario, la autenticación (abreviada a veces como AuthN) se centra en demostrar que una entidad como un usuario o servicio es quien dice ser.

La autorización puede incluir que se especifique la funcionalidad, los recursos o los datos a los que puede acceder una entidad. La autorización también especifica lo que se puede hacer con los datos. Esta autorización suele denominarse control de acceso.

La autenticación y la autorización son conceptos que no se limitan solo a los usuarios. Los servicios o las aplicaciones demonio se suelen crear para realizar solicitudes de recursos como ellos mismos en lugar de en nombre de un usuario específico. En este artículo, el término "entidad" se usa para hacer referencia a un usuario o una aplicación.

Enfoques de autorización

Hay varios enfoques comunes para administrar la autorización. El control de acceso basado en roles es actualmente el enfoque más común que usa la Plataforma de identidad de Microsoft.

Autenticación como autorización

Posiblemente, la forma más sencilla de autorización es conceder o denegar el acceso en función de si se ha autenticado la entidad que realiza una solicitud. Si el solicitante puede demostrar que es quien dice ser, puede acceder a los recursos o funcionalidades protegidos.

Listas de control de acceso

La autorización mediante listas de control de acceso (ACL) implica el mantenimiento de listas explícitas de entidades específicas que tienen o no acceso a un recurso o funcionalidad. Las ACL ofrecen un control más preciso sobre la autenticación como autorización, pero son difíciles de administrar a medida que aumenta el número de entidades.

Control de acceso basado en rol

El control de acceso basado en roles (RBAC) es posiblemente el enfoque más común para aplicar la autorización en las aplicaciones. Al usar RBAC, los roles se definen para describir los tipos de actividades que una entidad puede realizar. Un desarrollador de aplicaciones concede acceso a roles en lugar de a entidades individuales. A continuación, un administrador puede asignar roles a distintas entidades para controlar cuáles tienen acceso a qué recursos y funcionalidades.

En implementaciones avanzadas de RBAC, los roles se pueden asignar a colecciones de permisos, donde un permiso describe una acción o actividad concreta que se puede realizar. Después, los roles se configuran como combinaciones de permisos. Para determinar el conjunto de permisos de una entidad, se combinan los permisos concedidos a las distintas funciones asignadas a la entidad. Un buen ejemplo de este enfoque es la implementación de RBAC que gobierna el acceso a los recursos de las suscripciones de Azure.

Nota:

Laaplicación RBAC difiere de Azure RBAC y Microsoft Entra RBAC. Los roles personalizados de Azure y los roles integrados forman parte de RBAC de Azure, lo que permite administrar los recursos de Azure. Microsoft Entra RBAC permite la administración de recursos de Microsoft Entra.

Control de acceso basado en atributos

El control de acceso basado en atributos (ABAC) es un mecanismo de control de acceso más específico. Con este enfoque, las reglas se aplican a la entidad, los recursos a los que se accede y al entorno actual. Las reglas determinan el nivel de acceso a los recursos y la funcionalidad. Un ejemplo podría ser permitir que solo los usuarios que sean administradores tengan acceso a los archivos identificados con una etiqueta de metadatos de "administradores solo durante el horario laboral", de 9:00 a 17:00 en días laborales. En este caso, el acceso viene determinado por el examen del atributo del usuario (estado como administrador), el atributo del recurso (etiqueta de metadatos en un archivo) y un atributo de entorno (la hora actual).

Una ventaja de ABAC es que se puede lograr un control de acceso más granular y dinámico mediante evaluaciones de reglas y condiciones sin necesidad de crear un gran número de roles específicos y asignaciones de RBAC.

Un método para obtener el control de acceso basado en atributos con Microsoft Entra ID es usar grupos dinámicos. Los grupos dinámicos permiten a los administradores asignar dinámicamente usuarios a grupos en función de atributos de usuario específicos con los valores deseados. Por ejemplo, se podría crear un grupo Autores en el que todos los usuarios con el puesto Autor se asignen dinámicamente al grupo Autores. Los grupos dinámicos se pueden usar en combinación con RBAC para la autorización allí donde se asignan roles a grupos y se asignan dinámicamente usuarios a grupos.

Azure ABAC es un ejemplo de una solución de ABAC que está disponible actualmente. Azure ABAC se basa en Azure RBAC con la adición de condiciones de asignación de roles basadas en atributos en el contexto de acciones específicas.

Implementación de la autorización

La lógica de autorización a menudo se implementa dentro de las aplicaciones o soluciones donde se requiere control de acceso. En muchos casos, las plataformas de desarrollo de aplicaciones ofrecen middleware u otras soluciones de API que simplifican la implementación de la autorización. Entre los ejemplos se incluye el uso de AuthorizeAttribute en ASP.NET o de Route Guards en Angular.

Para los enfoques de autorización que se basan en información sobre la entidad autenticada, una aplicación evaluará la información que se intercambia durante la autenticación. Por ejemplo, mediante la información proporcionada dentro de un token de seguridad. Si planea usar información de tokens para la autorización, se recomienda seguir esta guía para proteger correctamente las aplicaciones a través de la validación de notificaciones. en Para la información no contenida en un token de seguridad, una aplicación podría realizar llamadas adicionales a recursos externos.

No es estrictamente necesario que los desarrolladores inserten la lógica de autorización completamente dentro de sus aplicaciones. En su lugar, se pueden usar servicios de autorización dedicados para centralizar la implementación y administración de autorizaciones.

Pasos siguientes