【问题标题】:Authorized calls for Azure B2C userAzure B2C 用户的授权调用
【发布时间】:2022-11-03 13:52:05
【问题描述】:
我正在尝试使用 Azure B2C 自定义策略让用户登录,然后使用传递给重定向 URI 的令牌对我们的 API 进行授权调用。我知道登录后给出的令牌是一个 id 令牌,但我还没有看到将其交换为访问令牌的方法。
使用 id 令牌可用于 Azure API 管理,但不适用于逻辑应用程序,因为它期望颁发者是 login.microsoftonline.com。
有没有办法可以将用户的 id 令牌交换为访问令牌,或者有更好的方法来保护端点,以便只有登录的 B2C 用户才能访问它们?
【问题讨论】:
标签:
azure
azure-ad-b2c
azure-logic-apps
【解决方案1】:
Azure AD B2C 支持 id 令牌和访问令牌,其中 id 令牌包含可用于识别应用程序中的用户的声明,而访问令牌用于识别授予 API 的权限。
无法将 id 令牌交换为访问令牌,但您可以在对请求进行身份验证时通过在 response_type 中传递 id_token+token 来请求请求中的令牌。
GET https://{tenant}.b2clogin.com/{tenant}.onmicrosoft.com/{policy}/oauth2/v2.0/authorize?
client_id=xxxx
&response_type=id_token+token
&redirect_uri=https://www.jwt.ms
&response_mode=fragment
&scope=openid%20offline_access
&state=arbitrary_data_you_can_receive_in_the_response
&nonce=12345