Skip to content
bitzorcas
中EN

Concept

GDPR 与个保法合规数据治理

深入解析 BitzOrcas.Platform.Gdpr 模块:个人隐私数据主体访问请求 (SAR)、被遗忘权物理擦除、假名化脱敏与合规留痕管线。

Last updated

GDPR 与个保法合规数据治理 (GDPR & Data Privacy Governance)

在面向全球化运营与处理大量自然人敏感信息的现代企业系统中,合规不再是一句口号,而是直接面临巨额监管罚单的物理架构约束(如欧盟 GDPR、中国《个人信息保护法》与《数据安全法》)。

BitzOrcas.Platform.Gdpr 为框架提供了原生的合规数据生命周期治理中心。它标准化实现了自然人主体访问请求(Subject Access Request, SAR)、被遗忘权(Right to be Forgotten)安全擦除、历史审计日志假名化(Pseudonymization)以及租户数据保留期自动清理管线。


1. 核心合规用例流转

数据主体权利行使全流程受到审计保护与审批门禁约束:

GDPR 治理执行引擎合规法务审批闸门 (Legal DPO Approval)自然人数据主体 (User)批准导出批准擦除

发起数据导出申请 (SAR)

发起注销与被遗忘申请 (Erasure)

身份严格核验 (MFA / 证件校验)

法定留存期排查 (是否有未决诉讼或税务留存义务)

SAR 数据打包器 (导出受密码保护的 ZIP)

安全物理擦除器 (PII Erasure & Shredding)

审计日志假名化 (替换为不可逆 HASH 占位符)


2. 被遗忘权与物理擦除实战

当自然人行使“被遗忘权”且经法务合规审核通过后,系统严禁仅作逻辑软删除(IsDeleted = 1 依然留存明文隐私),必须执行物理碎纸或不可逆覆盖(Cryptographic Shredding):

using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
using BitzOrcas.Application.Authorization;
using BitzOrcas.Domain.Abstractions;
using BitzOrcas.Domain.Results;
using BitzOrcas.Endpoint.Attributes;
using BitzOrcas.Platform.Gdpr.Contracts;
using Mediator;
namespace BitzOrcas.Platform.Gdpr.Application.Commands;
/// <summary>
/// 执行自然人个人信息合规物理擦除命令
/// </summary>
[GenerateEndpoint(HttpRoute.Post, "/api/privacy/erasure/{id}/execute", Tag = "Privacy")]
public sealed record ExecuteRightToBeForgottenCommand(
string RequestId,
string DpoApprovalTicketNumber
) : ICommand<Result>, IAuthorizedRequest
{
/// <summary>
/// 受保护资源 privacy 模块 erasure 资源
/// </summary>
public ResourceDescriptor Resource { get; } = new(GdprPermissions.Module, GdprPermissions.ErasureResource);
/// <summary>
/// 授权动作管理
/// </summary>
public AuthorizationAction Action { get; } = AuthorizationAction.Manage;
}
/// <summary>
/// 物理擦除处理器
/// </summary>
public sealed class ExecuteRightToBeForgottenCommandHandler(
IGdprStore store,
IEnumerable<ISubjectDataErasureContributor> erasureContributors,
IAppClock clock) : ICommandHandler<ExecuteRightToBeForgottenCommand, Result>
{
public async ValueTask<Result> Handle(
ExecuteRightToBeForgottenCommand command,
CancellationToken cancellationToken)
{
// 1. 获取已通过合规审批的擦除工单记录
var request = await store.GetDsrByIdAsync(command.RequestId, cancellationToken);
if (request is null)
{
return Result.Failure(GdprErrors.ErasureNotFound);
}
// 2. 依次调用各业务模块注册的擦除贡献器(跨模块物理覆盖与假名化脱敏)
foreach (var contributor in erasureContributors)
{
var contributorResult = await contributor.ExecuteErasureAsync(request.SubjectId, cancellationToken);
if (contributorResult.IsFailure)
{
return contributorResult;
}
}
// 3. 将工单状态流转为已完成,保留合规流水证据链
request.StatusCode = GdprErasureStatus.Completed.Value;
request.CompletedAt = clock.UtcNow;
var updateSuccess = await store.TryUpdateDsrAsync(request, GdprErasureStatus.Executing.Value, cancellationToken);
return updateSuccess ? Result.Success() : Result.Failure(GdprErrors.ErasureAlreadyClosed);
}
}

3. 主体访问请求 (SAR) 导出标准

根据合规要求,企业必须在法定周期内(如 30 天)向申请人提供结构化、机器可读且受强加密保护的数据副本。

BitzOrcas.Platform.Gdpr 的打包服务收集以下维度数据并输出 AES-256 加密的 ZIP 包:

  1. 身份资料:账号基本信息、登录历史、绑定的安全凭据元数据;
  2. 业务资产:该用户在各模块创建的工单、合同、上传的文件清单;
  3. 授权记录:用户历次勾选的隐私协议版本与同意时间戳。

100%

滚轮或按钮缩放 · 放大后拖动画面 · 双击切换 100% / 200%