Azure B2C是否支持像Azure Functions一样生成PAT(个人访问令牌)
Azure B2C 场景下自定义生成PAT的可行方案
Azure AD B2C 本身没有内置PAT(个人访问令牌)的原生签发能力,但是你完全可以参考Azure Functions的PAT设计逻辑,在现有中间件层自行实现长期访问令牌能力,绕开原生refresh token最长3个月的有效期限制。
原生refresh token最长3个月的限制仅对B2C官方签发的令牌生效,你自行实现的PAT完全不受该规则约束。
具体实现逻辑如下:
- 新增PAT管理模块:在你已集成了B2C认证的中间件中新增PAT签发、校验、吊销逻辑。用户首次通过B2C登录认证成功后,你可以根据业务需求为用户签发自定义PAT,PAT的有效期可自行设定(支持1年及以上的长期有效期,无B2C原生规则限制),同时将PAT密文、对应用户的B2C用户ID、可访问的API权限范围、过期时间、生效状态等信息存储到你自己的业务身份库中。
- 调整接口鉴权逻辑:原有B2C access_token校验逻辑保留,新增PAT校验分支:用户请求携带PAT时,中间件直接查询本地存储的PAT记录,验证PAT状态有效、权限匹配后即可放行,不需要再调用B2C服务做令牌校验,也不需要依赖refresh token做令牌刷新。
- 安全控制补充:PAT建议使用
AES-256等加密算法加密存储,避免数据库泄露导致PAT被滥用;同时提供PAT主动吊销能力,用户可在业务侧自行作废指定PAT,也可由管理员后台吊销风险PAT,PAT的权限范围需要严格和该用户在B2C中分配的API访问权限对齐,避免越权访问。 - 如果需要对齐Azure Functions的PAT实现逻辑,可直接复用其细粒度权限绑定设计:将PAT和指定API、指定操作类型绑定,支持用户自主创建多个不同权限、不同有效期的PAT,满足不同场景的长期访问需求。
内容的提问来源于stack exchange,提问作者Manjunath G
相关产品推荐
相关产品推荐

