M365Con 2027 – conferencia online gratuita · 11–22 Jan 2027 · 120 sessions→ m365con.net

Blog · Mirko Peters

Permisos delegados frente a permisos de aplicación: cómo elegir el modelo adecuado para tu aplicación

By ·

Bienvenido de nuevo al podcast y a nuestra serie continua para ayudarte a dominar Microsoft 365, Azure y las herramientas para desarrolladores que impulsan el ecosistema cloud actual. Si alguna vez has creado una integración, escrito un script o desplegado automatizaciones empresariales con la API de Microsoft Graph, seguro que te has topado con el muro de los permisos. Proteger tu inquilino mient

Automatically translated with AI from the original post. Read the English original

▶ BLOGDelegated vs.Application Permission……M365.FM
Titelbild: Delegated vs. Application Permissions: Choosing the Right Model for Your App

Bienvenido de nuevo al podcast y a nuestra serie continua para ayudarte a dominar Microsoft 365, Azure y las herramientas para desarrolladores que impulsan el ecosistema cloud actual. Si alguna vez has creado una integración, escrito un script o desplegado automatizaciones empresariales con la API de Microsoft Graph, seguro que te has topado con el muro de los permisos. Proteger tu inquilino mientras construyes aplicaciones funcionales es uno de los equilibrios más críticos a los que te enfrentarás como administrador o desarrollador. Elegir entre distintos modelos de permisos afecta directamente a tu postura de seguridad, a la velocidad de despliegue y a la arquitectura general del sistema.

Para profundizar en este tema, hace poco grabamos un episodio en detalle. No te pierdas la discusión completa en audio en Microsoft Graph Permissions and Consent Models Explained. En este artículo complementario ampliaremos esos conceptos: analizaremos las diferencias fundamentales entre permisos delegados y de aplicación, revisaremos los modelos de consentimiento, veremos buenas prácticas y ofreceremos un marco completo para que tus aplicaciones sigan siendo seguras y cumplan la normativa.

Descripción general de los permisos de la API de Microsoft Graph

Antes de entrar en los matices de los flujos de autorización concretos, conviene entender qué son realmente los permisos de la API de Microsoft Graph. En esencia, Microsoft Graph actúa como una puerta de enlace unificada a los datos almacenados en los servicios de Microsoft 365, como Exchange Online, SharePoint, Microsoft Teams, OneDrive y Azure Active Directory (Microsoft Entra ID). En lugar de obligar a los desarrolladores a autenticarse contra múltiples endpoints aislados, Microsoft Graph ofrece un único endpoint de API REST. Sin embargo, como esta API da acceso a prácticamente todos los rincones del patrimonio digital de una organización, protegerla requiere un marco de permisos robusto y granular.

Permisos delegados frente a permisos de aplicación

Cuando registras una aplicación en la plataforma de identidad de Microsoft, debes declarar explícitamente cómo va a interactuar tu aplicación con los recursos. Básicamente, esto se reduce a elegir entre dos tipos principales de permisos: permisos delegados y permisos de aplicación. Estas decisiones determinan cómo se autentica tu aplicación, a quién o a qué representa y los límites de los datos que puede recuperar.

Los permisos delegados están pensados para aplicaciones de cliente o de cara al usuario, como aplicaciones web de una sola página, aplicaciones móviles o utilidades de escritorio, en las que hay un usuario que ha iniciado sesión y está presente. En este modelo, tu aplicación actúa *en nombre de* el usuario. La aplicación solo puede acceder a los datos y realizar las acciones para las que el propio usuario tiene derechos. Cuando un usuario abre la aplicación, se le pide que inicie sesión y conceda su consentimiento de forma explícita, lo que genera un token de acceso de OAuth 2.0 que contiene tanto la identidad del usuario como los ámbitos consentidos.

