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

如何管理Azure AD B2C应用以实现多应用对单一API的访问

Azure AD B2C多客户端访问同一API配置方案

Azure AD B2C原生支持多个客户端应用访问同一个受保护API,无需使用不支持的On-behalf-of流,也不需要无限制开放CORS产生安全隐患,具体实现步骤如下:

前置逻辑说明

你现有ASP.NET MVC应用的后端接口,本质是AAD B2C中注册的API资源,原有Angular前端、新开发的Angular PWA都属于调用该API的客户端应用,B2C支持给多个不同客户端授予同一个API的访问权限。

具体配置步骤

  • 第一步:确认ASP.NET后端API的注册配置
    进入AAD B2C应用注册界面,找到你原有ASP.NET应用对应的注册项,切换到「公开API」面板,确认已经定义了自定义作用域(示例格式:api://{ASP应用的clientId}/access_as_user),该作用域是后续客户端申请访问权限的核心依据。
  • 第二步:给PWA应用授予API访问权限
    找到PWA对应的AAD B2C应用注册项,切换到「API权限」面板,点击「添加权限」→ 选择「我的API」→ 选中原有ASP.NET应用,勾选上一步定义的access_as_user作用域,提交后点击「授予管理员同意」完成授权。
  • 第三步:校验ASP.NET后端的身份验证配置
    原有ASP.NET后端只要已经配置了AAD B2C的JWT校验逻辑,仅需确认校验规则中的aud(受众)字段为ASP应用自身的clientId即可,无需额外修改,本身就会自动校验所有合法客户端签发的、携带对应作用域的访问令牌。
  • 第四步:调整PWA端MSAL配置
    在PWA的MSAL初始化逻辑中,将ASP.NET API的自定义作用域添加到获取令牌的scopes参数中,调用后端接口时将MSAL返回的访问令牌携带在Authorization请求头中即可。
  • 第五步:安全配置CORS规则
    无需全局开放CORS,仅需在ASP.NET后端的CORS配置中,仅将PWA的正式域名加入允许的源列表,同时仅放行Authorization请求头和业务用到的请求方法,不存在安全隐患。

常见问题排查

  • 若令牌校验失败,可先解码访问令牌,确认aud字段是否为ASP.NET应用的clientId,scp字段是否包含定义的自定义作用域
  • 两个应用注册必须属于同一个AAD B2C租户,跨租户场景需要额外配置多租户支持规则

内容的提问来源于stack exchange,提问作者ismv

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 06:24:05