Создание отчетов о соответствии для аннотированного облачного приложения

Завершено

Отделы соответствия требованиям должны иметь возможность просматривать отчеты о коде и соответствии, чтобы приложение соответствовало политикам компании. Платформа соответствия .NET позволяет создавать отчеты, показывающие состояние соответствия приложения.

Что такое отчет о соответствии?

Отчет о соответствии можно создать во время компиляции. Платформа соответствия .NET создает JSON-файл, содержащий сведения о классификациях данных и методах редактирования, используемых в приложении.

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

Приведенный выше отчет является примером проекта eShopLite.DataEntities . В нем показано, что Order класс имеет два свойства, которые классифицируются как 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"
                        }
                    ]
                }
            ]
        }
    ]
}

Приведенный выше отчет является примером проекта eShopLite.Store . В нем показано, что LogOrders метод в классе принимает Order объект в ProductService качестве параметра для ведения журнала.

Создание отчета о соответствии

Для каждого проекта необходимо выполнить два шага:

  1. Microsoft.Extensions.AuditReports Добавьте пакет NuGet в каждый проект.

  2. Добавьте две записи в PropertyGroup раздел файла проекта csproj :

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

    Первый переключает создание отчета соответствия требованиям. Второй указывает путь к папке, в которой будет создан отчет. Имя файла ComplianceReport.json.

При выполнении этих обновлений в dotnet build папке решения создается отчет о соответствии для каждого проекта с заданным trueсвойствомGenerateComplianceReport.