Impossible d'obtenir le jeton d'actualisation de https://management.azure.com/ à l'aide de PowerShell

Aug 21 2020

J'essaie d'obtenir un jeton d'accès et un jeton d'actualisation pour la ressource «https://management.azure.com/» à l'aide de PowerShell, mais j'obtiens un jeton d'accès unique. J'ai également besoin d'un jeton d'actualisation. Je partage mon code comme ci-dessous.

$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

------------production---------------

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...

Réponses

CarlZhao Aug 21 2020 at 11:04

La spécification indique que le type d'octroi d' informations d'identification du client NE DOIT PAS permettre l'émission de jetons de rafraîchissement. La réponse est donc que vous devez utiliser un type d'accord différent pour recevoir un jeton d'actualisation avec votre jeton d'accès.

Par conséquent, il est recommandé d'utiliser le flux de code d'authentification , qui vous renverra le jeton d'actualisation lorsque vous demanderez le jeton.

Mettre à jour: