Mantenere l'applicazione Microsoft 365 conforme in modo continuo allo strumento di automazione della conformità delle app per Microsoft 365

Microsoft 365 App Compliance Automation Tool (ACAT) semplifica i controlli essenziali per la certificazione Microsoft 365. Mantenere la conformità continua per l'applicazione Microsoft 365 usando ACAT. Rimanere aggiornati sugli errori di conformità tramite le notifiche e integrare facilmente ACAT nella pipeline di integrazione continua/distribuzione continua.

Nota

ACAT è attualmente disponibile in anteprima pubblica e supporta solo le applicazioni basate su Azure. Gli aggiornamenti futuri includeranno funzionalità per le app basate su servizi cloud non ospitati da Microsoft. Per eventuali commenti e suggerimenti sull'anteprima pubblica di ACAT, compilare questo modulo. Uno specialista del team di prodotti ACAT ti seguirà il prima possibile.

Ottenere la valutazione di controllo più recente del report di conformità tramite notifiche

Dopo aver creato un report di conformità per l'applicazione o l'ambiente Microsoft 365, ACAT raccoglie automaticamente i dati di conformità ed esegue valutazioni di controllo giornaliere. Inoltre, è possibile ricevere notifiche per eventuali modifiche nelle impostazioni o nelle valutazioni del report.

Ottenere notifiche con il webhook

Creare un webhook per ricevere notifiche da ACAT.

  • Passare a Report a sinistra.

  • Aprire il report per cui si desidera ricevere le notifiche.

  • Selezionare Notifiche dalla barra degli strumenti.

  • Selezionare Crea notifica e quindi scegliere Webhook

    • Nome webhook: identificatore univoco del webhook all'interno del report.
    • URL payload: l'URL del payload è l'URL del server che riceve le richieste POST del webhook da ACAT.
    • Tipo di contenuto: ACAT attualmente supporta solo il tipo di contenuto application/json, che fornisce il payload JSON direttamente come corpo della richiesta POST.
    • Segreto: l'impostazione di un segreto webhook consente di assicurarsi che le richieste POST inviate all'URL del payload provenga da ACAT. Quando il segreto è impostato, ACAT lo usa per creare una firma hash con ogni payload. Questa firma hash è inclusa nelle intestazioni di ogni richiesta come x-acat-signature-256.
    • Verifica SSL: la verifica SSL viene visualizzata solo quando l'URL del payload è un sito sicuro (HTTPS) e consente di garantire che i payload vengano recapitati all'URL del payload in modo sicuro. È consigliabile mantenere selezionata l'opzione Abilita verifica SSL.
    • Eventi di attivazione: sottoscrivere eventi ACAT per ottenere notifiche.

    Creare una notifica webhook

    Consiglio

    Altre informazioni sul payload del webhook.

Ottenere una valutazione rapida della conformità nella pipeline di integrazione continua/distribuzione continua

Oltre all'utilizzo normale del portale e alla ricezione di notifiche aggiornate, ACAT può eseguire una rapida valutazione della conformità all'interno della pipeline di integrazione continua/distribuzione continua (CI/CD). Garantire la conformità continua dell'applicazione Microsoft 365.

In ACAT, le valutazioni di controllo sono valutazioni di conformità strutturate categorizzate in base ai domini di sicurezza della certificazione Microsoft 365, alle famiglie di controlli e ai singoli controlli. Per avviare valutazioni di controllo all'interno dei dati di conformità non elaborati di ACAT, è necessario raccogliere. Tuttavia, alcune di queste informazioni non elaborate sulla conformità potrebbero non essere facilmente accessibili dal punto di vista tecnico. Per affrontare questa sfida, ACAT introduce un concetto noto come "valutazione rapida della conformità". Questa funzionalità è progettata per fornire una rapida valutazione dello stato di conformità, consentendo la raccolta immediata di dati di conformità non elaborati essenziali.

L'implementazione di una valutazione rapida della conformità ha due scopi:

  • Informazioni dettagliate tempestive: facilita la comprensione in tempo reale del comportamento di conformità, garantendo la visibilità rispetto agli standard di sicurezza e alle procedure consigliate di un'applicazione.
  • Integrazione senza problemi: una rapida valutazione della conformità può integrarsi facilmente nella pipeline CI/CD, garantendo che le applicazioni rimangano solide e allineate ai requisiti di conformità.

Integrazione con la pipeline CI/CD di GitHub Actions

