微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Azure AD B2C 和 Microsoft Identity Web - 使用多个策略登录 (.net Core 3.1)

如何解决Azure AD B2C 和 Microsoft Identity Web - 使用多个策略登录 (.net Core 3.1)

我有一个使用 .NET Core 3.1 MVC Web 应用程序的应用程序,该应用程序使用 Azure AD B2C 来登录用户,我刚刚将其迁移为使用 Microsoft Identity Web 库。

我们希望有两种不同的登录政策,一种适用于普通用户 (B2C_1A_SignUpOrSignIn),另一种适用于管理员用户 (B2C_1A_SignInAdmin)。 因此,在 Appsettings 中,我们有以下格式:

"AzureAdB2C": {
    "Instance": "https://url.b2clogin.com/tfp/","ClientId": "clientId","CallbackPath": "/signin-oidc","SignedOutCallbackPath": "/signout/B2C_1A_SignUpOrSignIn","Domain": "url.onmicrosoft.com","Domain_b2cLogin": "url",// required by the Cookie Policy
    "SignUpSignInPolicyId": "B2C_1A_SignUpOrSignIn","SignInAdminPolicyId": "B2C_1A_SignInAdmin","ResetPasswordPolicyId": "B2C_1A_PasswordReset","EditProfilePolicyId": "","ClientSecret": key,"B2cExtensionAppClientId": "key"
  },

在 Startup 类中,我刚刚添加了以下内容

            services.AddAuthentication(OpenIdConnectDefaults.AuthenticationScheme)
           .AddMicrosoftIdentityWebApp(Configuration,"AzureAdB2C");

而且我还覆盖了“AzureController”,因此,对于普通用户,我使用从 此处Microsoft Identity Web - Account Controller登录”。但是,对于管理员用户,我更改了该方法以使用类似于 PasswordReset 方法提供的内容,如下所示:

        public IActionResult SignInAdmin()
    {
        string scheme = OpenIdConnectDefaults.AuthenticationScheme;

        var redirectUrl = Url.Content("~/");
        var properties = new AuthenticationProperties { RedirectUri = redirectUrl };
        properties.Items[Constants.Policy] = "B2C_1A_SignInAdmin";
        return Challenge(properties,scheme);
    }

所以,如您所见,我为此方法使用了不同的策略名称

似乎一切正常,用户重定向到基于策略的正确登录页面,令牌由 Azure 颁发,我们的应用程序在我们的方法中接受令牌

options.Events.OnTokenValidated = context => {}

然而,不久之后,身份验证和方法出现了问题

options.Events.OnRemoteFailure 

调用,但有以下异常 “{”消息包含错误:'invalid_grant',error_description:'AADB2C90088:尚未为此端点颁发提供的授权。实际值:B2C_1A_SignUpOrSignIn 和预期值:B2C_1A_SignInAdmin ..."

那么,我的问题是,我必须做什么才能使用两种不同的策略登录?或者我应该做任何配置才能做到这一点?

先谢谢你。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。