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 redaçã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 eShopLite.DataEntities projeto. Ele mostra que a Order classe 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 eShopLite.Store projeto. Ele mostra que o LogOrdersProductService método na classe usa um Order objeto como um parâmetro para registro.
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:
Adicione o
Microsoft.Extensions.AuditReportspacote NuGet a cada projeto.Adicione duas entradas na
PropertyGroupseção do arquivo de projeto csproj :<GenerateComplianceReport>true</GenerateComplianceReport> <ComplianceReportOutputPath>$(MSBuildThisFileDirectory)\path to folder location</ComplianceReportOutputPath>O primeiro ativa a geração de relatórios de conformidade. O segundo especifica o caminho para a pasta onde o relatório será gerado. O nome do arquivo é ComplianceReport.json.
Com essas atualizações, a execução dotnet build na pasta da solução gera um relatório de conformidade para cada projeto que tem a GenerateComplianceReport propriedade definida como true.