Usare l'approvazione di più amministrazioni con l'API Graph di Microsoft

Multi Amministrazione Approval (MAA) impone flussi di lavoro di approvazione sulle chiamate API autenticate dall'applicazione (app-auth) effettuate tramite Microsoft API Graph. Se l'organizzazione usa entità servizio, script di automazione o applicazioni di terze parti per gestire le risorse di Intune, tali chiamate vengono intercettate da MAA quando la risorsa di destinazione è protetta da un criterio di accesso.

Questo articolo spiega come aggiornare l'automazione in modo da funzionare con il flusso di lavoro di approvazione di MAA e come escludere applicazioni specifiche dall'applicazione quando una modifica del codice non è immediatamente fattibile.

Importante

MAA è un consenso esplicito per carico di lavoro per ogni tenant. Questa applicazione si applica solo ai tenant in cui sono configurati criteri di accesso MAA. Non abilita automaticamente MAA o modifica i tenant con MAA. Per altre informazioni sulla configurazione dei criteri di accesso, vedere Usare i criteri di accesso per richiedere l'approvazione di più amministratori.

Cosa cambia per le chiamate di autenticazione delle app

In precedenza, solo le azioni amministrative interattive (delegate) erano soggette ai flussi di lavoro di approvazione di MAA. Con questa modifica, le chiamate automatizzate e con script che usano token solo app vengono intercettate da MAA anche quando la risorsa di destinazione è protetta da un criterio di accesso.

Se l'applicazione effettua chiamate API a risorse protette da MAA usando app-auth e non include le intestazioni di approvazione necessarie, la chiamata restituisce un errore HTTP 400. Il corpo della risposta indica che l'operazione richiede l'approvazione di più amministratori.

Tipi di risorse interessati

I criteri di accesso MAA possono proteggere i tipi di risorse seguenti. Se le chiamate di autenticazione delle app hanno come destinazione una di queste risorse ed è attivo un criterio di accesso, l'automazione viene influenzata:

  • App
  • Criteri di conformità
  • Criteri di configurazione
  • Azioni del dispositivo
  • Controllo dell'accesso basato sui ruoli
  • Script
  • Configurazione del tenant

MAA si applica solo alle operazioni che modificano le risorse protette (POST, PATCH, PUT, DELETE). Le operazioni di sola lettura (GET) non sono interessate.

Prerequisiti

  • Una registrazione di app con le autorizzazioni dell'applicazione Microsoft Graph necessarie per le risorse di Intune gestite dall'app (ad esempio, DeviceManagementApps.ReadWrite.All).
  • Criteri di accesso MAA configurati per i carichi di lavoro pertinenti. Per altre informazioni, vedere Creare un criterio di accesso.
  • Un account amministratore distinto che sia membro del gruppo approvatore per i criteri di accesso. Le applicazioni non possono approvare o rifiutare le richieste di accesso a Microsoft Ama, solo gli account amministratore interattivi possono approvare le richieste.

Passaggio 1: inviare una richiesta con un'intestazione di giustificazione

Quando MAA è abilitato, includere un'intestazione di giustificazione nella richiesta. Il valore dell'intestazione x-msft-approval-justification deve avere una codifica Base64.

Nell'esempio seguente viene creata una risorsa script di PowerShell in Intune e viene inclusa l'intestazione di giustificazione richiesta:

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"]
}

Consiglio

Il x-msft-approval-justification valore ha una codifica Base64. Ad esempio, YXBwIG9ubHkgdGVzdA== decodifica in app only test. Codifica la tua stringa di giustificazione prima dell'invio.

Senza l'intestazione justification, la richiesta ha esito negativo con un errore che indica che l'intestazione x-msft-approval-justification è necessaria.

Passaggio 2: Gestire la risposta di approvazione

La richiesta restituisce un HTTP 412 (Precondition Failed) con un codice di errore Microsoft Graph esterno di BadRequest. Questa risposta è prevista e non indica un problema di autorizzazioni, ma è il modo in cui MAA segnala che la richiesta è stata ricevuta ed è ora in attesa di approvazione. I dettagli necessari per l'approvazione sono nidificati nel messaggio di errore.

La risposta include un'intestazione x-msft-approval-code necessaria per i passaggi rimanenti. Usare la presenza di questa intestazione insieme a HTTP 412 come segnale che MAA ha accettato la richiesta e creato una richiesta di approvazione.

