我目前正在尝试通过 Copilot Studios 上的 http POST 访问 entraID 访问令牌:
目前我的帖子看起来是这样的:
POST https://login.microsoftonline.com/common/oauth2/token
身体: { “client_id”:“4052b5a7-7355-40f0-a613-fc0dc88d2249”, “client_secret”:“xxxxxxxx”, "grant_type": "client_credentials", “资源”:“https://management.azure.com” }
我不断收到 400 错误请求响应...我应该对 JSON 格式进行任何设置或更新来解决此问题。
我尝试了在其他线程上看到的 JSON 格式的多种不同变体,并按照微软文档创建了无数新的 Entra 应用程序注册
谢谢
尝试下面的脚本,如果您想要
Microsoft Entra Id
的访问令牌,请将范围更改为 https://graph.microsoft.com/.default
。如果访问令牌用于获取 Azure 资源(例如虚拟机、存储帐户等),则使用范围 https://management.azure.com/.default
azureTokenGet.ps1
[CmdletBinding()]
param (
[Parameter(Mandatory)]
[string]$TenantId,
[Parameter(Mandatory)]
[string]$ClientId,
[Parameter(Mandatory)]
[string]$ClientSecret
)
$headers = @{
"Content-Type" = "application/x-www-form-urlencoded"
}
$uri = "https://login.microsoftonline.com/$TenantId/oauth2/v2.0/token"
$body = @{
grant_type = "client_credentials"
scope = "https://management.azure.com/.default"
client_id = $ClientId
client_secret = $ClientSecret
}
$token = Invoke-RestMethod -Method Post -Uri $uri -Body $body -Headers $headers
return $token.access_token