Generieren von Compliance-Berichten für eine kommentierte cloudnative App

Abgeschlossen

Compliance-Abteilungen müssen Code- und Compliance-Berichte überprüfen können, um sicherzustellen, dass die Anwendung den Richtlinien des Unternehmens entspricht. Das .NET Compliance Framework bietet eine Möglichkeit zum Generieren von Berichten, die den Compliance-Status der Anwendung anzeigen.

Was ist ein Compliance-Bericht?

Zur Kompilierungszeit kann ein Compliance-Bericht generiert werden. Das .NET Compliance Framework generiert eine JSON-Datei, die Einzelheiten zu den in der Anwendung verwendeten Datenklassifizierungen und Schwärzungsmethoden enthält.

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

Der obige Bericht ist ein Beispiel aus dem eShopLite.DataEntities-Projekt. Es zeigt, dass die Order-Klasse zwei Eigenschaften aufweist, die als EUIIData klassifiziert werden.

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

Der obige Bericht ist ein Beispiel aus dem eShopLite.Store-Projekt. Es zeigt, dass die LogOrders-Methode in der ProductService-Klasse ein Order-Objekt als Parameter für die Protokollierung verwendet.

Generieren eines Compliance-Berichts

Es gibt zwei Schritte, die Sie für jedes Projekt ausführen müssen, für das Sie einen Bericht generieren möchten:

  1. Hinzufügen des Microsoft.Extensions.AuditReports-NuGet-Pakets zu Ihrem Projekt.

  2. Fügen Sie zwei Einträge in den PropertyGroup-Abschnitt der Projektdatei csproj ein:

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

    Der erste wechselt die Erstellung des Compliance-Berichts. Die zweite gibt den Pfad zu dem Ordner an, in dem der Bericht generiert wird. Der Dateiname lautet ComplianceReport.json.

Mit diesen Aktualisierungen wird bei der Ausführung dotnet build im Lösungsordner ein Compliance-Bericht für jedes Projekt erstellt, bei dem die GenerateComplianceReport-Eigenschaft auf true eingestellt ist.