Freigeben über


Fortlaufende Einhaltung von Microsoft 365-Anwendungen mit dem App Compliance Automation Tool für Microsoft 365

Das Microsoft 365 App Compliance Automation Tool (ACAT) optimiert die wesentlichen Kontrollen für die Microsoft 365-Zertifizierung. Sorgen Sie für kontinuierliche Compliance für Ihre Microsoft 365-Anwendung mithilfe von ACAT. Bleiben Sie über Benachrichtigungen über Compliancefehler auf dem Laufenden, und integrieren Sie ACAT nahtlos in Ihre Continuous Integration/Continuous Deployment-Pipeline.

Hinweis

ACAT befindet sich derzeit in der öffentlichen Vorschau und unterstützt nur Anwendungen, die auf Azure basieren. Zukünftige Updates umfassen Funktionen für Apps, die auf nicht von Microsoft gehosteten Clouddiensten basieren. Um Feedback zur öffentlichen Vorschauversion von ACAT zu erhalten, füllen Sie bitte dieses Formular aus. Ein ACAT-Produktteam-Spezialist wird so bald wie möglich mit Ihnen nachholen.

Abrufen der neuesten Kontrollbewertung Ihres Complianceberichts über Benachrichtigungen

Nachdem Sie einen Compliancebericht für Ihre Microsoft 365-Anwendung oder -Umgebung erstellt haben, sammelt ACAT automatisch Compliancedaten und führt tägliche Kontrollbewertungen durch. Darüber hinaus können Sie Benachrichtigungen über Änderungen an Berichtseinstellungen oder Bewertungen erhalten.

Abrufen von Benachrichtigungen mit Webhook

Erstellen Sie einen Webhook, um Benachrichtigungen von ACAT zu empfangen.

  • Wechseln Sie auf der linken Seite zu Berichte .

  • Öffnen Sie den Bericht, für den Sie Benachrichtigungen erhalten möchten.

  • Wählen Sie auf der Symbolleiste Benachrichtigungen aus.

  • Wählen Sie Benachrichtigung erstellen und dann Webhook aus.

    • Webhookname: Dies ist der eindeutige Bezeichner des Webhooks in diesem Bericht.
    • Nutzlast-URL: Die Nutzlast-URL ist die URL des Servers, der Webhook-POST-Anforderungen von ACAT empfängt.
    • Inhaltstyp: ACAT unterstützt derzeit nur den Inhaltstyp application/json, der die JSON-Nutzlast direkt als Textkörper der POST-Anforderung übermittelt.
    • Geheimnis: Wenn Sie ein Webhookgeheimnis festlegen, können Sie sicherstellen, dass POST-Anforderungen, die an die Nutzlast-URL gesendet werden, von ACAT stammen. Wenn das Geheimnis festgelegt ist, verwendet ACAT es, um eine Hashsignatur mit jeder Nutzlast zu erstellen. Diese Hashsignatur ist in den Headern jeder Anforderung als x-acat-signature-256 enthalten.
    • SSL-Überprüfung: Die SSL-Überprüfung wird nur angezeigt, wenn es sich bei Ihrer Nutzlast-URL um eine sichere Website (HTTPS) handelt, und sie trägt dazu bei, dass Nutzlasten sicher an Ihre Nutzlast-URL übermittelt werden. Es wird empfohlen, die Option SSL-Überprüfung aktivieren aktiviert zu lassen.
    • Triggerereignisse: Abonnieren Sie ACAT-Ereignisse, um Benachrichtigungen zu erhalten.

    Erstellen einer Webhookbenachrichtigung

    Tipp

    Erfahren Sie mehr über Webhooknutzlasten.

Abrufen einer schnellen Konformitätsauswertung in der Continuous Integration/Continuous Deployment-Pipeline

Zusätzlich zur regulären Portalnutzung und dem Empfang aktueller Benachrichtigungen kann ACAT eine schnelle Konformitätsbewertung innerhalb Ihrer CI/CD-Pipeline (Continuous Integration/Continuous Deployment) durchführen. Sicherstellen der kontinuierlichen Konformität Ihrer Microsoft 365-Anwendung.

