使用隐式授权流程的 Azure B2C 身份验证

时间:2021-01-14 17:21:59

标签: microsoft-graph-api azure-ad-b2c msal

我使用的是有一些用户的 Azure B2C 租户。我创建了一个应用程序,并在身份验证中选择了 web。我取消选择隐式授权流程,因为我收到警告 This app has implicit grant settings enabled. If you are using any of these URIs in a SPA with MSAL.js 2.0, you should migrate URIs. 我只选择了本地,没有选择其他提供者。我还有一个 Sing In 用户流程。我什至看不到使用这些设置的 C# ASP.NET 应用程序的登录页面。所以我选择了隐式流程。这样问题就解决了,我可以看到登录页面并可以登录了。

我的问题是为什么我需要隐式流程来进行网络身份验证。

enter image description here

2 个答案:

答案 0 :(得分:1)

除非您使用旧版本的 MSAL,即 MSAL1.XXX 版本,否则您不需要隐式流。

<块引用>

最新版本的 MSAL.js 即 MSAL 2.XXX 版本仅适用于 授权代码流使用 PKCE 而不是隐式流。所以 您需要实现 PKCE 流程而不是隐式 Grand。

如果您使用的是最新版本的 MSAL,请不要使用会启用隐式流的 Access_tokenid_token 设置。

答案 1 :(得分:1)

如果您使用的是 the Microsoft Identity Web authentication library 或 Microsoft Identity Web 项目模板之一,则它会在授权请求中传递 response_type=code id_token,代表 the hybrid flow

这就是您必须为应用程序注册选择“ID 令牌”设置的原因。