将 B2C AD 用户存储与 Blazor 一起使用 - 陷入无限循环

Posted

技术标签:

【中文标题】将 B2C AD 用户存储与 Blazor 一起使用 - 陷入无限循环【英文标题】:Using B2C AD User Store with Blazor - Stuck in infinite Loop 【发布时间】:2021-10-16 02:45:32 【问题描述】:

我正在尝试让我的 Core5 Blazor 服务器应用程序与 Azure B2C 用户存储很好地配合使用。我创建了一个新项目并从云中选择了个人用户帐户。

在向导之后,我的 appsettings.json 中只剩下了这个

"AzureAdB2C": 
"Instance": "https://myinstancename.b2clogin.com",
"ClientId": "5cdf4fxx-0500-xxxx-xxxx-fadfa8672xxx",
"CallbackPath": "/signin-oidc",
"Domain": "mytenantname.onmicrosoft.com",
"SignedOutCallbackPath": "/signout/B2C_1_susi",
"SignUpSignInPolicyId": "B2C_1_SignUpIn",
"ResetPasswordPolicyId": "B2C_1_PwReset",
"EditProfilePolicyId": ""

,

在 Azure 中,我创建了一个新的应用注册,并为其提供了 https://localhost:44349/ 的重定向 URL,这是我的应用在 Visual Studio 本地运行的内容。

在 B2C 设置中,我从默认模板创建了用户流,并将其记录在我的 appsettings.json 中(如上面的配置所示)。

当我启动我的应用程序时,我陷入了一个循环。浏览器中的标题在登录和 myinstancename.b2clogin.com/mytenantname.onmicrosoft.com/B2C_1_SignUpIn/oauth/authorize 之间无限循环? .任何人都可以就我在这里可能出错的地方提出任何意见吗?

【问题讨论】:

【参考方案1】:

我认为问题在于重定向 URL。 来自 MS 文档: 将重定向 URI 下拉菜单设置为单页应用程序 (SPA) 并提供以下重定向 URI:https://localhost:PORT/authentication/login-callback。在 Kestrel 上运行的应用的默认端口是 5001。如果应用在不同的 Kestrel 端口上运行,请使用该应用的端口。对于 IIS Express,可以在“调试”面板的“服务器”应用的属性中找到为应用随机生成的端口。由于此时应用不存在且 IIS Express 端口未知,因此在创建应用后返回此步骤并更新重定向 URI。创建应用部分中会出现一条备注,提醒 IIS Express 用户更新重定向 URI。

现在你需要实现登录回调端点

【讨论】:

以上是关于将 B2C AD 用户存储与 Blazor 一起使用 - 陷入无限循环的主要内容,如果未能解决你的问题,请参考以下文章

使用 azure AD B2C 进行 blazor web api 身份验证

Azure AD B2C 将用户流与应用一对一关联

Azure AD B2C 与企业 (Azure?) AD 帐户集成

Azure AD 与 Azure AD B2C 与 Azure AD B2B

Azure AD B2C 密码重置

哪个图形 API 应与 Azure AD B2C 一起使用