注釈付きクラウド ネイティブ アプリのコンプライアンス レポートを生成する
コンプライアンス部門は、コードとコンプライアンス レポートをレビューして、アプリケーションが会社のポリシーに準拠していることを確認できる必要があります。 .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 として分類される 2 つのプロパティがあることを示しています。
{
"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 プロジェクトの例です。 これは、ProductService クラスの LogOrders メソッドが Order オブジェクトをログ用のパラメータとして受け取ることを示しています。
コンプライアンス レポートを生成する方法
レポートを生成するプロジェクトごとに、次の 2 つの手順を実行する必要があります。
Microsoft.Extensions.AuditReports
NuGet パッケージを各プロジェクトに追加します。csproj プロジェクト ファイルの
PropertyGroup
セクションに 2 つのエントリを追加します。<GenerateComplianceReport>true</GenerateComplianceReport> <ComplianceReportOutputPath>$(MSBuildThisFileDirectory)\path to folder location</ComplianceReportOutputPath>
1 つ目は、コンプライアンス レポートの生成をオンに切り替えます。 2 つ目は、レポートが生成されるフォルダーへのパスを指定します。 ファイル名は ComplianceReport.json です。
これらの更新により、ソリューション フォルダーで dotnet build
を実行すると、GenerateComplianceReport
プロパティが true
に設定されているプロジェクトごとにコンプライアンス レポートが生成されます。