Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A 📦 Microsoft.Extensions.AuditReports NuGet-csomag funkcióval készít naplózási jelentéseket a lefordított kódról. Ezek a jelentések különösen hasznosak adatvédelmi auditok, megfelelőségi felülvizsgálatok és az alkalmazás által gyűjtött és továbbított telemetriai adatok megértéséhez.
Miért érdemes auditjelentéseket használni?
A naplózási jelentések segítenek a szervezeteknek a megfelelőség és az átláthatóság fenntartásában:
- Adatvédelmi megfelelőség: Azonosítsa azokat a helyeket, ahol bizalmas adatok érhetők el vagy naplózhatók.
- Telemetriakövetés: Az alkalmazás által generált metrikák és telemetriai adatok megismerése.
- Kód áttekintése: Az adatbesorolási használat áttekintése a kódbázisban.
- Megfelelőségi auditok: A megfelelőségi és biztonsági auditok dokumentációjának megadása.
- Adatkezelés: Győződjön meg arról, hogy az adatkezelési eljárások összhangban vannak a szervezeti szabályzatokkal.
Indítás
A Microsoft.Extensions.AuditReports csomag egy buildelési eszköz, amely jelentéseket hoz létre a fordítás során. Telepítse opcionális fejlesztési függőségként:
dotnet add package Microsoft.Extensions.AuditReports
További információ: dotnet add package vagy A csomagfüggőségek kezelése .NET alkalmazásokban.
Jelentéstípusok
A csomag háromféle jelentést hozhat létre:
| Jelentés típusa | Description |
|---|---|
| Mértékek | Jelentést hoz létre a kódban használt forrás által létrehozott metrikadefiníciókról , így megértheti, hogy az alkalmazás milyen metrikákat bocsát ki. |
| Megfelelőség | Jelentést készít az adatvédelmi szempontból bizalmas adatok használatáról, beleértve a személyes vagy bizalmas adatokat kezelő, forrás által generált naplózási módszereket. |
| Metadaták | Olyan átfogó jelentést hoz létre, amely a metrikákat és a megfelelőségi információkat is egyesíti. |
Jelentéskészítés konfigurálása
A jelentéskészítés konfigurálásához állítsa be az MSBuild tulajdonságokat a project fájlban:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net10.0</TargetFramework>
<!-- Enable audit report generation -->
<GenerateComplianceReport>true</GenerateComplianceReport>
<!-- Specify report output path (optional) -->
<ComplianceReportOutputPath>$(OutputPath)compliance-report.json</ComplianceReportOutputPath>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Extensions.AuditReports" Version="10.0.0" />
</ItemGroup>
</Project>
Megfelelőségi jelentés létrehozása
Megfelelőségi jelentés létrehozásához állítsa a GenerateComplianceReport tulajdonságot a true értékre.
<PropertyGroup>
<GenerateComplianceReport>true</GenerateComplianceReport>
</PropertyGroup>
Ez a jelentés azonosítja az adatvédelmi szempontból érzékeny adatokat kezelő kódot, különösen a naplózási műveletek során.
Metrikák jelentésének létrehozása
A metrika jelentés létrehozásához állítsa a GenerateMetricsReport tulajdonságot a true értékre.
<PropertyGroup>
<GenerateMetricsReport>true</GenerateMetricsReport>
<MetricsReportOutputPath>$(OutputPath)metrics-report.json</MetricsReportOutputPath>
</PropertyGroup>
Ez a jelentés az alkalmazás által létrehozott összes metrikát dokumentálja.
Metaadat-jelentés létrehozása
A megfelelőségre és a metrikákra vonatkozó információkat egyaránt tartalmazó átfogó jelentés esetében:
<PropertyGroup>
<GenerateMetadataReport>true</GenerateMetadataReport>
<MetadataReportOutputPath>$(OutputPath)metadata-report.json</MetadataReportOutputPath>
</PropertyGroup>
Példa: Megfelelőségi jelentés kimenete
Ha létrehoz egy projektet, amelyben engedélyezve van a megfelelőségi jelentéskészítés, egy JSON-fájlt kap, amely azonosítja az adatvédelemre érzékeny adathasználatot.
{
"version": "1.0",
"reportType": "compliance",
"generatedAt": "2025-10-20T12:00:00Z",
"entries": [
{
"filePath": "Services/UserService.cs",
"lineNumber": 42,
"memberName": "LogUserActivity",
"dataClassification": "PersonalData",
"message": "Logs user email address"
},
{
"filePath": "Controllers/AccountController.cs",
"lineNumber": 88,
"memberName": "LogLoginAttempt",
"dataClassification": "AuthenticationData",
"message": "Logs authentication attempt with username"
}
]
}
Használat adatbesorolással
A naplózási jelentések a következő adatosztályozási attribútumokkal Microsoft.Extensions.Compliance.Abstractionsműködnek együtt:
using Microsoft.Extensions.Compliance.Classification;
using Microsoft.Extensions.Logging;
public class UserService
{
private readonly ILogger<UserService> _logger;
public UserService(ILogger<UserService> logger)
{
_logger = logger;
}
[LoggerMessage(Level = LogLevel.Information, Message = "User {Email} logged in")]
public partial void LogUserLogin(
[PrivateData] string email);
}
Amikor ezt a kódot megfelelőségi jelentéskészítéssel hozza létre, a jelentés azonosítani fogja, hogy a emailPrivateData besorolás alá tartozik.
A jelentés kimeneti helyének konfigurálása
Egyéni elérési utak megadása az auditjelentésekhez:
<PropertyGroup>
<!-- Generate all report types -->
<GenerateComplianceReport>true</GenerateComplianceReport>
<GenerateMetricsReport>true</GenerateMetricsReport>
<!-- Custom output locations -->
<ComplianceReportOutputPath>$(OutputPath)audit\compliance.json</ComplianceReportOutputPath>
<MetricsReportOutputPath>$(OutputPath)audit\metrics.json</MetricsReportOutputPath>
</PropertyGroup>
Integrálás a CI/CD folyamatokkal
A naplózási jelentések integrálhatók a CI/CD-folyamatba az automatizált megfelelőségi ellenőrzésekhez:
# Example GitHub Actions workflow
name: Compliance Check
on:
pull_request:
branches: [ main ]
jobs:
audit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup .NET
uses: actions/setup-dotnet@v3
with:
dotnet-version: '10.0.x'
- name: Build with compliance report
run: dotnet build -p:GenerateComplianceReport=true
- name: Upload compliance report
uses: actions/upload-artifact@v3
with:
name: compliance-report
path: '**/compliance-report.json'
- name: Analyze compliance report
run: |
# Add script to analyze the compliance report
# and fail the build if violations are found
./scripts/check-compliance.sh
Példa: Metrikák jelentéskimenete
A metrikák jelentése az alkalmazás által előállított metrikákat dokumentálja:
{
"version": "1.0",
"reportType": "metrics",
"generatedAt": "2025-10-20T12:00:00Z",
"metrics": [
{
"name": "http_request_duration",
"description": "HTTP request duration in milliseconds",
"unit": "milliseconds",
"type": "histogram",
"tags": ["endpoint", "method", "status_code"]
},
{
"name": "active_connections",
"description": "Number of active connections",
"unit": "connections",
"type": "gauge",
"tags": ["connection_type"]
}
]
}
Gyakorlati példa: Adatvédelmi naplózási munkafolyamat
Íme egy teljes példa az adatvédelmi naplózás beállítására:
Project fájlkonfiguráció:
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>net10.0</TargetFramework>
<!-- Enable compliance reporting -->
<GenerateComplianceReport>true</GenerateComplianceReport>
<ComplianceReportOutputPath>$(OutputPath)audit\compliance.json</ComplianceReportOutputPath>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Extensions.AuditReports" Version="10.0.0" />
<PackageReference Include="Microsoft.Extensions.Compliance.Abstractions" Version="10.0.0" />
<PackageReference Include="Microsoft.Extensions.Telemetry.Abstractions" Version="10.0.0" />
</ItemGroup>
</Project>
Kód adatbesorolással:
using Microsoft.Extensions.Compliance.Classification;
using Microsoft.Extensions.Logging;
public partial class OrderService(ILogger<OrderService> logger)
{
[LoggerMessage(Level = LogLevel.Information, Message = "Order created for customer {CustomerId}")]
public partial void LogOrderCreated(
[PublicData] string customerId);
[LoggerMessage(Level = LogLevel.Information, Message = "Payment processed for {CardNumber}")]
public partial void LogPaymentProcessed(
[PrivateData] string cardNumber);
}
A projekt létrehozásakor a megfelelőségi jelentés azonosítja a cardNumber adatvédelmi szempontból érzékeny naplózását.
Bevált gyakorlatok
Auditjelentések használatakor vegye figyelembe az alábbi ajánlott eljárásokat:
- Korán integrálható: A fejlesztés korai szakaszában adjon hozzá naplózási jelentést a projektekhez, hogy hamarabb elkaphassa az adatvédelmi problémákat.
- Felülvizsgálatok automatizálása: A folyamatos megfelelőség monitorozásához integrálja a naplózási jelentések létrehozását a CI/CD-folyamatba.
- Rendszeresen tekintse át: Rendszeresen tekintse át az auditjelentéseket a kódellenőrzések során és a kiadások előtt.
- Adatok osztályozása: Az adatbesorolási attribútumok következetes használatával biztosíthatja a pontos naplózási jelentéseket.
- Jelentések tárolása: Auditjelentések archiválása a megfelelőségi dokumentációhoz és az előzménykövetéshez.
- Verziókövetés: A naplójelentések változásainak nyomon követése az adatkezelés alakulásának megértéséhez.
- Biztonsági vizsgálat: Naplózási jelentések használata a biztonsági és adatvédelmi ellenőrző eszközök bemeneteként.