簡體   English   中英

Invoke-RestMethod:未經授權的客戶端獲取身份驗證令牌

[英]Invoke-RestMethod :unauthorized client for getting Authentication-token

我在 azure 活動目錄中創建了應用程序注冊。 我正在嘗試調用使用以下 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

我收到此錯誤。 請讓我明白為什么我會收到這個錯誤

Invoke-RestMethod: {"error":"invalid_scope","error_description":"AADSTS1002012: scope api://3e3643c5-90af-ece 的提供值無效。客戶端憑證流必須具有 scope 值和 /.default后綴到資源標識符(應用程序 ID URI)。\r\n跟蹤 ID:2d4f23bf-b317-4d5c-b5xxxxx\r\n關聯 ID:fe5945b4-b2c2-4814-9xxxxxxx\r\n時間戳:04:26:09Z"," error_codes":[1002012],"timestamp":"2022-11-19 04:26:09Z","trace_id":"2d4f23bfb3174d5cb5a7xxxxxxx","correlation_id":"fe5945b4-b2c2-4814-99xxxxxxxx"}

Connect-AzAccount:ClientSecretCredential 身份驗證失敗:AADSTS700016:在目錄“默認”中找不到標識符為“3e3643c5-90af-4af6-afxxxxxxx”的應用程序

我試圖在我的環境中重現相同的內容,我得到了如下相同的錯誤:

在此處輸入圖像描述

要解決此問題,請檢查您是否提供了正確的 ClientID,如下所示:

在此處輸入圖像描述

並且,在 scope 錯誤中提到您錯過了/.default確保包含/.default如下所示:

"api://xxxxxx/.default";

當我使用默認 scope 運行相同的腳本時,我成功獲得了如下結果:

在此處輸入圖像描述

您可以通過在 scope 中添加.default 來試試這個嗎,

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

如果有效,請參閱參考資料

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM