ไม่สามารถรับโทเค็นการรีเฟรชของ https://management.azure.com/ โดยใช้ PowerShell

Aug 21 2020

ฉันพยายามรับโทเค็นการเข้าถึงและรีเฟรชโทเค็นสำหรับทรัพยากร "https://management.azure.com/" โดยใช้ PowerShell แต่ฉันได้รับโทเค็นการเข้าถึงเพียงรายการเดียว ฉันต้องการโทเค็นการรีเฟรชด้วย ฉันแบ่งปันรหัสของฉันตามด้านล่าง

$clientID = '1xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' $secretKey = 'kdfudifkldfliKASDFKkdfjd-ddkjfidysikd'
$tenantID = 'fxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' $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.windows.net/" + $tenantID + "/oauth2/token/"
$body = @{ "resource" = "https://management.azure.com/"; "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

------------ เอาท์พุท ---------------

Getting Authentication-Token ...
token_type     : Bearer
expires_in     : 3599
ext_expires_in : 3599
expires_on     : 1597999269
not_before     : 1597995369
resource       : https://management.azure.com/
access_token   : J0uYFoioURT4CdISuUrRrr...

คำตอบ

CarlZhao Aug 21 2020 at 11:04

ข้อมูลจำเพาะระบุประเภทการให้สิทธิ์ข้อมูลรับรองไคลเอนต์ต้องไม่อนุญาตให้ออกโทเค็นการรีเฟรช คำตอบคือคุณต้องใช้การให้สิทธิ์ประเภทอื่นเพื่อรับโทเค็นการรีเฟรชพร้อมโทเค็นการเข้าถึง

ดังนั้นขอแนะนำให้คุณใช้โฟลว์รหัสรับรองความถูกต้องซึ่งจะส่งคืนโทเค็นการรีเฟรชให้คุณเมื่อคุณร้องขอโทเค็น

อัปเดต: