在 Azure AD B2C 中,如果声明存储在自己的服务器上(而不是 B2C 中可用),有哪些方法可以将自定义声明(例如用户订阅或角色列表)包含在令牌中发放之前?目标是将声明包含在令牌中,以避免在每个请求上进行附加的往返存储。调查此主题带我了解以下方法:
- 通过 Graph API 添加自定义属性,并配置在 JWT 中包含。属性值应与我们的数据存储保持同步。
- 自定义登录策略,就像这篇文章中所述 https://learn.microsoft.com/en-us/azure/active-directory-b2c/active-directory-b2c-rest-api-step-custom 但是如果我理解正确,额外的第六步是公开可用的 API 用户旅程,以非受限方式请求(请求未受密钥保护,可能被用来获取呈现的 UserId 的用户声明)。
- IdentityServer4 联合网关 http://docs.identityserver.io/en/release/topics/federation_gateway.html ,它将允许在发放之前添加任何声明。