【发布时间】:2018-02-09 11:12:45
【问题描述】:
如果声明存储在自己的服务器上的某个位置(在 B2C 中不可用),在令牌中发布令牌之前,有哪些方法可以在令牌中包含自定义声明(例如用户订阅或角色列表)? 目标是在令牌中声明,以避免在每次请求时额外往返存储。
对该主题的调查使我想到了以下几种方式:
通过 Graph API 添加自定义属性,配置为包含在 JWT 中。属性值应与我们的数据存储保持同步。
自定义登录策略,如本文https://docs.microsoft.com/en-us/azure/active-directory-b2c/active-directory-b2c-rest-api-step-custom,但如果我做对了,额外的第 6 步是以非受限方式访问公开可用 API 的用户旅程(请求不受秘密保护,可能会被使用通过提供的 UserId 获取用户声明)?
IdentityServer4 联合网关 http://docs.identityserver.io/en/release/topics/federation_gateway.html 将允许在发布之前添加任何声明。
【问题讨论】:
-
是,您可以使用您概述的任何方式将声明添加到 Azure AD B2C 令牌中。这里还有其他潜在的问题吗?
-
@Saca 感谢您的回复。我很感兴趣是否有其他标准方式或首选方式可以在我没有注意到的已发行令牌中添加自定义声明?选项 2 看起来是一个很好的直接方法,但在这里我担心在步骤 6 中调用 /api/LookUpLoyaltyWebHook?code=MQu...w== 是 b2c 到 api(服务器到服务器)或客户端(浏览器)到 api?
-
该调用由 Azure AD B2C 服务发出,不是由用户的浏览器发出,因此是服务器到服务器。您的 Azure 函数代码不会泄露给最终用户。
-
嗨@st1 和@saca 请帮我将
groups之类的声明添加到ADB2C 令牌中。我已经尝试了第二步,但似乎它不适合我。在这方面的任何帮助都将是非常可观的。
标签: azure-ad-b2c azure-ad-graph-api