Maintenir la conformité des applications Microsoft 365 en continu avec l’outil d’automatisation de la conformité des applications pour Microsoft 365
L’outil ACAT (App Compliance Automation) Microsoft 365 simplifie les contrôles essentiels pour la certification Microsoft 365. Conservez la conformité continue de votre application Microsoft 365 à l’aide d’ACAT. Restez informé des échecs de conformité via des notifications et intégrez ACAT en toute transparence à votre pipeline d’intégration continue/déploiement continu.
Remarque
ACAT est actuellement en préversion publique et prend uniquement en charge les applications basées sur Azure. Les futures mises à jour incluront des fonctionnalités pour les applications basées sur des services cloud non hébergés par Microsoft. Pour tout commentaire sur la préversion publique d’ACAT, remplissez ce formulaire. Un spécialiste de l’équipe produit ACAT effectuera un suivi avec vous dès que possible.
Obtenir la dernière évaluation de contrôle de votre rapport de conformité via des notifications
Après avoir créé un rapport de conformité pour votre application ou environnement Microsoft 365, ACAT collecte automatiquement les données de conformité et effectue des évaluations de contrôle quotidiennes. En outre, vous pouvez recevoir des notifications pour toutes les modifications apportées aux paramètres ou aux évaluations des rapports.
Obtenir des notifications avec le webhook
Créez un webhook pour recevoir des notifications d’ACAT.
Accédez à Rapports sur la gauche.
Ouvrez le rapport pour lequel vous souhaitez recevoir des notifications.
Sélectionnez Notifications dans la barre d’outils.
Sélectionnez Créer une notification, puis choisissez Webhook.
- Nom du webhook : il s’agit de l’identificateur unique du webhook dans ce rapport.
- URL de la charge utile : l’URL de la charge utile est l’URL du serveur qui reçoit les requêtes POST du webhook d’ACAT.
- Type de contenu : ACAT prend actuellement uniquement en charge le type de contenu application/json, qui fournit la charge utile JSON directement comme corps de la requête POST.
- Secret : la définition d’un secret de webhook vous permet de vous assurer que les requêtes POST envoyées à l’URL de charge utile proviennent d’ACAT. Lorsque le secret est défini, ACAT l’utilise pour créer une signature de hachage avec chaque charge utile. Cette signature de hachage est incluse avec les en-têtes de chaque requête sous la forme x-acat-signature-256.
- Vérification SSL : la vérification SSL s’affiche uniquement lorsque l’URL de votre charge utile est un site sécurisé (HTTPS), et permet de garantir que les charges utiles sont remises à votre URL de charge utile en toute sécurité. Nous vous recommandons de conserver l’option Activer la vérification SSL sélectionnée.
- Événements déclencheurs : Abonnez-vous aux événements ACAT pour recevoir des notifications.
Conseil
En savoir plus sur la charge utile du webhook.
Obtenir une évaluation rapide de la conformité dans le pipeline d’intégration continue/déploiement continu
En plus de l’utilisation régulière du portail et de la réception de notifications à jour, ACAT peut effectuer une évaluation de conformité rapide dans votre pipeline d’intégration continue/déploiement continu (CI/CD). Garantir la conformité continue de votre application Microsoft 365.
Dans ACAT, les évaluations de contrôle sont des évaluations de conformité structurées classées en fonction des domaines de sécurité de la certification Microsoft 365, des familles de contrôles et des contrôles individuels. Pour lancer des évaluations de contrôle dans les données de conformité brutes ACAT doivent être collectées. Toutefois, certaines de ces informations de conformité brutes peuvent ne pas être facilement accessibles d’un point de vue technique. Pour relever ce défi, ACAT introduit un concept appelé « évaluation rapide de la conformité ». Cette fonctionnalité est conçue pour fournir une évaluation rapide des status de conformité, ce qui permet la collecte immédiate de données de conformité brutes essentielles.
L’implémentation d’une évaluation de conformité rapide a deux objectifs :
- Insights en temps opportun : facilite la compréhension en temps réel de votre posture de conformité, ce qui donne une visibilité sur l’adhésion d’une application aux normes de sécurité et aux meilleures pratiques.
- Intégration transparente : l’évaluation rapide de la conformité peut s’intégrer en toute transparence dans votre pipeline CI/CD, garantissant ainsi que vos applications restent robustes et alignées sur les exigences de conformité.
Intégration au pipeline CI/CD par GitHub Actions
Remarque
La prise en charge d’ACAT GitHub Actions est en préversion et prend uniquement en charge les applications basées sur Microsoft Azure. Les futures mises à jour incluront des fonctionnalités pour les applications basées sur d’autres clouds.
Les évaluations de conformité rapides sont disponibles dans le pipeline CI/CD à l’aide de l’action GitHub d’évaluation rapide de la certification Microsoft 365. Il existe deux utilisations possibles pour cette action GitHub :
- Utilisez le dernier déploiement dans le pipeline CI/CD comme état définitif pour l’application : ACAT effectue des évaluations de conformité rapides basées sur le déploiement le plus récent au sein du pipeline. En outre, vous avez la possibilité de demander à ACAT d’actualiser un rapport de conformité correspondant en fonction de ce déploiement, ce qui vous permet d’effectuer des évaluations de contrôle complètes avec des mises à jour quotidiennes.
- S’appuyer sur un rapport de conformité existant comme référence pour l’application. ACAT utilise les ressources définies dans un rapport de conformité existant pour effectuer l’évaluation rapide de la conformité.
Intégration au pipeline CI/CD via l’API REST ACAT
Obtenez des évaluations de conformité rapides dans le pipeline CI/CD via l’API REST ACAT.
Connectez-vous aux ressources Azure avec l’authentification du principal du service. Suivez ce guide pour découvrir comment créer un principal de service qui peut accéder aux ressources. Une fois le principal de service créé, suivez les instructions de votre outil de pipeline pour stocker les informations d’identification. Par exemple, connectez-vous à Microsoft Azure avec une connexion de service ARM.
Obtenez la liste des ressources que vous souhaitez utiliser pour l’évaluation rapide de la conformité.
- Utilisez le dernier déploiement dans le pipeline CI/CD. Passez en revue Azure PowerShell - Get-AzResourceGroupDeploymentOperation pour obtenir des ressources à partir du déploiement.
$resourceGroupName $deploymentName $resourceIds = @() Get-AzResourceGroupDeploymentOperation ` -ResourceGroupName $resourceGroupName ` -Name $deploymentName ` | ForEach-Object { if (![String]::IsNullOrEmpty($_.TargetResource)) { $resourceIds += $_.TargetResource } }
- Pour acquérir des ressources basées sur la stratégie de gestion des ressources cloud (par exemple, des ressources avec des étiquettes spécifiques, des ressources dans des groupes de ressources particuliers, etc.), passez en revue la 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
- Pour utiliser un rapport de conformité ACAT existant, sélectionnez Rapport de l’API REST ACAT - Obtenir pour obtenir les ressources à partir de la définition de rapport.
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: $_" }
Utilisez l’API triggerEvaluation pour obtenir une évaluation rapide de la conformité pour les ressources données.
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: $_"
}
- Obtenez l’évaluation de conformité rapide à partir du résultat de l’API triggerEvaluation.
Référence
Charges utiles de webhook
Pour les charges utiles de webhook ACAT pour chaque événement, elles contiennent des propriétés communes.
Clé
Obligatoire ?
Type
Description
EventDesc
Oui
String
Événement spécifique qui déclenche la notification.
Message
Oui
String
Contenu de la notification. Il contient généralement le nom du rapport comme identificateur unique et l’horodatage lorsque cet événement se produit.
Détails
Non
String
Il s’agit du contenu au format JSON qui contient les détails de cette notification. En prenant l’exemple de l’échec des évaluations de contrôle, les détails incluent toutes les responsabilités client ayant échoué pour chaque contrôle et les ressources affectées.
Déclencheur de l’API REST ACATÉvaluation
Nom de l’API : triggerEvaluation
- Service : Automatisation de la conformité des applications
- Version de l’API : 2023-02-15-preview
Obtenez une évaluation rapide de la conformité pour des ressources données.
POST https://management.azure.com/providers/Microsoft.AppComplianceAutomation/triggerEvaluation?api-version=2023-02-15-preview
Paramètres d’URI
Nom
Dans le paramètre
Obligatoire
Type
Description
api-version
requête
True
string
Version de l’API à utiliser pour cette opération. Vous pouvez utiliser « 2023-02-15-preview »
En-tête de demande
Nom
Dans le paramètre
Obligatoire
Type
Description
Autorisation
head
True
string
Porteur + " " + Jeton d’accès
x-ms-aad-user-token
head
True
string
Porteur + " " + Jeton d’accès
Content-Type
head
True
string
value : « application/json »
Corps de la requête
Nom
Obligatoire
Type
Description
resourceIds
Vrai
tableau de chaînes
Liste des ID de ressource à évaluer
En-tête des réponses
Nom
Type
Description
200 OK
La réponse indique que l’évaluation rapide de la conformité pour les ID de ressource donnés est terminée.
202 Accepté
La réponse indique que l’évaluation rapide de la conformité pour les ID de ressource donnés est déclenchée et s’exécute dans le back-end.
Autres codes d’état
ErrorResponse
Réponse d’erreur.
TriggerEvaluationResponse
Nom
Type
Description
triggerTime
string
Heure à laquelle l’évaluation est déclenchée.
evaluationEndTime
string
Heure de fin de l’évaluation.
resourceIds
string[]
Liste des ID de ressource à évaluer
quickAssessments
Liste des évaluations rapides
QuickAssessment
Nom
Type
Description
resourceId
string
ID de ressource
responsibilityId
string
ID de responsabilité
horodatage
string
Horodatage de la création de ressources (UTC).
resourceStatus
ResourceStatus
Status d’évaluation rapide.
displayName
string
Nom complet de l’évaluation rapide.
description
string
Description des évaluations rapides.
remediationLink
string
Lien vers les étapes de correction pour cette évaluation rapide.