You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET 8新Identity API端点与Azure AD B2C(微软身份平台)集成可行性咨询

.NET 8新Identity API端点与Azure AD B2C(微软身份平台)集成可行性咨询

嘿,你的思路完全没问题!.NET 8新增的Identity API端点确实可以和Azure AD B2C集成,只是官方文档大多侧重本地数据库存储用户的场景,容易让刚接触的开发者误以为只能这么做。我来给你梳理下具体的实现思路:

  • Web API端的核心配置:不需要使用Identity的数据库相关组件(比如AddDbContext、AddIdentity),而是直接配置认证中间件来接受Azure AD B2C颁发的JWT令牌。在Program.cs里的配置大概是这样的:

    builder.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
        .AddJwtBearer(options =>
        {
            options.Authority = "https://你的B2C租户.b2clogin.com/你的B2C租户.onmicrosoft.com/你的登录注册策略名";
            options.Audience = "你的Web API客户端ID";
            options.TokenValidationParameters = new TokenValidationParameters
            {
                ValidateIssuer = true,
                ValidIssuer = "https://你的B2C租户.b2clogin.com/你的租户ID/v2.0/"
            };
        });
    builder.Services.AddAuthorization();
    

    配置完成后,Web API就会自动验证来自B2C的令牌,不需要自己存储用户信息。

  • MAUI应用端的身份交互:使用MSAL库(Microsoft.Identity.Client)来实现登录、获取令牌的逻辑。你可以在MAUI项目里初始化MSAL的PublicClientApplication,调用AcquireTokenInteractive方法引导用户完成B2C的登录流程,拿到访问令牌后,调用Web API时把令牌放在请求头的Authorization字段即可。

  • 用户信息与业务数据关联:如果需要把B2C的用户和你的业务数据库绑定,只需要在Web API里解析令牌中的唯一标识(比如sub或oid声明),用这个标识关联到你的业务用户表即可,完全不需要依赖Identity的AspNetUsers表。

  • 关于.NET 8新Identity端点的使用:如果你原本想复用这些端点(比如注册、密码重置),其实Azure AD B2C已经内置了这些用户管理功能,甚至可以通过自定义策略来扩展流程。通常的做法是让MAUI直接和B2C的身份页面交互完成登录/注册,再拿着令牌访问Web API。如果确实需要在Web API里处理部分身份逻辑(比如自定义授权规则),可以结合Identity的ClaimsPrincipal来获取用户信息,但不需要启用本地数据库存储。

所以你并没有走错方向,只是需要把Identity的本地身份方案和Azure AD B2C的云身份服务区分开——B2C负责身份认证和用户管理,Web API负责业务授权和逻辑,两者配合起来完全可行。

备注:内容来源于stack exchange,提问作者Sam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.17 10:17:58