将 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 帐户集成