AutoIt
AutoIt
Azure REST API Access Token
See more Azure OAuth2 Examples
Demonstrates how to request an Azure REST API OAUTH2 access token.Note: In order to access resources a Service Principal needs to be created in your Tenant. It is really convenient to do it via AZ CLI:
az ad sp create-for-rbac --name [APP_NAME] --password [CLIENT_SECRET]
Chilkat AutoIt Downloads
Local $bSuccess = False
; This example requires the Chilkat API to have been previously unlocked.
; See Global Unlock Sample for sample code.
$oRest = ObjCreate("Chilkat.Rest")
; URL: https://login.microsoftonline.com/TENANT_ID/oauth2/token
Local $bTls = True
Local $iPort = 443
Local $bAutoReconnect = True
$bSuccess = $oRest.Connect("login.microsoftonline.com",$iPort,$bTls,$bAutoReconnect)
If ($bSuccess <> True) Then
ConsoleWrite("ConnectFailReason: " & $oRest.ConnectFailReason & @CRLF)
ConsoleWrite($oRest.LastErrorText & @CRLF)
Exit
EndIf
; Add query params to the request.
$oRest.AddQueryParam("grant_type","client_credentials")
$oRest.AddQueryParam("client_id","APP_ID")
$oRest.AddQueryParam("client_secret","CLIENT_SECRET")
; Note: The resource must match the API for which you're using the access token..
$oRest.AddQueryParam("resource","https://management.azure.com/")
Local $strResponseBody = $oRest.FullRequestFormUrlEncoded("POST","/TENANT_ID/oauth2/token")
If ($oRest.LastMethodSuccess <> True) Then
ConsoleWrite($oRest.LastErrorText & @CRLF)
Exit
EndIf
Local $iRespStatusCode = $oRest.ResponseStatusCode
If ($iRespStatusCode >= 400) Then
ConsoleWrite("Response Status Code = " & $iRespStatusCode & @CRLF)
ConsoleWrite("Response Header:" & @CRLF)
ConsoleWrite($oRest.ResponseHeader & @CRLF)
ConsoleWrite("Response Body:" & @CRLF)
ConsoleWrite($strResponseBody & @CRLF)
Exit
EndIf
$oJson = ObjCreate("Chilkat.JsonObject")
$oJson.Load($strResponseBody)
$oJson.EmitCompact = False
ConsoleWrite($oJson.Emit() & @CRLF)
; The result is an access token such as the following:
; {
; "token_type": "Bearer",
; "expires_in": "3600",
; "ext_expires_in": "3600",
; "expires_on": "1557864616",
; "not_before": "1557860716",
; "resource": "https://management.azure.com/",
; "access_token": "eyJ0eXAiOiJKV1QiL ... 20UFDDOHEyUg"
; }
; We'll save this JSON to a file for other examples to use..
$oJson.WriteFile("qa_data/tokens/azureToken.json")