Compartir a través de


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.

    Creación de una notificación de webhook

    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 una evaluación de control dentro de los datos de cumplimiento sin procesar de ACAT, es necesario recopilarlos. 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 en 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

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 usos posibles para esta acción de GitHub:

  • Aproveche la implementación más reciente en la canalización de CI/CD como el estado definitivo de 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 los informes de cumplimiento correspondientes en función de 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.

    $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
    
    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

String

Evento específico que desencadena la notificación.

Mensaje

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

Identificador 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.