In ACAT sind Kontrollbewertungen strukturierte Compliancebewertungen, die nach Sicherheitsdomänen der Microsoft 365-Zertifizierung, Kontrollfamilien und einzelnen Kontrollen kategorisiert sind. Um eine Kontrollbewertung innerhalb von ACAT zu initiieren, müssen rohe Compliancedaten gesammelt werden. Einige dieser rohen Complianceinformationen sind aus technischer Sicht jedoch möglicherweise nicht ohne weiteres zugänglich. Um diese Herausforderung zu bewältigen, führt ACAT ein Konzept ein, das als "schnelle Konformitätsbewertung" bezeichnet wird. Dieses Feature wurde entwickelt, um eine schnelle Bewertung der Compliance status zu ermöglichen und die sofortige Erfassung wichtiger Rohdaten zur Compliance zu ermöglichen.

Die Implementierung einer schnellen Konformitätsbewertung dient zwei Zwecken:

  • Zeitnahe Erkenntnisse: Erleichtert das Echtzeitverständnis Ihres Compliancestatus und ermöglicht die Einhaltung von Sicherheitsstandards und bewährten Methoden durch eine Anwendung.
  • Nahtlose Integration: Die schnelle Konformitätsbewertung kann nahtlos in Ihre CI/CD-Pipeline integriert werden, um sicherzustellen, dass Ihre Anwendungen robust bleiben und den Complianceanforderungen entsprechen.

Integration in die CI/CD-Pipeline durch GitHub Actions

Schnelle Konformitätsauswertungen sind in der CI/CD-Pipeline verfügbar, indem die Microsoft 365-Zertifizierungsschnellauswertung GitHub Action verwendet wird. Es gibt zwei mögliche Verwendungsmöglichkeiten für diese GitHub-Aktion:

  • Nutzen Sie die neueste Bereitstellung in der CI/CD-Pipeline als endgültigen Zustand für die Anwendung: ACAT führt schnelle Konformitätsbewertungen basierend auf der neuesten Bereitstellung innerhalb der Pipeline durch. Darüber hinaus haben Sie die Möglichkeit, ACAT anzufordern, entsprechende Complianceberichte basierend auf dieser Bereitstellung zu aktualisieren, um Ihnen umfassende Kontrollbewertungen mit täglichen Updates zu gewähren.
  • Verwenden Sie einen vorhandenen Konformitätsbericht als Referenz für die Anwendung.** ACAT nutzt die in einem vorhandenen Konformitätsbericht definierten Ressourcen, um die schnelle Konformitätsbewertung durchzuführen.

Integration in die CI/CD-Pipeline über die ACAT-REST-API

