azure Invoke-RestMethod:未授权的客户端获取验证令牌

d7v8vwbk  于 2022-11-25  发布在  其他
关注(0)|答案(2)|浏览(142)

我已在Azure Active Directory中创建应用注册。我尝试调用使用以下PowerShell脚本验证的Azure广告,但始终显示错误:

$clientID = '<clientID>'
$secretKey = '<key>'
$tenantID = '<TenantID>'

$password = ConvertTo-SecureString -String $secretKey -AsPlainText -Force
$credential = New-Object System.Management.Automation.PSCredential($ClientID,$password)
Connect-AzureRmAccount -ServicePrincipal -Credential $credential -Tenant $tenantID

$authUrl = "https://login.microsoftonline.com/" + $tenantID + "/oauth2/v2.0/token/"
$body = @{
   "scope" = "api://a193b314b-7854-9aab-bb78-6a50ffxxxxxx/";
   "grant_type" = "client_credentials";
   "client_id" = $ClientID
   "client_secret" = $secretKey
}

Write-Output "Getting Authentication-Token" 
$adlsToken = Invoke-RestMethod -Uri $authUrl –Method POST -Body $body
Write-Output $adlsToken

我得到这个错误。请让我明白为什么我得到这个错误
调用REST方法:{“错误”:“无效作用域”,“错误描述”:“AADSTS 1002012:为作用域api://3e 3643 c5 - 90 af-ece提供的值无效。客户端凭据流的作用域值必须在资源标识符(应用程序ID URI)后添加后缀为/.default的值。\r\n跟踪ID:2d 4f 23 bf-b317 - 4d 5c-b5 xxxxx\r\n相关ID:fe 5945 b4-b2 c2 -4814- 9xxxxxxx\r\n时间戳:04:26:09 Z”,“错误代码”:[1002012],“时间戳”:“2022-11-19 04:26:09 Z”,“跟踪ID”:“2d 4f 23 bfb 3174 d5 cb 5a 7 xxxxxxx”,“相关ID”:“fe 5945 b4-b2 c2 -4814- 99 xxxxxx”}
连接AzAccount:ClientSecretCredential身份验证失败:AADSTS 700016标准:在目录“Default”中未找到标识符为“3e 3643 c5 - 90 af-4af 6-afxxxxxxx”的应用程序

a64a0gku

a64a0gku1#

我尝试在我的环境中重现相同的问题,但得到了如下相同的错误:

要解决此问题,请检查您提供的ClientID是否正确,如下所示:

并且,在错误提及的范围内,您遗漏了**/.default,确保包括/.default**,如下所示:

"api://xxxxxx/.default";

当我运行相同的脚本和范围默认值时,我成功地得到了如下结果:

c6ubokkw

c6ubokkw2#

您可以尝试在作用域中添加.default,

"scope" = "api://a193b314b-7854-9aab-bb78-6a50ffxxxxxx/.default"

如果它工作,请参阅参考。

相关问题