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

Azure自定义声明提供者配置遇AADSTS1100001不可重试错误

解决AADSTS1100001错误及日志追踪方案

一、排查AADSTS1100001错误的核心步骤

  • 验证自定义声明配置:确认你在应用注册的「令牌配置」中已添加correlationId和customRoles这两个自定义声明。AAD仅允许返回预先配置的自定义声明,未配置的字段会触发无效请求错误。
  • 修正响应字段合法性:确保返回的claims中无undefined值。你的代码中correlationId可能从query获取到undefined,建议优先从请求body提取,并设置默认空字符串避免无效值。
  • 显式设置HTTP响应状态码:在函数响应中明确设置status: 200,AAD要求自定义声明提供者必须返回200 OK响应,否则会判定请求无效。
  • 检查JSON格式与拼写:确认@odata.type的拼写完全正确(注意大小写和命名空间),响应JSON不能存在语法错误(如多余逗号、缺失引号)。

二、优化后的函数代码示例

import { AzureFunction, Context, HttpRequest } from "@azure/functions"

const httpTrigger: AzureFunction = async function (context: Context, req: HttpRequest): Promise<void> {
  context.log(`request method: ${req.method}`);
  context.log(`request headers: ${JSON.stringify(req.headers)}`);
  context.log(`request body: ${JSON.stringify(req.body)}`);

  // 优先从请求body获取correlationId,避免返回undefined
  const correlationId = req.body?.data?.authenticationContext?.correlationId || "";
  context.log(`correlationId: ${correlationId}`);

  const user = req.body?.data?.authenticationContext?.user;
  context.log(`user: ${JSON.stringify(user)}`);

  const responseBody = {
    data: {
      "@odata.type": "microsoft.graph.onTokenIssuanceStartResponseData",
      actions: [
        {
          "@odata.type": "microsoft.graph.tokenIssuanceStart.provideClaimsForToken",
          claims: {
            correlationId,
            customRoles: ["Writer", "Editor"]
          }
        }
      ]
    }
  };

  // 输出响应日志,便于排查格式问题
  context.log(`response body: ${JSON.stringify(responseBody)}`);

  context.res = {
    status: 200, // 显式返回200状态码
    body: responseBody
  };
};

export default httpTrigger;

三、获取底层错误追踪的方法

  • 函数应用日志:进入函数应用的「监控」->「日志」,运行查询traces | where message contains "response body",查看函数返回的完整响应内容,确认是否符合AAD格式要求。
  • Azure AD登录日志:进入Azure AD的「日志」->「登录日志」,搜索错误中的Correlation ID(cbcd178c-4859-40c5-9193-43693382f315),点击记录的「详情」->「错误」部分,通常会显示具体失败原因(如未配置自定义声明)。
  • 启用AAD诊断日志:将Azure AD诊断日志发送到Log Analytics工作区,运行查询AuditLogs | where CorrelationId == "cbcd178c-4859-40c5-9193-43693382f315",获取更详细的错误上下文。

内容的提问来源于stack exchange,提问作者Ryan Pierce Williams

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 06:35:02