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

.NET中Scalar迁移OAuth2授权码流(PKCE)遇Azure AD client_id缺失错误

解决AADSTS900144错误的步骤

1. 对齐Scalar与OpenAPI的安全方案名称

你的OpenAPI文档中定义的安全方案名称是Bearer,但Scalar配置里的AddPreferredSecuritySchemes和AddAuthorizationCodeFlow用的是OAuth2/OAuth,名称不匹配会导致Scalar无法正确关联配置,传递参数时遗漏client_id。

修改Scalar配置:

application.MapScalarApiReference(
    options =>
        options
            .AddPreferredSecuritySchemes("Bearer") // 改为和OpenAPI一致的名称
            .AddAuthorizationCodeFlow("Bearer", flow => // 安全方案名称匹配OpenAPI里的"Bearer"
            {
                flow.ClientId = entraIdAuthenticationSettings.ClientId;
                flow.Pkce = Pkce.Sha256;
                // 明确指定Entra ID的授权和令牌端点,确保和OpenAPI配置一致
                flow.AuthorizationUrl = "https://login.microsoftonline.com/[company-id]/oauth2/v2.0/authorize";
                flow.TokenUrl = "https://login.microsoftonline.com/[company-id]/oauth2/v2.0/token";
                flow.Scopes = entraIdAuthenticationSettings.Scopes;
            }));

2. 更新OpenAPI的OAuth2流类型

你当前OpenAPI用的是implicit隐式流,而Scalar配置的是授权码流(Authorization Code Flow),两者不匹配会导致认证流程参数错误。Entra ID推荐使用带PKCE的授权码流,所以修改OpenAPI的flows:

"securitySchemes": {
  "Bearer": {
    "type": "oauth2",
    "flows": {
      "authorizationCode": { // 替换原来的implicit流
        "authorizationUrl": "https://login.microsoftonline.com/[company-id]/oauth2/v2.0/authorize",
        "tokenUrl": "https://login.microsoftonline.com/[company-id]/oauth2/v2.0/token",
        "scopes": {
          "api://[app-id]/Redispatch-Access": "Access the API for reading"
        }
      }
    }
  }
}

3. 验证Entra ID应用配置

确保你的Entra ID应用注册中:

  • 已启用授权码流(在「身份验证」→「高级设置」里确认允许授权码流)
  • 重定向URI已添加Scalar的回调地址(通常为https://<你的域名>/scalar/oauth2/callback)
  • Client ID与代码中entraIdAuthenticationSettings.ClientId完全一致

完成以上修改后重启应用,再尝试通过Scalar UI跳转认证,即可正常传递client_id参数,解决AADSTS900144错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 20:35:23