Generación de informes de cumplimiento para una aplicación nativa de nube anotada

Completado

Los departamentos de cumplimiento deben poder revisar el código y los informes de cumplimiento para asegurarse de que la aplicación cumple las directivas de la empresa. El marco de cumplimiento de .NET proporciona una manera de generar informes que muestran el estado de cumplimiento de la aplicación.

¿Qué es un informe de cumplimiento?

Se puede generar un informe de cumplimiento en el momento de la compilación. El marco de cumplimiento de .NET genera un archivo JSON que contiene detalles sobre las clasificaciones de datos y los métodos de redacción usados en la aplicación.

{
    "Name": "DataEntities",
    "Types": [
        {
            "Name": "DataEntities.Order",
            "Members": [
                {
                    "Name": "CustomerAddress",
                    "Type": "string",
                    "File": "C:\\Developer\\mslearn-dotnet-cloudnative\\dotnet-compliance\\eShopLite\\DataEntities\\Order.cs",
                    "Line": "25",
                    "Classifications": [
                        {
                            "Name": "EUIIData"
                        }
                    ]
                },
                {
                    "Name": "CustomerName",
                    "Type": "string",
                    "File": "C:\\Developer\\mslearn-dotnet-cloudnative\\dotnet-compliance\\eShopLite\\DataEntities\\Order.cs",
                    "Line": "21",
                    "Classifications": [
                        {
                            "Name": "EUIIData"
                        }
                    ]
                },
    ...

El informe anterior es un ejemplo del proyecto eShopLite.DataEntities. Muestra que la clase Order tiene dos propiedades clasificadas como EUIIData.

{
    "Name": "Store",
    "Types": [
        {
            "Name": "Store.Services.Log",
            "Logging Methods": [
                {
                    "Name": "LogOrders",
                    "Parameters": [
                        {
                            "Name": "logger",
                            "Type": "Microsoft.Extensions.Logging.ILogger",
                            "File": "C:\\Developer\\mslearn-dotnet-cloudnative\\dotnet-compliance\\eShopLite\\Store\\Services\\ProductService.cs",
                            "Line": "103"
                        },
                        {
                            "Name": "order",
                            "Type": "DataEntities.Order",
                            "File": "C:\\Developer\\mslearn-dotnet-cloudnative\\dotnet-compliance\\eShopLite\\Store\\Services\\ProductService.cs",
                            "Line": "103"
                        }
                    ]
                }
            ]
        }
    ]
}

El informe anterior es un ejemplo del proyecto eShopLite.Store. Muestra que el método LogOrders de la clase ProductService toma un objeto Order como parámetro para el registro.

Generación de un informe de cumplimiento

Hay dos pasos que debe seguir para cada proyecto para el que desea generar un informe:

  1. Agregue el paquete NuGet Microsoft.Extensions.AuditReports a cada proyecto.

  2. Agregue dos entradas a la sección PropertyGroup del archivo de proyecto csproj:

    <GenerateComplianceReport>true</GenerateComplianceReport>
    <ComplianceReportOutputPath>$(MSBuildThisFileDirectory)\path to folder location</ComplianceReportOutputPath>
    

    La primera activa la generación de informes de cumplimiento. La segunda especifica la ruta de acceso a la carpeta donde se generará el informe. El nombre del archivo es ComplianceReport.json.

Con estas actualizaciones, la ejecución de dotnet build en la carpeta de la solución genera un informe de cumplimiento para cada proyecto que tiene la propiedad GenerateComplianceReport establecida en true.