Le valutazioni rapide della conformità sono disponibili nella pipeline CI/CD usando la valutazione rapida della certificazione Microsoft 365 GitHub Action. Esistono due usi posibili per questa azione GitHub:

  • Sfruttare la distribuzione più recente nella pipeline CI/CD come stato definitivo per l'applicazione: ACAT esegue valutazioni di conformità rapide in base alla distribuzione più recente all'interno della pipeline. Inoltre, è possibile richiedere ad ACAT di aggiornare i report di conformità corrispondenti in base a questa distribuzione, concedendo valutazioni di controllo complete con aggiornamenti giornalieri.
  • Fare affidamento su un report di conformità esistente come riferimento per l'applicazione.** ACAT utilizza le risorse definite in un report di conformità esistente per eseguire la valutazione rapida della conformità.

Integrazione con la pipeline CI/CD tramite l'API REST ACAT

Ottenere valutazioni rapide della conformità nella pipeline CI/CD tramite l'API REST ACAT.

  • Connettersi alle risorse di Azure con l'autenticazione dell'entità servizio. Seguire questa guida per informazioni su come creare un'entità servizio in grado di accedere alle risorse. Dopo aver creato l'entità servizio, seguire le indicazioni dello strumento della pipeline per archiviare le credenziali. Ad esempio, connettersi a Microsoft Azure con una connessione al servizio ARM.

  • Ottenere l'elenco delle risorse che si vuole usare per la valutazione rapida della conformità.

    $resourceGroupName
    $deploymentName
    
    $resourceIds = @()
    Get-AzResourceGroupDeploymentOperation `
        -ResourceGroupName $resourceGroupName `
        -Name $deploymentName `
    | ForEach-Object {
        if (![String]::IsNullOrEmpty($_.TargetResource)) {
            $resourceIds += $_.TargetResource
        }
    }
    
    • Per acquisire risorse in base ai criteri di gestione delle risorse cloud, ad esempio risorse con tag specifici, risorse in gruppi di risorse specifici e così via, esaminare il Azure PowerShell - Get-AzResource.
    # Get resources with same tag
    $key = "<key-of-your-tag>"
    $value = "<value-of-your-tag>"
    
    $resourceIds = (Get-AzResource -TagName $key -TagValue $value).ResourceId
    
    • Per usare un report di conformità ACAT esistente, fare clic su Report API REST ACAT - Ottieni per ottenere le risorse dalla definizione del report.
    try {
        $token = "<your-Azure-credentials>"
        $reportName = "<report-name>"
        $apiVersion = "2023-02-15-preview"
    
        $header = @{}
        $header["Authorization"] = $token
        $header["x-ms-aad-user-token"] = $token
        $header["accept"] = "application/json"
    
        $uri = "https://management.azure.com/providers/Microsoft.AppComplianceAutomation/reports/" + $reportName + "?api-version=" + $apiVersion
        $response = Invoke-WebRequest $uri `
            -Method GET `
            -Headers $header `
            -ContentType "application/json" `
            -Verbose `
            -UseBasicParsing
    
        $resourceIds = @()
        if ($response.StatusCode -ne 200) {
            Write-Host "Failed to get resources from compliance report: $response"
            return 
        }
    
        $resources = $response.Content | ConvertFrom-Json
        $resourceIds = $resources.properties.resources.resourceId
    }
    catch {
        Write-Output "Failed to get resources from compliance report with exception: $_"
    }
    
  • Usare l'API triggerEvaluation per ottenere una rapida valutazione della conformità per le risorse fornite.