Los permisos de aplicación, en cambio, los utilizan servicios en segundo plano, daemons, web jobs y runbooks automatizados que funcionan con independencia de cualquier contexto de usuario. Aquí, la aplicación se ejecuta con su propia identidad. Utiliza credenciales de cliente, como un secreto de cliente, un par de claves de certificado público/privado o una identidad administrada, para obtener de Azure AD un token de acceso solo de aplicación. Como ningún usuario humano está delante del teclado para autenticarse, estos permisos abarcan recursos de todo el inquilino. Por ello, conllevan riesgos de seguridad considerablemente mayores y siempre requieren el consentimiento explícito de un administrador del inquilino.

Diferencias clave y casos de uso

Entender cuándo aplicar cada modelo de permisos evita cuellos de botella en la arquitectura y vulnerabilidades de seguridad. Veamos un breve desglose comparativo:

Elegir el modelo correcto depende por completo de la arquitectura de tu aplicación. Por ejemplo, si estás creando un panel interactivo que muestra el perfil de un usuario y su bandeja de entrada personal, debes usar permisos delegados. En cambio, si desarrollas un script automatizado que analiza todos los buzones de la organización a medianoche para auditorías de cumplimiento, necesitas permisos de aplicación.

Permisos delegados en Microsoft Graph

Cómo funcionan los permisos delegados

El acceso delegado está muy ligado a la identidad del usuario. Cuando tu aplicación solicita un permiso delegado, en esencia está pidiendo al servidor de autorización permiso para suplantar al usuario que ha iniciado sesión, dentro de límites definidos. El token de acceso devuelto mediante el flujo de código de autorización de OAuth contiene notificaciones de ámbito específicas que reflejan tanto los derechos propios del usuario como los permisos solicitados por la aplicación.

Escenarios habituales para permisos delegados

Los permisos delegados impulsan la mayoría de las integraciones de productividad del día a día. Por ejemplo, si una aplicación empresarial de notas necesita sincronizar archivos con la cuenta OneDrive de un usuario, solicita el ámbito Files.ReadWrite. Si el usuario no tiene permiso para acceder a un documento concreto, la API de Graph rechazará la solicitud, aunque el ámbito de la aplicación lo permita técnicamente. De forma similar, las aplicaciones que usan el SDK de Microsoft Graph para enviar notificaciones automáticas por correo en nombre de un usuario aprovechan ámbitos delegados como Mail.Send.

Consideraciones de seguridad y consentimiento

Aunque los permisos delegados son, por naturaleza, más seguros que los permisos de aplicación a nivel de inquilino, porque están limitados por las restricciones del usuario, siguen presentando desafíos de seguridad particulares. Si una aplicación solicita ámbitos demasiado amplios, como acceso completo al buzón y al perfil de directorio de un usuario, un ataque de phishing exitoso o el compromiso de la aplicación podría exponer datos personales sensibles. Los desarrolladores deben aplicar estrictamente el principio de mínimo privilegio, solicitando únicamente los ámbitos específicos necesarios para la funcionalidad inmediata.

Permisos de aplicación en Microsoft Graph

Cómo funcionan los permisos de aplicación

Los permisos de aplicación eliminan el elemento humano de la ecuación de autenticación. En lugar de interactuar con una solicitud de inicio de sesión, la aplicación se autentica directamente con Microsoft Entra ID mediante credenciales de cliente. El token resultante contiene roles de aplicación en lugar de ámbitos delegados, lo que concede a la entidad de servicio un acceso amplio y sin restricciones a los recursos de todo el inquilino.

Cuándo usar permisos de aplicación

Debes restringir los permisos de aplicación estrictamente a cargas de trabajo de backend, demonios sin supervisión e integraciones entre sistemas. Algunos ejemplos son los motores de aprovisionamiento automático de usuarios, los sistemas centralizados de copia de seguridad, las herramientas de respuesta a incidentes de seguridad y los scripts de migración de inquilinos.

