Azure ad b2c 从“迁移B2C OWIN服务”;登录.microsoft.com“;至;b2clogin.com“;

Azure ad b2c 从“迁移B2C OWIN服务”;登录.microsoft.com“;至;b2clogin.com“;,azure-ad-b2c,msal,Azure Ad B2c,Msal,因此,我一直在将旧的应用程序服务和Xamarin移动应用程序从MSAL的旧版本迁移到最新版本,并将我的应用程序从“login.microsoft.com”重新定向到新的(er)“b2clogin.com”发行者URI。我一直在遵循迁移到新的颁发者URI的方法,同时仍然与当前在该领域中的应用程序保持向后兼容 但是,我正在将此服务作为Azure应用程序服务运行,在我的服务的“身份验证/授权”部分,我使用正确的B2C应用程序“客户端ID”配置了我的Active Directory,并且还有另一个“颁发

因此,我一直在将旧的应用程序服务和Xamarin移动应用程序从MSAL的旧版本迁移到最新版本,并将我的应用程序从“login.microsoft.com”重新定向到新的(er)“b2clogin.com”发行者URI。我一直在遵循迁移到新的颁发者URI的方法,同时仍然与当前在该领域中的应用程序保持向后兼容

但是,我正在将此服务作为Azure应用程序服务运行,在我的服务的“身份验证/授权”部分,我使用正确的B2C应用程序“客户端ID”配置了我的Active Directory,并且还有另一个“颁发者URL”文本框。我似乎无法逃脱在该文本框中没有URI的惩罚,无论它是:

https://[id].b2clogin.com/[app id]/B2C_1_SignInUp/v2.0/.well-known/openid-configuration

现在,只要我有一个颁发者或另一个颁发者,就可以进行身份验证,但在我的代码中,我有:

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/"
                }
        };
TokenValidationParameters tvps=新的TokenValidationParameters
{
//仅接受令牌访问群体等于此应用程序客户端ID的令牌
有效期=客户ID,
AuthenticationType=Startup.DefaultPolicy,
ValidIssuers=新列表{
"https://login.microsoftonline.com/[应用程序id]/oauth2/v2.0/“,
“https://[id].b2clogin.com/[app id]/oauth2/v2.0/”
}
};
我认为这应该意味着两个发行人都应该是有效的(向后兼容)。我已经输入了一点调试代码,以验证此代码是否在启动时执行。Azure服务似乎覆盖了多个发行人代码,但我不确定


此文档是否适用于Azure应用程序服务,或者您还需要执行其他操作来配置它?谢谢!

Azure身份验证/授权又名Easy Auth在您的应用程序代码之前运行。 因此,它只接受一个发行人


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

感谢@juunas的回复,您知道一个示例项目,该项目演示了如何在不启用Easy Auth的情况下执行此操作吗?谢谢!
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/"
                }
        };