通过 API 调用访问 EntraID 访问令牌时遇到问题

问题描述 投票:0回答:1

我目前正在尝试通过 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 应用程序注册

谢谢

http oauth access-token microsoft-entra-id microsoft-copilot
1个回答
0
投票

尝试下面的脚本,如果您想要

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

© www.soinside.com 2019 - 2024. All rights reserved.