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

能否无需client_id仅通过用户名密码Web请求获取Azure访问令牌?

问题解答

能否不使用client_id获取访问令牌

不行,client_id是Azure AD OAuth 2.0密码授权流的必填参数,所有向https://login.microsoftonline.com/$TenantId/oauth2/v2.0/token发起的令牌请求,都必须携带合法的client_id,缺少该参数的请求会直接被Azure AD拦截返回错误。

Get-AzAccessToken是否内部使用了client_id

是,当你调用Get-AzAccessToken且没有显式指定client_id参数时,命令内部会自动使用微软官方预置的Azure PowerShell公共客户端ID,该ID固定为1950a258-227b-4e69-a8d2-2b207562c205,是微软提前在Azure AD中注册好、专门给Azure PowerShell模块默认使用的公共客户端标识。

复现无显式client_id参数的Get-AzAccessToken效果

你可以直接将代码中的$ClientId替换为上述公共客户端ID,不需要自行注册应用即可完成请求,修改后的示例代码如下:

$postParams = @{
  grant_type = 'password'
  client_id  = '1950a258-227b-4e69-a8d2-2b207562c205'
  username   = $Username
  password   = $Password
  scope      = 'https://graph.microsoft.com/.default'
}

Write-Host "Getting access token for app"
  
Invoke-RestMethod `
  -Uri https://login.microsoftonline.com/$TenantId/oauth2/v2.0/token `
  -Method POST `
  -ContentType application/x-www-form-urlencoded `
  -Body $postParams

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 07:06:02