Risposta di esempio:

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}"
  }
}

Estrarre il x-msft-approval-code valore dalla risposta. Salvare il metodo HTTP originale, l'URL e il corpo della richiesta con questo valore perché è necessario inviare nuovamente la stessa richiesta nel passaggio 4 dopo l'approvazione.

Passaggio 3: attendere l'approvazione

A questo punto, la richiesta di approvazione deve essere esaminata e approvata da un altro amministratore nell'interfaccia di amministrazione di Microsoft Intune. Le applicazioni non possono approvare o rifiutare le richieste MAA, solo gli account amministratore interattivi possono approvarle.

È possibile eseguire query sullo stato della richiesta di approvazione in qualsiasi momento usando il codice di approvazione:

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

Il status campo indica lo stato corrente della richiesta. I valori comuni includono needsApproval, approved, , rejectede cancelled. Attendere che lo stato cambi in approved prima di procedere.

Passaggio 4: invia nuovamente con il codice di approvazione

Dopo l'approvazione della richiesta, inviare nuovamente la richiesta originale. Sostituisci l'intestazione di giustificazione con l'intestazione x-msft-approval-code e usa il codice di approvazione del passaggio 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 richiesta viene completata correttamente e la risorsa viene creata.

Escludere un'applicazione dall'applicazione di MAA

Se non è possibile aggiornare immediatamente l'applicazione per includere il flusso di lavoro di approvazione, è possibile escluderla dall'imposizione di MAA nei criteri di accesso. Per configurare un'esclusione, modificare i criteri di accesso per il carico di lavoro chiamato dall'app e aggiungere l'applicazione nella scheda Esclusioni . Un secondo amministratore deve approvare la modifica prima che l'esclusione abbia effetto.

Le esclusioni si applicano solo alle chiamate app-auth (autenticate dall'applicazione) effettuate dall'entità servizio esclusa. Le azioni di amministrazione interattive (delegate) sulle stesse risorse protette richiedono ancora l'approvazione di MAA.

Per altre informazioni sulle esclusioni, inclusi l'ambito, i limiti e le considerazioni sulla sicurezza, vedere Creare un criterio di accesso.

Monitorare l'attività di MAA per le chiamate di autenticazione delle app

Gli eventi correlati a MAA, tra cui approvazione, blocco, passaggio, esclusione, aggiunta ed esclusione, vengono registrati nel log di controllo di Intune esistente. Usare il log di controllo standard e l'esportazione dell'API Graph per vedere quali chiamate di autenticazione delle app passano attraverso MAA e come vengono gestite.

Domande frequenti

Perché gli script di automazione hanno esito negativo?

Se l'automazione chiama Microsoft Graph e ha come destinazione risorse protette da un criterio di accesso di Microsoft Access, tali chiamate vengono intercettate dal flusso di lavoro di approvazione di Microsoft Assistente di Microsoft Advertising indipendentemente dal fatto che lo script usi l'autenticazione delegata o solo dell'app. Aggiornare gli script in modo da includere le intestazioni di giustificazione e approvazione descritte in questo articolo. Se lo script usa token solo app (flusso di credenziali client), è anche possibile escludere l'applicazione dai criteri di accesso.

MAA influisce sulle chiamate API di sola lettura?

No. MAA si applica solo alle operazioni che modificano le risorse protette (POST, PATCH, PUT, DELETE). Le richieste GET non sono interessate.

Un'applicazione può approvare le proprie richieste di MAA?

No. Le applicazioni non possono approvare o rifiutare le richieste di accesso a Microsoft Advertising. Un account amministratore interattivo separato membro del gruppo approvatore deve approvare la richiesta nell'interfaccia di amministrazione di Microsoft Intune.

Ricerca per categorie verificare se nel tenant è abilitato MAA?

Nell'interfaccia di amministrazione di Microsoft Intune, passare a Amministrazione> tenantCriteri di accessodi più Amministrazione approvazione>. Se sono presenti criteri di accesso attivi, MAA è abilitato per tali carichi di lavoro.

È possibile disattivare MAA per interrompere l'applicazione?

I criteri di accesso MAA possono essere gestiti dagli amministratori con le autorizzazioni appropriate. Tuttavia, Microsoft consiglia vivamente di mantenere abilitato MAA come procedura consigliata per la sicurezza.