Usar la aprobación de varios Administradores con la API de Microsoft Graph API

La aprobación de varios Administradores (MAA) aplica flujos de trabajo de aprobación en las llamadas API autenticadas de aplicaciones (app-auth) realizadas a través de la API de Microsoft Graph API. Si su organización usa entidades de servicio, scripts de automatización o aplicaciones de terceros para administrar los recursos de Intune, MAA interceptará esas llamadas cuando el recurso de destino está protegido por una directiva de acceso.

En este artículo se explica cómo actualizar la automatización para que funcione con el flujo de trabajo de aprobación de MAA y cómo excluir aplicaciones específicas del cumplimiento cuando un cambio de código no es factible de inmediato.

Importante

MAA es opcional por carga de trabajo para cada inquilino. Esta aplicación solo se aplica a los inquilinos que tienen configuradas las directivas de acceso MAA. No habilita automáticamente el MAA ni cambia los inquilinos que tienen MAA. Para obtener más información sobre cómo configurar directivas de acceso, consulte Usar directivas de acceso para requerir la aprobación de varios administradores.

Qué cambios hay para las llamadas de autenticación de aplicación

Anteriormente, solo las acciones administrativas interactivas (delegadas) estaban sujetas a los flujos de trabajo de aprobación de MAA. Con este cambio, MAA también intercepta las llamadas automatizadas y con scripts que usan tokens de solo aplicación cuando el recurso de destino está protegido por una directiva de acceso.

Si la aplicación realiza llamadas API a recursos protegidos por MAA mediante app-auth y no incluye los encabezados de aprobación necesarios, la llamada devuelve un error HTTP 400. El cuerpo de la respuesta indica que la operación requiere la aprobación de varios Administradores.

Tipos de recursos afectados

Las directivas de acceso de MAA pueden proteger los siguientes tipos de recursos. Si las llamadas de autenticación de aplicación se dirigen a cualquiera de estos recursos y hay una directiva de acceso activa, la automatización se ve afectada:

  • Aplicaciones
  • Directivas de cumplimiento
  • Directivas de configuración
  • Acciones de dispositivo
  • Control de acceso basado en roles
  • Scripts
  • Configuración de inquilinos

MAA solo se aplica a las operaciones que modifican los recursos protegidos (POST, PATCH, PUT, DELETE). Las operaciones de solo lectura (GET) no se ven afectadas.

Requisitos previos

  • Un registro de aplicación con los permisos necesarios de aplicación de Microsoft Graph para los recursos de Intune que administra su aplicación (por ejemplo, DeviceManagementApps.ReadWrite.All).
  • Directivas de acceso MAA configuradas para las cargas de trabajo relevantes. Para obtener más información, consulte Crear una directiva de acceso.
  • Una cuenta de administrador independiente que sea miembro del grupo aprobador para la directiva de acceso. Las aplicaciones no pueden aprobar ni rechazar solicitudes de MAA: solo las cuentas de administrador interactivas pueden aprobar solicitudes.

Paso 1: Enviar una solicitud con un encabezado de justificación

Cuando MAA está habilitado, incluya un encabezado de justificación con la solicitud. El x-msft-approval-justification valor del encabezado debe estar codificado en base64.

En el ejemplo siguiente se crea un recurso de script de PowerShell en Intune e incluye el encabezado de justificación necesario:

POST https://graph.microsoft.com/beta/deviceManagement/deviceManagementScripts
Content-Type: application/json
x-msft-approval-justification: YXBwIG9ubHkgdGVzdA==

{
  "displayName": "My Test Script",
  "description": "Testing MAA with app-only token",
  "scriptContent": "V3JpdGUtT3V0cHV0ICJIZWxsbyBXb3JsZCI=",
  "runAsAccount": "system",
  "fileName": "TestScript.ps1",
  "roleScopeTagIds": ["0"]
}

Sugerencia

El x-msft-approval-justification valor está codificado en base64. Por ejemplo, YXBwIG9ubHkgdGVzdA== se descodifica en app only test. Codifique su propia cadena de justificación antes de enviarla.

Sin el encabezado de justificación, la solicitud da un error que indica que el x-msft-approval-justification encabezado es necesario.

Paso 2: Controlar la respuesta de aprobación

La solicitud devuelve un HTTP 412 (Precondition Failed) con un código de error externo de Microsoft Graph de BadRequest. Esta respuesta es esperada y no indica un problema de permisos: es la forma en que MAA indica que la solicitud se recibió y ahora está esperando su aprobación. Los detalles necesarios para la aprobación se anidan en el mensaje de error.

La respuesta incluye un x-msft-approval-code encabezado que necesita para los pasos restantes. Use la presencia de este encabezado junto con HTTP 412 como señal de que MAA aceptó la solicitud y creó una solicitud de aprobación.

Ejemplo de respuesta:

HTTP/1.1 412 Precondition Failed
x-msft-approval-code: aabb1234-5678-9012-abcd-ef0123456789
Content-Type: application/json

