首页 > 解决方案 > 将 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-ad-b2cmsal

解决方案


Azure 身份验证/授权(又名 Easy Auth)在您的应用代码之前运行。所以它只会接受一个发行者。

我建议仅在您的代码中进行身份验证,并关闭 Easy Auth,因为它无法满足您的要求。


推荐阅读