Nalevingsrapporten genereren voor een geannoteerde cloudeigen app

Voltooid

Nalevingsafdelingen moeten code- en nalevingsrapporten kunnen controleren om ervoor te zorgen dat de toepassing voldoet aan het beleid van het bedrijf. Het .NET-nalevingsframework biedt een manier om rapporten te genereren die de nalevingsstatus van de toepassing weergeven.

Wat is een nalevingsrapport?

Er kan tijdens het compileren een nalevingsrapport worden gegenereerd. Het .NET-nalevingsframework genereert een JSON-bestand dat details bevat over de gegevensclassificaties en bewerkingsmethoden die in de toepassing worden gebruikt.

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

Het bovenstaande rapport is een voorbeeld van het eShopLite.DataEntities project. Het laat zien dat de Order klasse twee eigenschappen heeft die zijn geclassificeerd als 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"
                        }
                    ]
                }
            ]
        }
    ]
}

Het bovenstaande rapport is een voorbeeld van het eShopLite.Store project. Het laat zien dat de LogOrders methode in de ProductService klasse een Order object als parameter voor logboekregistratie gebruikt.

Een nalevingsrapport genereren

Er zijn twee stappen die u moet uitvoeren voor elk project waarvoor u een rapport wilt genereren:

  1. Voeg het Microsoft.Extensions.AuditReports NuGet-pakket toe aan elk project.

  2. Voeg twee vermeldingen toe aan de PropertyGroup sectie van het csproj-projectbestand :

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

    De eerste schakel de generatie van het nalevingsrapport in. De tweede geeft het pad naar de map waarin het rapport wordt gegenereerd. De bestandsnaam is ComplianceReport.json.

Met deze updates wordt in de oplossingsmap een nalevingsrapport gegenereerd dotnet build voor elk project waarop de GenerateComplianceReport eigenschap is ingesteld true.