{
  "error": {
    "code": "BadRequest",
    "message": "{\r\n  \"_version\": 3,\r\n  \"Message\": \"Approval Required. Request Approval using the request ID returned as part of the x-msft-approval-code response header. x-msft-approval-code: aabb1234-5678-9012-abcd-ef0123456789 - Operation ID (for customer support): 00000000-0000-0000-0000-000000000000 - Activity ID: <activity-id> - Url: <service-url>\",\r\n  \"CustomApiErrorPhrase\": \"\",\r\n  \"RetryAfter\": null,\r\n  \"ErrorSourceService\": \"\",\r\n  \"HttpHeaders\": \"{\\\"x-msft-approval-code\\\":\\\"aabb1234-5678-9012-abcd-ef0123456789\\\"}\"\r\n}"
  }
}

Extraer el x-msft-approval-code valor de la respuesta. Guarde el método HTTP original, la dirección URL y el cuerpo de la solicitud con este valor, ya que debe volver a enviar la misma solicitud en el paso 4 después de la aprobación.

Paso 3: Espere la aprobación

En este momento, otro administrador del Centro de administración de Microsoft Intune debe revisar y aprobar la solicitud de aprobación. Las aplicaciones no pueden aprobar ni rechazar solicitudes de MAA; solo las cuentas de administrador interactivas pueden aprobarlas.

Puede consultar el estado de la solicitud de aprobación en cualquier momento mediante el código de aprobación:

GET https://graph.microsoft.com/beta/deviceManagement/operationApprovalRequests?$filter=requestId eq 'aabb1234-5678-9012-abcd-ef0123456789'

El status campo indica el estado actual de la solicitud. Los valores comunes incluyen needsApproval, approved, rejectedy cancelled. Espere hasta que cambie el estado antes de approved continuar.

Paso 4: Volver a enviar con el código de aprobación

Una vez aprobada la solicitud, vuelva a enviar la solicitud original. Reemplace el encabezado de justificación por el x-msft-approval-code encabezado y use el código de aprobación del Paso 2:

POST https://graph.microsoft.com/beta/deviceManagement/deviceManagementScripts
Content-Type: application/json
x-msft-approval-code: aabb1234-5678-9012-abcd-ef0123456789

{
  "displayName": "My Test Script",
  "description": "Testing MAA with app-only token",
  "scriptContent": "V3JpdGUtT3V0cHV0ICJIZWxsbyBXb3JsZCI=",
  "runAsAccount": "system",
  "fileName": "TestScript.ps1",
  "roleScopeTagIds": ["0"]
}

La solicitud se completa correctamente y se crea el recurso.

Excluir una aplicación de la aplicación de MAA

Si no puede actualizar inmediatamente la aplicación para incluir el flujo de trabajo de aprobación, puede excluirlo del cumplimiento de MAA en la directiva de acceso. Para configurar una exclusión, edite la directiva de acceso para la carga de trabajo a la que llama la aplicación y agregue la aplicación en la pestaña Exclusiones . Un segundo administrador debe aprobar el cambio antes de que la exclusión surta efecto.

Las exclusiones solo se aplican a las llamadas de autenticación de aplicación (autenticadas por la aplicación) realizadas por la entidad de servicio excluida. Las acciones de administración interactivas (delegadas) en los mismos recursos protegidos aún requieren la aprobación de MAA.

Para obtener más información sobre las exclusiones, incluido el ámbito, los límites y las consideraciones de seguridad, consulte Crear una directiva de acceso.

Supervisar la actividad de MAA para las llamadas de autenticación de aplicación

Los eventos relacionados con MAA (incluidos aprobar, bloquear, aprobar, agregar exclusión y quitar exclusión) se registran en el registro de auditoría de Intune existente. Use el registro de auditoría estándar y la exportación de la Graph API para ver qué llamadas de autenticación de aplicaciones pasan por el MAA y cómo se administran.

Preguntas frecuentes

¿Por qué fallan mis scripts de automatización?

Si la automatización llama a Microsoft Graph y se dirige a recursos protegidos por una directiva de acceso de MAA, el flujo de trabajo de aprobación de MAA interceptará esas llamadas independientemente de si el script usa autenticación delegada o solo de aplicación. Actualice los scripts para incluir los encabezados de justificación y aprobación descritos en este artículo. Si el script usa tokens solo de aplicación (flujo de credenciales de cliente), también puede excluir la aplicación de la directiva de acceso.

¿MAA afecta a las llamadas API de solo lectura?

No. MAA solo se aplica a las operaciones que modifican los recursos protegidos (POST, PATCH, PUT, DELETE). Las solicitudes GET no se ven afectadas.

¿Puede una aplicación aprobar sus propias solicitudes de MAA?

No. Las aplicaciones no pueden aprobar ni rechazar solicitudes de MAA. Una cuenta de administrador interactiva independiente que sea miembro del grupo aprobador debe aprobar la solicitud en el Centro de administración de Microsoft Intune.

¿Cómo puedo comprobar si mi inquilino tiene MAA habilitado?

En el Centro de administración de Microsoft Intune, vaya a Directivas deacceso de aprobación> de variosadministradores de administración de inquilinos>. Si hay directivas de acceso activas enumeradas, MAA está habilitado para esas cargas de trabajo.

¿Puedo desactivar MAA para detener la aplicación?

Las directivas de acceso MAA las pueden administrar los administradores con los permisos adecuados. Sin embargo, Microsoft recomienda encarecidamente mantener MAA habilitado como procedimiento recomendado de seguridad.