【发布时间】:2019-09-26 07:24:53
【问题描述】:
我为 Azure B2C 制定了一个自定义策略,添加了 jwt.ms 作为回复 URL,一切似乎都运行良好。当我登录时,我被重定向到 jwt.ms 显示令牌及其内容。但是,当我尝试将我的 Angular 前端链接到此自定义策略时,它似乎不起作用。需要响应类型 id_token token,但是当我使用此响应类型时,我收到错误“此应用程序没有足够的权限对此 Web 资源执行操作。”
当我使用响应类型 id_token 时,它似乎工作正常,并且我收到了带有 JWT 令牌的回复。
我认为问题可能出在应用程序下的 Implicit grant 设置中,所以我尝试为所有人启用 Access tokens 和 ID tokens应用程序,但这没有帮助。
请求如下所示:
https://{tenant}.b2clogin.com/{tenant}.onmicrosoft.com/oauth2/v2.0/authorize
?p=b2c_1a_signup_signin&client_id={client_id}
&redirect_uri=http%3A%2F%2Flocalhost%3A4200%2F&response_type=id_token%20token
&scope=openid%20https%3A%2F%2F{tenant}.onmicrosoft.com%2Fapi%2Fuser_impersonation
&nonce={nonce}
&state={state}
所以如果你替换字符,它看起来像这样:
https://{tenant}.b2clogin.com/{tenant}.onmicrosoft.com/oauth2/v2.0/authorize
?p=b2c_1a_signup_signin&client_id={client_id}
&redirect_uri=http://localhost:4200/&response_type=id_token token
&scope=openid https://{tenant}.onmicrosoft.com/api/user_impersonation
&nonce={nonce}
&state={state}
我希望登录流程同时返回 JWT ID 令牌和访问令牌。
编辑: 我使用标准的 Signupsignin 用户流程创建了一个全新的 B2C 租户,但我仍然遇到同样的问题。所以我得出结论,这不是自定义策略问题,而是 Azure 中的配置或前端应用程序引起的问题。
【问题讨论】:
-
您是否在 Azure 门户上启用了隐式授权?
-
我在哪里做,这不是我在描述的所有应用程序上启用的选项吗?
-
请看一下。让我知道您是否还有其他顾虑。谢谢
-
嗨蒂姆。在 Azure AD B2C 刀片中,您是否通过 API 访问 选项将前端应用程序的访问权限分配给后端 API?
-
后端 API 和前端应用是什么意思?
标签: azure azure-ad-b2c