Erhalten Sie schnelle Konformitätsauswertungen in der CI/CD-Pipeline über die ACAT-REST-API.

  • Stellen Sie eine Verbindung mit Azure-Ressourcen mithilfe der Dienstprinzipalauthentifizierung her. Befolgen Sie diese Anleitung , um zu erfahren, wie Sie einen Dienstprinzipal erstellen, der auf Ressourcen zugreifen kann. Nachdem der Dienstprinzipal erstellt wurde, befolgen Sie die Anweisungen ihres Pipelinetools, um die Anmeldeinformationen zu speichern. Stellen Sie beispielsweise eine Verbindung mit Microsoft Azure über eine ARM-Dienstverbindung her.

  • Rufen Sie die Liste der Ressourcen ab, die Sie für die schnelle Konformitätsbewertung verwenden möchten.

    $resourceGroupName
    $deploymentName
    
    $resourceIds = @()
    Get-AzResourceGroupDeploymentOperation `
        -ResourceGroupName $resourceGroupName `
        -Name $deploymentName `
    | ForEach-Object {
        if (![String]::IsNullOrEmpty($_.TargetResource)) {
            $resourceIds += $_.TargetResource
        }
    }
    
    • Informationen zum Abrufen von Ressourcen basierend auf einer Cloudressourcenverwaltungsrichtlinie (z. B. Ressourcen mit bestimmten Tags, Ressourcen in bestimmten Ressourcengruppen usw.) finden Sie unter 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
    
    • Um einen vorhandenen ACAT-Kompatibilitätsbericht zu verwenden, klicken Sie auf ACAT-REST-API-Bericht – Abrufen , um die Ressourcen aus der Berichtsdefinition abzurufen.
    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: $_"
    }
    
  • Verwenden Sie die triggerEvaluation-API , um eine schnelle Konformitätsbewertung für die angegebenen Ressourcen zu erhalten.

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: $_"
}
  • Rufen Sie die schnelle Konformitätsauswertung aus dem Ergebnis der triggerEvaluation-API ab.

Referenz

Webhooknutzlasten

Für die ACAT-Webhooknutzlasten für jedes Ereignis enthalten sie einige allgemeine Eigenschaften.

Schlüssel

Pflichtfeld?

Typ

Beschreibung

EventDesc

Ja

Zeichenfolge

Ein bestimmtes Ereignis, das die Benachrichtigung auslöst.

Nachricht

Ja

Zeichenfolge

Der Inhalt der Benachrichtigung. Sie enthält in der Regel den Berichtsnamen als eindeutigen Bezeichner und den Zeitstempel, wenn dieses Ereignis eintritt.

Details

Nein

Zeichenfolge

Dies ist der Inhalt im JSON-Format, der die Details dieser Benachrichtigung enthält. Nehmen wir den Fehler bei der Steuerungsbewertung als Beispiel an, und die Details enthalten alle verantwortlichen Kunden für jedes Steuerelement und die betroffenen Ressourcen.

ACAT-REST-API-TriggerBewertung

API-Name: triggerEvaluation

  • Dienst: Automatisierung der App-Compliance
  • API-Version: 2023-02-15-preview

Erhalten Sie eine schnelle Konformitätsbewertung für bestimmte Ressourcen.

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

Name

In

Erforderlich

Typ

Beschreibung

API-Version

Abfrage

True

Zeichenfolge

Die API-Version, die für diesen Vorgang verwendet werden soll. Sie können "2023-02-15-preview" verwenden.

Anforderungsheader

Name

In

Erforderlich

Typ

Beschreibung

Authorization

head

True

Zeichenfolge

Bearer + " " + Zugriffstoken

x-ms-aad-user-token

head

True

Zeichenfolge

Bearer + " " + Zugriffstoken

Content-Type

head

True

Zeichenfolge

value: "application/json"

Anforderungstext

Name

Erforderlich

Typ

Beschreibung

resourceIds

Wahr

Zeichenfolgenarray

Liste der auszuwertenden Ressourcen-IDs

Antwortheader

Name

Typ

Beschreibung

200 OK

Die Antwort gibt an, dass die schnelle Konformitätsbewertung für die angegebenen Ressourcen-IDs abgeschlossen wurde.

202 Akzeptiert

Die Antwort gibt an, dass die schnelle Konformitätsbewertung für bestimmte Ressourcen-IDs ausgelöst wird und im Back-End ausgeführt wird.

Andere Statuscodes

ErrorResponse

Fehlerantwort.

TriggerEvaluationResponse

Name

Typ

Beschreibung

triggerTime

string

Der Zeitpunkt, zu dem die Auswertung ausgelöst wird.

evaluationEndTime

string

Der Zeitpunkt, zu dem die Auswertung beendet ist.

resourceIds

string[]

Liste der auszuwertenden Ressourcen-IDs

quickAssessments

Liste der Schnellbewertungen

QuickAssessment

Name

Typ

Beschreibung

resourceId

string

Ressourcen-ID

responsibilityId

string

Verantwortungs-ID

Timestamp

string

Der Zeitstempel der Ressourcenerstellung (UTC).

resourceStatus

ResourceStatus

Schnelle Bewertung status.

displayName

string

Anzeigename der Schnellbewertung.

description

string

Beschreibung der schnellen Bewertungen.

remediationLink

string

Link zu den Korrekturschritten für diese schnelle Bewertung.