try {
    $token = "<your-Azure-credentials>"
    $resourceIds = "<resource-ids-from-previous-step>"
    $apiVersion = "2023-02-15-preview"

    $header = @{}
    $header["Authorization"] = $token
    $header["x-ms-aad-user-token"] = $token
    $header["accept"] = "application/json"

    $body = @{resourceIds = $resourceIds }

    $uri = "https://management.azure.com/providers/Microsoft.AppComplianceAutomation/triggerEvaluation?api-version=$apiVersion"
    $response = Invoke-WebRequest $uri `
        -Method POST `
        -Headers $header `
        -ContentType "application/json" `
        -Body (ConvertTo-Json $body -Depth 8) `
        -Verbose `
        -UseBasicParsing
    
    # The triggerEvaluation API is asynchronous. Therefore, you need to pull the status to check whether it is completed. 
    # StatusCode 200: OK. The response indicates the quick compliance evaluation for given resource ids is completed.
    # StatusCode 202: Accepted. The response indicates the quick compliance evaluation for given resource ids is triggered and performing in backend. 
    if ($response.StatusCode -eq 200) {
        $result = $response.Content | ConvertFrom-Json
        Write-Host "Successfully get evaluation result:$result"
        return $result
    }
    elseif ($response.StatusCode -eq 202) {
        $retry_url = $response.Headers["Location"]

        do {
            Start-Sleep 10
            Write-Host "retry_url: $retry_url"
            $opResponse = Invoke-WebRequest `
                -Uri $retry_url `
                -ContentType "application/json" `
                -Verbose `
                -Method GET `
                -Headers $header `
                -UseBasicParsing

            if ($opResponse.StatusCode -eq 200) {
                $opResult = $opResponse.Content | ConvertFrom-Json
                Write-Host "Successfully get evaluation result: $opResult"
                return $opResult
            }
            elseif ($opResponse.StatusCode -eq 202) {
                continue
            }
            else {
                Write-Host "Failed to get evaluation result"
                break
            }
        } while ($true)
    }
    else {
        Write-Host "Failed to get compliance evaluation with triggerEvaluation API: $response"
    }
}
catch {
    Write-Output "Failed to get quick compliance assessment with exception: $_"
}
  • Ottenere la valutazione rapida della conformità dal risultato dell'API triggerEvaluation.

Riferimento

Payload webhook

Per i payload del webhook ACAT per ogni evento, contengono alcune proprietà comuni.

Chiave

Obbligatorio?

Tipo

Descrizione

EventDesc

Stringa

Evento specifico che attiva la notifica.

Messaggio

Stringa

Contenuto della notifica. In genere contiene il nome del report come identificatore univoco e il timestamp quando si verifica questo evento.

Dettagli

No

Stringa

Si tratta di contenuto in formato JSON che contiene i dettagli di questa notifica. Prendendo come esempio l'errore di valutazione del controllo, i dettagli includono tutte le responsabilità dei clienti non riuscite per ogni controllo e le risorse interessate.

Trigger api REST ACATValutazione

Nome API: triggerEvaluation

  • Servizio: Automazione della conformità delle app
  • Versione API: 2023-02-15-preview

Ottenere una valutazione rapida della conformità per determinate risorse.

POST https://management.azure.com/providers/Microsoft.AppComplianceAutomation/triggerEvaluation?api-version=2023-02-15-preview
Parametri URI

Nome

In

Obbligatorio

Tipo

Descrizione

api-version

query

True

stringa

Versione dell'API da usare per questa operazione. È possibile usare "2023-02-15-preview"

Intestazione richiesta

Nome

In

Obbligatorio

Tipo

Descrizione

Autorizzazione

Testa

True

stringa

Bearer + " " + Token di accesso

x-ms-aad-user-token

Testa

True

stringa

Bearer + " " + Token di accesso

Content-Type

Testa

True

stringa

value: "application/json"

Corpo della richiesta

Nome

Obbligatorio

Tipo

Descrizione

resourceIds

Vero

matrice di stringhe

Elenco di ID risorsa da valutare

Intestazione risposte

Nome

Tipo

Descrizione

200 OK

La risposta indica che la valutazione rapida della conformità per determinati ID risorsa è stata completata.

202 Accettato

La risposta indica che la valutazione rapida della conformità per determinati ID risorsa viene attivata ed eseguita nel back-end.

Altri codici di stato

ErrorResponse

Risposta di errore.

TriggerEvaluationResponse

Nome

Tipo

Descrizione

triggerTime

stringa

Ora di attivazione della valutazione.

evaluationEndTime

stringa

Ora di fine della valutazione.

resourceIds

string[]

Elenco di ID risorsa da valutare

quickAssessments

Elenco delle valutazioni rapide

QuickAssessment

Nome

Tipo

Descrizione

ID risorsa

stringa

ID risorsa

responsibilityId

stringa

ID responsabilità

Timestamp

stringa

Timestamp della creazione di risorse (UTC).

resourceStatus

ResourceStatus

Stato della valutazione rapida.

displayName

stringa

Nome visualizzato della valutazione rapida.

descrizione

stringa

Descrizione delle valutazioni rapide.

remediationLink

stringa

Collegamento alla procedura di correzione per questa valutazione rapida.