Mantener la compatibilidad continua de aplicaciones de Microsoft 365 con la herramienta de automatización de cumplimiento de aplicaciones para Microsoft 365
Microsoft 365 App Compliance Automation Tool (ACAT) simplifica los controles esenciales para la certificación de Microsoft 365. Mantenga el cumplimiento continuo de la aplicación de Microsoft 365 mediante ACAT. Manténgase actualizado sobre los errores de cumplimiento a través de notificaciones e integre ACAT sin problemas en la canalización de integración continua o implementación continua.
Nota:
ACAT está actualmente en versión preliminar pública y solo admite aplicaciones compiladas en Azure. Las actualizaciones futuras incluirán la funcionalidad de las aplicaciones basadas en servicios en la nube no hospedados por Microsoft. Para obtener comentarios sobre la versión preliminar pública de ACAT, complete este formulario. Un especialista en el equipo de productos de ACAT le seguirá lo antes posible.
Obtener la evaluación de control más reciente del informe de cumplimiento a través de notificaciones
Después de crear un informe de cumplimiento para su aplicación o entorno de Microsoft 365, ACAT recopila automáticamente los datos de cumplimiento y realiza evaluaciones de control diarias. Además, puede recibir notificaciones de cualquier cambio en la configuración o las evaluaciones del informe.
Obtención de notificaciones con webhook
Cree un webhook para recibir notificaciones de ACAT.
Vaya a Informes a la izquierda.
Abra el informe para el que desea recibir notificaciones.
Seleccione Notificaciones en la barra de herramientas.
Seleccione Crear notificación y, a continuación, elija Webhook.
- Nombre del webhook: este es el identificador único del webhook dentro de este informe.
- Dirección URL de carga: la dirección URL de carga es la dirección URL del servidor que recibe solicitudes POST de webhook de ACAT.
- Tipo de contenido: ACAT actualmente solo admite el tipo de contenido application/json, que entrega la carga JSON directamente como el cuerpo de la solicitud POST.
- Secreto: la configuración de un secreto de webhook le permite asegurarse de que las solicitudes POST enviadas a la dirección URL de carga son de ACAT. Cuando se establece el secreto, ACAT lo usa para crear una firma hash con cada carga. Esta firma hash se incluye con los encabezados de cada solicitud como x-acat-signature-256.
- Comprobación ssl: la verificación SSL solo se mostraría cuando la dirección URL de carga es un sitio seguro (HTTPS) y ayuda a garantizar que las cargas se entregan a la dirección URL de carga de forma segura. Se recomienda mantener seleccionada la opción Habilitar comprobación SSL.
- Eventos de desencadenador: suscríbase a eventos de ACAT para obtener notificaciones.
Sugerencia
Obtenga más información sobre la carga de webhook.
Obtención de una evaluación rápida del cumplimiento en la canalización de integración continua o implementación continua
Además del uso normal del portal y la recepción de notificaciones actualizadas, ACAT puede realizar una evaluación rápida del cumplimiento dentro de la canalización de integración continua e implementación continua (CI/CD). Garantizar el cumplimiento continuo de la aplicación de Microsoft 365.
En ACAT, las evaluaciones de control son evaluaciones de cumplimiento estructurado clasificadas según los dominios de seguridad de certificación de Microsoft 365, las familias de control y los controles individuales. Para iniciar evaluaciones de control dentro de ACAT, se deben recopilar datos de cumplimiento sin procesar. Sin embargo, es posible que parte de esta información de cumplimiento sin procesar no sea fácilmente accesible desde una perspectiva técnica. Para abordar este desafío, ACAT presenta un concepto conocido como "evaluación rápida del cumplimiento". Esta característica está diseñada para proporcionar una evaluación rápida del estado de cumplimiento, lo que permite la recopilación inmediata de datos de cumplimiento sin procesar esenciales.
La implementación de la evaluación rápida de cumplimiento tiene dos propósitos:
- Información oportuna: facilita la comprensión en tiempo real de su posición de cumplimiento, lo que proporciona visibilidad sobre el cumplimiento de los estándares de seguridad y los procedimientos recomendados de una aplicación.
- Integración perfecta: la evaluación rápida del cumplimiento puede integrarse sin problemas en la canalización de CI/CD, lo que garantiza que las aplicaciones sigan siendo sólidas y estén alineadas con los requisitos de cumplimiento.
Integración con la canalización de CI/CD mediante Acciones de GitHub
Nota:
La compatibilidad con ACAT Acciones de GitHub es una versión preliminar y solo admite aplicaciones creadas en Microsoft Azure. Las actualizaciones futuras incluirán la funcionalidad de las aplicaciones creadas en otras nubes.
Las evaluaciones rápidas de cumplimiento están disponibles en la canalización de CI/CD mediante la acción de GitHub de evaluación rápida de certificación de Microsoft 365. Hay dos posibles usos para esta acción de GitHub:
- Use la implementación más reciente en la canalización de CI/CD como estado definitivo para la aplicación: ACAT realiza evaluaciones de cumplimiento rápidas basadas en la implementación más reciente dentro de la canalización. Además, tiene la opción de solicitar a ACAT que actualice un informe de cumplimiento correspondiente basado en esta implementación, concediéndole evaluaciones de control completas con actualizaciones diarias.
- Confíe en un informe de cumplimiento existente como referencia para la aplicación. ACAT utiliza los recursos definidos en un informe de cumplimiento existente para realizar la evaluación rápida del cumplimiento.
Integración con la canalización de CI/CD a través de la API REST de ACAT
Obtenga evaluaciones de cumplimiento rápidas en la canalización de CI/CD a través de la API REST de ACAT.
Conéctese a los recursos de Azure con la autenticación de entidad de servicio. Siga esta guía para obtener información sobre cómo crear una entidad de servicio que pueda acceder a los recursos. Una vez creada la entidad de servicio, siga las instrucciones de la herramienta de canalización para almacenar las credenciales. Por ejemplo, conéctese a Microsoft Azure con una conexión de servicio de ARM.
Obtenga la lista de recursos que desea usar para la evaluación rápida de cumplimiento.
- Use la implementación más reciente en la canalización de CI/CD. Revise Azure PowerShell- Get-AzResourceGroupDeploymentOperation para obtener recursos de la implementación.
$resourceGroupName $deploymentName $resourceIds = @() Get-AzResourceGroupDeploymentOperation ` -ResourceGroupName $resourceGroupName ` -Name $deploymentName ` | ForEach-Object { if (![String]::IsNullOrEmpty($_.TargetResource)) { $resourceIds += $_.TargetResource } }
- Para adquirir recursos basados en la directiva de administración de recursos en la nube (por ejemplo, recursos con etiquetas específicas, recursos en grupos de recursos determinados, etc.), revise el 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
- Para usar un informe de cumplimiento de ACAT existente, seleccione Informe de API REST de ACAT: Obtener para obtener los recursos de la definición del informe.
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: $_" }
Use triggerEvaluation API para obtener una evaluación rápida del cumplimiento de los recursos especificados.
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: $_"
}
- Obtenga la evaluación de cumplimiento rápida del resultado de triggerEvaluation API.
Referencia
Cargas de webhook
Para las cargas de webhook de ACAT para cada evento, contienen algunas propiedades comunes.
Clave
¿Necesario?
Tipo
Descripción
EventDesc
Yes
Cadena
Evento específico que desencadena la notificación.
Mensaje
Yes
Cadena
Contenido de la notificación. Normalmente contiene el nombre del informe como identificador único y la marca de tiempo cuando se produce este evento.
Detalles
No
Cadena
Se trata de contenido de formato JSON que contiene los detalles de esta notificación. Tomando como ejemplo el error de evaluaciones de control, los detalles incluyen todas las responsabilidades de los clientes con errores para cada control y los recursos afectados.
Desencadenador de API REST de ACATEvaluación
Nombre de API: triggerEvaluation
- Servicio: Automatización del cumplimiento de aplicaciones
- Versión de API: 2023-02-15-preview
Obtenga una evaluación rápida del cumplimiento de determinados recursos.
POST https://management.azure.com/providers/Microsoft.AppComplianceAutomation/triggerEvaluation?api-version=2023-02-15-preview
Parámetros de URI
Nombre
En
Obligatorio
Tipo
Descripción
api-version
consulta
True
string
Versión de API que se va a usar para esta operación. Puede usar "2023-02-15-preview"
Encabezado de solicitud
Nombre
En
Obligatorio
Tipo
Descripción
Autorización
head
True
string
Portador + " " + Token de acceso
x-ms-aad-user-token
head
True
string
Portador + " " + Token de acceso
Content-Type
head
True
string
value: "application/json"
Cuerpo de la solicitud
Nombre
Obligatorio
Tipo
Descripción
resourceIds
Verdadero
matriz de cadena
Lista de identificadores de recursos que se van a evaluar
Encabezado responses
Nombre
Tipo
Descripción
200 Correcto
La respuesta indica que se ha completado la evaluación rápida del cumplimiento de determinados identificadores de recursos.
202 Aceptado
La respuesta indica que la evaluación rápida del cumplimiento para determinados identificadores de recursos se desencadena y se realiza en el back-end.
Otros códigos de estado
ErrorResponse
Respuesta de error.
TriggerEvaluationResponse
Nombre
Tipo
Descripción
triggerTime
string
Hora en que se desencadena la evaluación.
evaluationEndTime
string
Hora en que finaliza la evaluación.
resourceIds
string[]
Lista de identificadores de recursos que se van a evaluar
quickAssessments
Lista de evaluaciones rápidas
QuickAssessment
Nombre
Tipo
Descripción
resourceId
string
Id. de recurso
responsibilityId
string
Identificador de responsabilidad
Timestamp
string
Marca de tiempo de creación de recursos (UTC).
resourceStatus
ResourceStatus
Estado de la evaluación rápida.
displayName
string
Nombre para mostrar de la evaluación rápida.
description
string
Descripción de evaluaciones rápidas.
remediationLink
string
Vínculo a los pasos de corrección para esta evaluación rápida.