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

使用Client Credentials授权Azure Function API时遇AADSTS90083错误求助

AADSTS90083: Request is unsupported 错误排查(客户端凭证模式调用Azure Function)

问题场景

已在Microsoft Entra ID中注册Azure Function App及对应客户端应用,Authorization Code授权模式可正常工作,但使用Client Credentials模式时触发以下错误:

java.util.concurrent.CompletionException:
com.microsoft.aad.msal4j.MsalInteractionRequiredException:
AADSTS90083: Request is unsupported. Trace ID:
20d89e47-3937-4535-b174-8cc57d31a400 Correlation ID:
c2bc0944-902d-4768-851e-615bcfd6776c Timestamp: 2024-04-09 06:09:57Z
at
com.microsoft.aad.msal4j.AuthenticationResultSupplier.get(AuthenticationResultSupplier.java:89)
at
com.microsoft.aad.msal4j.AuthenticationResultSupplier.get(AuthenticationResultSupplier.java:17)
at
java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1768)
... 1 more Caused by:
com.microsoft.aad.msal4j.MsalInteractionRequiredException:
AADSTS90083: Request is unsupported. Trace ID:
20d89e47-3937-4535-b174-8cc57d31a400 Correlation ID:
c2bc0944-902d-4768-851e-615bcfd6776c Timestamp: 2024-04-09 06:09:57Z
at
com.microsoft.aad.msal4j.MsalServiceExceptionFactory.fromHttpResponse(MsalServiceExceptionFactory.java:37)
at

已尝试修改scope、添加app roles,但问题未解决。

排查与解决步骤

1. 确认Azure Function App的应用权限配置

客户端凭证模式属于应用级授权,必须给客户端应用分配应用权限(而非委托权限),且需完成管理员同意:

  • 进入Azure Portal → Microsoft Entra ID → 应用注册 → 找到你的客户端应用 → API权限
  • 点击“添加权限” → 选择“我的API” → 选中你的Azure Function App注册
  • 在“应用权限”标签下勾选所需权限(若已配置app roles,选择对应的角色)
  • 点击“授予管理员同意”(必须完成此步骤,应用权限才会生效)

2. 修正Scope参数格式

客户端凭证模式下,scope必须使用应用级格式,不能使用委托权限的scope:

  • 正确格式:{Function App的应用ID URI}/.default 或 {Function App的Client ID}/.default
  • 示例:如果Function App的应用ID URI是api://abc123-xyz-789,则scope应为api://abc123-xyz-789/.default
  • 注意:不要使用类似user.read的用户级scope,这类scope仅适用于授权码等需要用户交互的模式

3. 验证App Roles的配置有效性

若使用自定义app roles,需确保角色支持应用身份:

  • 进入Azure Function App的应用注册 → 应用角色 → 检查角色的allowedMemberTypes是否包含Application
  • 确认客户端应用已被分配该角色:在客户端应用的“应用角色分配”中,检查是否存在对应Function App的角色分配

4. 检查客户端应用的凭据与请求参数

  • 确保客户端应用已配置有效的凭据(客户端密钥或证书),请求时需正确传入client_id和client_secret(或证书相关参数)
  • 确认请求的完整参数:
    POST https://login.microsoftonline.com/{租户ID}/oauth2/v2.0/token
    Content-Type: application/x-www-form-urlencoded
    
    grant_type=client_credentials
    &client_id={客户端应用ID}
    &client_secret={客户端密钥}
    &scope={正确的应用级scope}
    

5. 检查Function App的身份验证设置

  • 确保Azure Function App的“身份验证”功能中,已启用Microsoft Entra ID作为身份提供者,且配置的受众(Audience)与客户端请求的scope匹配

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 05:42:11