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.
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.
- Verwenden Sie die neueste Bereitstellung in der CI/CD-Pipeline. Lesen Sie Azure PowerShell – Get-AzResourceGroupDeploymentOperation, um Ressourcen aus der Bereitstellung abzurufen.
$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.