如何向 azure b2c 访问令牌添加自定义声明?

Posted

技术标签:

【中文标题】如何向 azure b2c 访问令牌添加自定义声明?【英文标题】:How to add custom claims to azure b2c access token? 【发布时间】:2021-12-01 11:14:45 【问题描述】:

我有一个 Azure Active Directory B2C 帐户。 应用程序的客户端和 Web api 已在此处注册。 还有一些用户流程,例如,用于注册和登录。 受 b2c 令牌保护的 web api (asp net core web api)。 用户登录系统后的逻辑如何实现 Web API 应用程序可以验证 b2c 令牌并将其交换为自己的令牌, 与我需要的索赔。 或者您可以立即将您的自定义声明添加到 b2c 令牌? 前提是声明存储在自己服务器上的数据库中。

研究了 Microsoft 的大量文档。 我发现的第一件事是使用 api 连接器。 https://docs.microsoft.com/en-us/azure/active-directory-b2c/add-api-connector-token-enrichment?pivots=b2c-user-flow 也许这是我的决定?但我不明白如何从 localhost 本地检查。

请分享编写此类逻辑的最佳实践。

【问题讨论】:

【参考方案1】:

根据您的链接,您需要使用自定义策略。

在链接中,您可以看到例如从 API 调用返回的“余额”(自定义声明)并添加到 RelyingParty 的 JWT。

您无需转换令牌 - 只需调用 API。

secure 您的 API 有多种选择。

您可以返回error messages。

【讨论】:

@rbraub 感谢您的回答。是否可以通过用户流来实现一个平衡的例子?我只需要向 b2c 令牌添加一个自定义声明。自定义策略的逻辑看起来很复杂而且很复杂。我根据文档进行了尝试,但遇到了问题。更多信息在这里:link 我可能研究的方向错了,请纠正我 确实可以 - docs.microsoft.com/en-us/azure/active-directory-b2c/…

以上是关于如何向 azure b2c 访问令牌添加自定义声明?的主要内容,如果未能解决你的问题,请参考以下文章

将声明添加到令牌 Azure B2C

AD B2C - 重新获取令牌后缺少自定义声明

如何在 IdentityServer4 中添加自定义声明以访问令牌? [关闭]

向 ID 令牌 OpenID 添加自定义声明

如何强制Azure Active Directory身份验证服务重新发出带有更新声明的id_token?

B2C ID 令牌中缺少电话号码声明