Generare report di conformità per un'app nativa del cloud annotata

Completato

I reparti di conformità devono essere in grado di esaminare il codice e i report di conformità per assicurarsi che l'applicazione sia conforme ai criteri aziendali. .NET Compliance Framework consente di generare report che mostrano lo stato di conformità dell'applicazione.

Che cos'è un report di conformità?

È possibile generare un report di conformità in fase di compilazione. .NET Compliance Framework genera un file JSON che contiene informazioni dettagliate sulle classificazioni dei dati e sui metodi di rollforward usati nell'applicazione.

{
    "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"
                        }
                    ]
                },
    ...

Il report precedente è un esempio del progetto eShopLite.DataEntities. Mostra che la classe Order ha due proprietà classificate come 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"
                        }
                    ]
                }
            ]
        }
    ]
}

Il report precedente è un esempio del progetto eShopLite.Store. Mostra che il metodo LogOrders nella classe ProductService accetta un oggetto Order come parametro per la registrazione.

Come generare un report di conformità

È necessario eseguire due passaggi per ogni progetto per cui si vuole generare un report:

  1. Aggiungere il pacchetto NuGet Microsoft.Extensions.AuditReports a ogni progetto.

  2. Aggiungere due voci nella PropertyGroup sezione del file di progetto csproj:

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

    Il primo attiva la generazione del report di conformità. Il secondo specifica il percorso della cartella in cui verrà generato il report. Il nome del file è ComplianceReport.json.

Con questi aggiornamenti, l'esecuzione di dotnet build nella cartella della soluzione genera un report di conformità per ogni progetto con la proprietà GenerateComplianceReport impostata su true.