azure-ad-b2c - 将 B2C OWIN 服务从“login.microsoft.com”迁移到“b2clogin.com”
问题描述
因此,我一直在将旧版应用程序服务和 Xamarin 移动应用程序从旧版本的 MSAL 迁移到最新版本,并将我的应用程序从“login.microsoft.com”重新定向到新的(er)“b2clogin.com” ' 发行者 URI。我一直在按照本指南迁移到新的颁发者 URI,同时仍与当前在该领域的应用程序保持向后兼容。
但是,我将此服务作为 Azure 应用服务运行,并且在我的服务的“身份验证/授权”部分中,我的 Active Directory 配置了正确的 B2C 应用程序“客户端 ID”,并且还有另一个文本框用于“颁发者 URL” . 我似乎无法摆脱在该文本框中没有 URI 是否是:
https://[id].b2clogin.com/[app id]/B2C_1_SignInUp/v2.0/.well-known/openid-configuration
或者
https://login.microsoftonline.com/[app id]/v2.0/.well-known/openid-configuration?p=B2C_1_SignIn
现在只要我有一个发行者或另一个发行者,这确实可以进行身份验证,但在我的代码中我有:
TokenValidationParameters tvps = new TokenValidationParameters
{
// Accept only those tokens where the audience of the token is equal to the client ID of this app
ValidAudience = ClientId,
AuthenticationType = Startup.DefaultPolicy,
ValidIssuers = new List<string> {
"https://login.microsoftonline.com/[app id]/oauth2/v2.0/",
"https://[id].b2clogin.com/[app id]/oauth2/v2.0/"
}
};
我认为这应该意味着两个发行者都应该是有效的(向后兼容。我已经输入了一些调试代码来验证该代码是否在启动时执行。似乎Azure 服务正在覆盖多个发行者代码但我不确定?
此文档是否适用于 Azure 应用服务,或者您还需要做些什么来配置它?谢谢!
解决方案
Azure 身份验证/授权(又名 Easy Auth)在您的应用代码之前运行。所以它只会接受一个发行者。
我建议仅在您的代码中进行身份验证,并关闭 Easy Auth,因为它无法满足您的要求。
推荐阅读
- ios - 设置自定义布局后,我的 UICollection 视图不滚动
- cmake - 如何在安装中为 PATTERN 使用变量的多个目录?
- c++ - 以最少的重写更新文本文件
- javascript - TypeScript 顶级非导出代码何时执行?
- excel - 为什么平方列会产生不同的答案
- python - subprocess.Popen 如何在 Windows 上与 shell=False 一起使用?
- node.js - SharedKeyCredential 不是构造函数 - Azure Blob Storage + Nodejs
- javascript - TinySlider:使上一个/下一个按钮在第一个/最后一个索引时消失?
- java - 如何使用 Spring 组件注册 POJO 工厂 *methods*?
- android - HUAWEI MediaPad M5 Lite 10 返回 screenLayout SCREENLAYOUT_SIZE_LARGE