azure - 已发布的 Web 应用程序 Auth AD B2C:/signin/B2C_1_mysigninoutpolicy 的 Error404
问题描述
我正在关注 azure AD B2C auth示例,该示例在将 appsettings.json 本地更改为我的 webapp 租户/应用程序时运行良好。当我发布到 azure 主页打开但按登录时我没有进入授权窗口,Fiddler 显示:
redirect_uri_mismatch
AADB2C90006: The redirect URI
'https://webappname.azurewebsites.net/signin/B2C_1_mysigninoutpolicy' provided in the request is not registered for the client id 'xxxxxxxx'.
我认为这个设置是b2login.com兼容的。
a) 我创建租户并在门户中注册应用程序。在租户:
Azure AD B2C 资源名称(租户):tenantName.onmicrosoft.com
我设置了应用注册->回复 URL https://webappname.azurewebsites.net/signin-oidc
同样在 App Registration->Add ID URI (optional) 上:我将其留空
本机客户端:否
b) 在我的订阅级别(非租户)Azure 门户中,发布的应用设置:
配置-> 应用程序设置:显示 WEBSITE_NODE_DEFAULT_VERSION 并且我添加了值为“生产”的 ASPNETCORE_ENVIRONMENT。
在项目的 appsettings.json 中,设置为:
"Instance": "https://tenantName.b2clogin.com",
"ClientId": "XXXXXX",
"ClientSecret": "XXXXX",
"Domain": "tenantName.onmicrosoft.com",
"SignedOutCallbackPath": "/signout/B2C_1_mysigninoutpolicy",
"SignUpSignInPolicyId": "B2C_1_mysigninoutpolicy",
"ResetPasswordPolicyId": "B2C_1_myresetpolicy",
"EditProfilePolicyId": "B2C_1_myeditprofilepolicy", // Optional profile editing policy
"CallbackPath": "/signin/B2C_1_mysigninoutpolicy"
该示例未使用“租户”,所以我将其省略了吗?我尝试取消注释示例的 Callbackpath 但同样的错误:
//"CallbackPath": "/signin/B2C_1_sign_up_in" // defaults to /signin-oidc
每次测试时,我都会重新启动网络应用程序并等待几分钟。我在https://webappname.azurewebsites.net浏览测试
谢谢您的帮助
解决方案
应用注册中的重定向 URI必须与应用配置中的回调路径匹配。
在上述问题中,重定向 URI 设置为,/signin-oidc
但回调路径设置为/signin/B2C_1_mysigninoutpolicy
,这会导致redirect_uri_mismatch错误响应。
推荐阅读
- c# - 拥有 2 个不同的实体(具有相似的 FK、PK)还是将它们组合成 1big 实体更好?
- java - Maven 使用不在 POM 中的依赖项进行编译
- node.js - CORS、Laravel Valet 和 Socket.io
- swift - ios 使用 ondeamand 规则重新启动 VPN 连接
- php - 根据购物车页面中的属性值和产品数量在 WooCommerce 中添加到购物车验证
- linux - shell 脚本 - 找到 3 次的平均值
- java - 无法在 Spring Boot 中链接 bean。服务层和控制器 REST
- c# - 尝试将消息从 C# 发布到 Slack 时出现 SSL/TSL 问题
- android - 找不到与包名称“*****.test”匹配的客户端
- vue.js - 如果存在,如何导入 nuxt 组件,否则导入默认组件