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

Azure Functions与ADB2C集成认证异常及相关疑问咨询

Azure Functions 集成 Azure AD B2C 认证问题

我有一个由HTTP触发函数组成的Azure Functions应用(API),同时使用Azure Active Directory B2C(ADB2C)租户及注册/登录策略管理用户身份。

规划的API工作流程

  • 用户通过ADB2C + MSAL在Web应用中完成注册/认证
  • 用户向API发起请求时,将认证获得的access_token放入Authorization请求头中
  • Azure自动处理令牌,提取用户数据,并在函数内的request.user字段中提供该数据

我的API函数代码

const { app } = require("@azure/functions");

app.http("HelloWorld", {
  methods: ["GET", "POST"],
  authLevel: "anonymous",
  handler: async (request, context) => {
    context.log(`Http function processed request for url "${request.url}"`);

    // Debug
    context.log(request.user);

    const name = request.query.get("name") || (await request.text()) || "world";
    const user = request.user ? JSON.stringify(request.user) : null;

    return { body: `Hello, ${name}! User data: ${user}` };
  },
});

尝试的集成方法及问题

方法1:通过Azure Functions自动创建应用注册

在Azure Functions → 我的应用 → 偏好设置 → 认证设置启用认证后,系统在ADB2C中创建了新的App Registration,但该应用注册提示:

You can use this application to authenticate against Microsoft Entra ID, but not Azure AD B2C.

通过该应用注册获取的令牌无法授权API请求,但直接访问函数应用URL时,会引导完成标准微软认证流程(非自定义B2C策略),重定向到默认页面后,通过开发者控制台发起请求可成功,请求依赖AppServiceAuthSession Cookie授权。

方法2:手动创建App Registration关联函数应用

手动创建App Registration并关联到函数应用,设置jwt.ms为重定向路径,获取的令牌仍无法完成认证;访问函数应用URL完成认证后,重定向到https://<my-app-url>/.auth/login/aad/callback,提示:

You do not have permission to view this directory or page.

方法3:混合配置尝试

使用自动创建的App Registration,但搭配手动创建的App Registration的颁发者URL,认证时出现错误:

The provided application with ID 'APP_ID' is not valid against this service. Please use an application created via the B2C portal and try again.

尝试过程中参考了Elio Struyf、Arjen van Benten的相关文章及Azure官方文档,同时测试了两种请求头格式:Authorization: Bearer %access_token% 和 Authorization: %access_token%。

疑问

  1. 我规划的工作流程逻辑是否正确?
  2. 是否可以使用Authorization令牌完成请求认证,还是只能通过Cookie实现?
  3. 是否应该用Microsoft Entra ID或Microsoft Entra External ID替代ADB2C?

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 23:22:23