AzureADB2C NextJS 13 隐式流程问题

问题描述 投票:0回答:1

我不断收到此错误消息: “AADB2C90057:所提供的应用程序未配置为允许‘OAuth’隐式流程。

不过,我查了一下清单,上面确实写着: “oauth2AllowIdTokenImplicitFlow”:true, “oauth2AllowImplicitFlow”:true,

我已根据文档选择了两者:

旋转了很多天,任何帮助将不胜感激。

这是我的 [...nextauth].ts

 AzureADB2CProvider({
      id: "azureadb2c",
      clientId: process.env.AZUREADB2C_CLIENT_ID || "",
      clientSecret: process.env.AZUREADB2C_SECRET || "",
      tenantId: process.env.AZUREADB2C_TENANT_NAME || "",
      primaryUserFlow: "B2C_1_xxxxx",
      authorization: {
        params: {
          scope:  "openid",
          response_type: "id_token",
          response_mode: "query",
          resource: "https://xxxxxxx.onmicrosoft.com/1111111-1111-1111-1111-57911111114/publicInfo.Read",  
        },
      },
      checks: ["pkce"],
      client: {
         token_endpoint_auth_method: "none",
      },
    }),
azure-ad-b2c next.js13
1个回答
0
投票

你有

+-----------------+            +-------------------+           +------------------+
|                 |            |                   |           |                  |
|   Next.js App   +------------> Azure AD B2C Auth +-----------> Token Generation |
|                 |  OAuth2    |   Implicit Flow   |   Tokens  |                  |
+-----------------+            +-------------------+           +------------------+

问题可能是由于 Azure 门户中的配置与应用程序代码不匹配造成的。
因此,请仔细检查 Azure 门户中的 Azure AD B2C 设置。确保您的应用程序注册确实启用了“隐式授予和混合流”(有关说明,请参阅“手动配置 Azure Active Directory B2C 提供程序”)。

oauth2AllowIdTokenImplicitFlow
oauth2AllowImplicitFlow
的清单条目应设置为
true
。您已确认这一点,但可能值得重新访问门户以确保这些设置已保存并处于活动状态。

response_type
”的
id_token
用于隐式流,但由于您使用的是
pkce
,您可能还需要
code
响应类型。 PKCE(代码交换的证明密钥)通常与授权代码流程一起使用,而不是隐式流程。

确保您请求的范围与 Azure AD B2C 中配置的范围匹配。如果您有自定义范围,则需要在您的 B2C 租户中定义它们。

authorization

端点应该是根据您的B2C租户配置的正确URL。验证端点 URL。确认

tenantId
primaryUserFlow
 根据您的 B2C 租户详细信息正确命名。
检查 Azure AD B2C 设置中是否正确设置了 CORS,以允许来自 Next.js 应用程序域的请求。例如,请参阅“

Azure AD B2C CORS 错误

”。

resource

部分中的

authorization
参数应与 Azure AD B2C 应用程序设置中配置的应用程序 ID URI 匹配。
    

© www.soinside.com 2019 - 2024. All rights reserved.