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

Azure B2C刷新令牌:不同创建方式用户的client_secret要求差异问题

解决Azure B2C刷新令牌时的AADB2C90084错误

嘿,这个问题的核心矛盾其实是应用程序的客户端类型配置差异导致的——AzureAD模块创建用户时,默认把关联的应用标记成了「公共客户端」,而你通过门户/Postman操作时用的是「机密客户端」,两者的令牌刷新规则完全不同。

为什么会出现这个错误?

  • 机密客户端(Confidential Client):这类应用(比如Web应用)能安全存储client_secret,所以刷新令牌时必须携带这个密钥来证明身份,这就是门户/Postman场景下正常的原因。
  • 公共客户端(Public Client):像移动APP、桌面APP这类无法安全保存密钥的应用,AzureAD会把它们归为公共客户端,这类客户端刷新令牌时绝对不能发送client_secret,否则就会触发AADB2C90084错误。而AzureAD模块创建用户时,大概率默认关联了公共客户端类型的应用。

三种解决方案任你选

1. 把应用改成机密客户端(最直接)

如果你的应用本来就应该是机密客户端(比如Web应用),直接在Azure门户调整配置:

  • 登录Azure B2C租户,进入应用注册找到你的应用
  • 点击概述页面的「客户端类型」编辑按钮
  • 把类型从「公共客户端」切换为「机密客户端」,保存更改
  • 之后刷新令牌时继续携带client_secret就没问题了

2. 适配公共客户端的刷新流程

如果你的应用确实是公共客户端(比如桌面APP),那刷新令牌时要去掉client_secret参数,用公共客户端的请求格式:

# 示例:公共客户端刷新令牌的PowerShell请求
$tokenUrl = "https://your-b2c-tenant.b2clogin.com/your-b2c-tenant.onmicrosoft.com/B2C_1_your-signup-signin-policy/oauth2/v2.0/token"
$refreshParams = @{
    grant_type    = "refresh_token"
    refresh_token = "your-valid-refresh-token"
    client_id     = "your-app-client-id"
    scope         = "openid offline_access your-api-scope"
}
$newToken = Invoke-RestMethod -Uri $tokenUrl -Method Post -Body $refreshParams

3. 调整PowerShell创建用户的关联应用

检查你用New-AzureADUser时关联的应用,确保它是已配置为机密客户端的应用:

# 先获取目标机密客户端的应用对象
$targetApp = Get-AzureADApplication -Filter "DisplayName eq 'Your-Confidential-App'"
# 创建用户时显式关联该应用
$passwordProfile = New-Object -TypeName Microsoft.Open.AzureAD.Model.PasswordProfile
$passwordProfile.Password = "YourStrongPassword123!"
$passwordProfile.ForceChangePasswordNextLogin = $false

New-AzureADUser -AccountEnabled $true `
    -DisplayName "Test User" `
    -UserPrincipalName "test-user@your-b2c-tenant.onmicrosoft.com" `
    -PasswordProfile $passwordProfile `
    -AppId $targetApp.AppId

快速验证应用类型的方法

进入应用注册的认证页面:如果看到「允许公共客户端流」的开关是开启状态,那就是公共客户端;如果有「客户端凭据」下的密钥配置,那就是机密客户端。


内容的提问来源于stack exchange,提问作者Germán Svriz

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:24:24