Consentimiento de administrador e implicaciones de seguridad

Como los permisos de aplicación eluden las restricciones de cada usuario y conceden acceso a nivel de inquilino, los usuarios normales no pueden consentirlos. Solo un administrador con privilegios puede conceder el consentimiento de aplicación. Una configuración incorrecta de los permisos de aplicación, como conceder Directory.ReadWrite.All o Mail.ReadWrite.All a una aplicación en segundo plano no confiable o mal programada, puede dejar todo un inquilino de Microsoft 365 expuesto a un compromiso total. Audita con regularidad las entidades de servicio de tus aplicaciones empresariales.

Pros y contras de los permisos de la API de Microsoft Graph

Pros

Desventajas

Modelos de consentimiento y buenas prácticas

Consentimiento de usuario frente a consentimiento de administrador en Microsoft Graph

Gestionar cómo se obtiene el consentimiento es clave para la gobernanza de la organización. El consentimiento de usuario permite a cada persona autorizar a las aplicaciones a acceder a sus datos personales. El consentimiento de administrador traslada el punto de aprobación a los administradores de TI, que evalúan las solicitudes de las aplicaciones en nombre de toda la organización. Las líneas base de seguridad empresariales modernas suelen deshabilitar por completo el consentimiento de usuario, de modo que toda incorporación de aplicaciones pasa por flujos formales de aprobación previa por parte del administrador.

Impacto de las directivas del inquilino en los permisos

Las directivas del inquilino empresarial pueden alterar de forma fundamental el comportamiento de tu aplicación en tiempo de ejecución. Si un administrador ha aplicado directivas estrictas de Conditional Access, como exigir autenticación multifactor (MFA) o dispositivos unidos a Azure AD híbrido y conformes, una aplicación que intente obtener un token de Graph sin cumplir esos criterios será bloqueada. Los desarrolladores deben diseñar sus aplicaciones para gestionar los errores de obtención de tokens con elegancia y ofrecer pasos claros de corrección.

Estrategias para un flujo de consentimiento fluido

Para evitar fricciones con los usuarios y bloqueos administrativos, planifica tu estrategia de permisos antes de escribir código. Implementa patrones de consentimiento incremental: tu aplicación solicita al principio los permisos básicos de identidad y pide permisos de recursos específicos solo cuando el usuario accede a esas funciones concretas. Utiliza flujos automatizados de aprobación previa en Microsoft Entra ID para agilizar el desarrollo sin renunciar a un control de seguridad estricto.

Errores comunes con los permisos de la API de Microsoft Graph

Lista de comprobación de permisos de la API de Microsoft Graph

Usa esta lista de comprobación práctica para guiar a tu equipo en el diseño, la implementación y la auditoría de los permisos de la API de Microsoft Graph de forma segura:

Conclusión

Orientarse en los permisos de la API de Microsoft Graph no tiene por qué ser una fuente de frustración. Si entiendes con claridad las diferencias operativas entre los permisos delegados (que requieren un usuario que haya iniciado sesión y funcionan dentro de los límites de ese usuario) y los permisos de aplicación (que se ejecutan en segundo plano sin esas restricciones y requieren consentimiento de administrador), podrás diseñar soluciones seguras y escalables. Aplicar el principio de mínimo privilegio, auditar con rigor y aprovechar las herramientas de gobernanza empresarial mantendrá tu entorno de Microsoft 365 seguro sin frenar la innovación.

Para más orientación experta, estrategias reales y análisis en profundidad sobre la seguridad de tu entorno en la nube, no dejes de escuchar nuestro desglose completo en audio del episodio relacionado: Microsoft Graph Permissions and Consent Models Explained. Mantén tus permisos bien ajustados, tus credenciales seguras, ¡y feliz programación!

Microsoft Graph Microsoft Entra ID Microsoft 365 Exchange Online OneDrive SharePoint Microsoft Teams

Related articles

RSS