Gerar relatórios de conformidade para um aplicativo nativo da nuvem anotado
Os departamentos de conformidade precisam ser capazes de revisar o código e os relatórios de conformidade para garantir que o aplicativo esteja em conformidade com as políticas da empresa. A estrutura de conformidade do .NET fornece uma maneira de gerar relatórios que mostram o status de conformidade do aplicativo.
O que é um relatório de conformidade?
Um relatório de conformidade pode ser gerado em tempo de compilação. A estrutura de conformidade .NET gera um arquivo JSON que contém detalhes sobre as classificações de dados e métodos de edição usados no aplicativo.
{
"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"
}
]
},
...
O relatório acima é um exemplo do projeto eShopLite.DataEntities. Ele mostra que a classe Order tem duas propriedades que são classificadas 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"
}
]
}
]
}
]
}
O relatório acima é um exemplo do projeto eShopLite.Store. Ele mostra que o método LogOrders na classe ProductService usa um objeto como um parâmetro Order para registro em log.
Como gerar um relatório de conformidade
Há duas etapas que você precisa seguir para cada projeto para o qual deseja gerar um relatório:
Adicionar o pacote NuGet
Microsoft.Extensions.AuditReports
para cada projeto.Adicione duas entradas à seção
PropertyGroup
do arquivo de projeto csproj:<GenerateComplianceReport>true</GenerateComplianceReport> <ComplianceReportOutputPath>$(MSBuildThisFileDirectory)\path to folder location</ComplianceReportOutputPath>
A primeira ativa a geração do relatório de conformidade. A segunda especifica o caminho para a pasta em que o relatório será gerado. O nome do arquivo é ComplianceReport.json.
Com essas atualizações, a execução de dotnet build
na pasta da solução gera um relatório de conformidade para cada projeto que tem a propriedade GenerateComplianceReport
definida como true
.