No se puede obtener el token de actualización de https://management.azure.com/ usando PowerShell

Aug 21 2020

Estoy intentando obtener el token de acceso y el token de actualización para el recurso "https://management.azure.com/" utilizando PowerShell, pero obtengo un único token de acceso. También necesito un token de actualización. Comparto mi código de la siguiente manera.

$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

------------salida---------------

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

Respuestas

CarlZhao Aug 21 2020 at 11:04

La especificación establece que el tipo de concesión de credenciales de cliente NO DEBE permitir la emisión de tokens de actualización. Entonces, la respuesta es que debe usar un tipo de concesión diferente para recibir un token de actualización con su token de acceso.

Por lo tanto, se recomienda que utilice el flujo de código de autenticación , que le devolverá el token de actualización cuando lo solicite.

Actualizar: