Blazor(IdentityServer)、ASP.NET Core Identity的GDPR/CCPA合规问询
Blazor(IdentityServer)与ASP.NET Core Identity的GDPR/CCPA合规底层逻辑解析
1. 未认证状态下的Cookie追踪情况
Blazor本身默认不会设置任何追踪类Cookie;ASP.NET Core Identity和IdentityServer在用户未认证时,仅会生成必要的功能性Cookie,不属于GDPR/CCPA管控的“追踪Cookie”范畴:
- ASP.NET Core Identity:可能生成
AspNetCore.Culture(存储语言偏好),无其他身份相关Cookie - IdentityServer:可能生成
idsrv.session(用于临时存储登录跳转的返回URL等会话状态),仅用于当前会话的功能支撑,不用于跨站或用户行为追踪
注:如果你的应用自行集成了第三方分析工具(如Google Analytics),这类工具生成的追踪Cookie需要单独处理合规声明。
2. 已认证状态下的Cookie、静默重认证及用户诉求处理
Cookie合规性
已认证后,Identity和IdentityServer生成的Cookie仍为认证必要的功能性Cookie,不属于追踪类:
- ASP.NET Core Identity:
AspNetCore.Identity.Application(存储用户认证票据) - IdentityServer:
idsrv(主认证Cookie)、idsrv.session(会话状态)、idsrv.interaction(交互状态,如同意页缓存)
无提示重新认证实现
默认通过**刷新令牌(Refresh Token)**机制实现:
- 用户首次认证时,IdentityServer会发放短期有效的访问令牌和长期有效的刷新令牌
- 访问令牌过期前,Blazor应用后台自动调用IdentityServer的令牌端点,用刷新令牌换取新的访问令牌,全程无需用户交互
- 刷新令牌默认存储在Cookie(Blazor Server)或浏览器localStorage(Blazor WASM)中
用户诉求处理
- 删除相关认证内容:需清理数据库中
AspNetUsers表的用户记录,同时删除IdentityServerPersistedGrants表中该用户对应的所有记录(包括刷新令牌、授权码、设备代码等) - 关闭静默重认证功能:可以通过两种方式实现:
- 在用户认证时配置
AllowOfflineAccess = false,不发放刷新令牌 - 提供用户设置入口,调用IdentityServer的撤销令牌API,主动作废该用户的所有刷新令牌
- 在用户认证时配置
- 关闭后的影响:访问令牌过期后,用户必须重新登录;每次新页面加载时,Blazor会检查是否有有效访问令牌,无有效令牌则判定用户未认证,跳转至登录页
合规核心要点总结
需告知用户的追踪信息
- 认证相关的功能性Cookie(存储用户身份、会话状态、刷新令牌)
- 语言偏好Cookie(若启用)
- 若应用存在自定义行为追踪(如页面浏览记录、功能使用统计),需明确说明追踪内容及用途
用户拒绝Cookie后的功能限制
- 拒绝非必要追踪类Cookie:仅会影响依赖这类Cookie的自定义功能(如个性化推荐),核心认证、业务功能不受影响
- 拒绝所有Cookie(包括必要功能性Cookie):用户无法完成认证流程,所有需要登录的功能均无法使用
账户删除的额外清理项
除数据库AspNetUsers及关联表(UserClaims、UserLogins、UserTokens等)的记录外,还需清理:
- IdentityServer
PersistedGrants表中该用户的所有授权记录 - Blazor Server端的会话缓存(如分布式缓存中对应用户的会话键)
- Blazor WASM端:引导用户手动清除浏览器中的认证Cookie及localStorage内的令牌数据,或通过前端代码调用API触发清除
内容的提问来源于stack exchange,提问作者David Thielen
相关产品推荐
相关产品推荐

