Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(Tcl) Azure REST API Access TokenDemonstrates 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]
load ./chilkat.dll # This example requires the Chilkat API to have been previously unlocked. # See Global Unlock Sample for sample code. set rest [new_CkRest] # URL: https://login.microsoftonline.com/TENANT_ID/oauth2/token set bTls 1 set port 443 set bAutoReconnect 1 set success [CkRest_Connect $rest "login.microsoftonline.com" $port $bTls $bAutoReconnect] if {$success != 1} then { puts "ConnectFailReason: [CkRest_get_ConnectFailReason $rest]" puts [CkRest_lastErrorText $rest] delete_CkRest $rest exit } # Add query params to the request. CkRest_AddQueryParam $rest "grant_type" "client_credentials" CkRest_AddQueryParam $rest "client_id" "APP_ID" CkRest_AddQueryParam $rest "client_secret" "CLIENT_SECRET" CkRest_AddQueryParam $rest "resource" "https://management.azure.com/" set strResponseBody [CkRest_fullRequestFormUrlEncoded $rest "POST" "/TENANT_ID/oauth2/token"] if {[CkRest_get_LastMethodSuccess $rest] != 1} then { puts [CkRest_lastErrorText $rest] delete_CkRest $rest exit } set respStatusCode [CkRest_get_ResponseStatusCode $rest] if {$respStatusCode >= 400} then { puts "Response Status Code = $respStatusCode" puts "Response Header:" puts [CkRest_responseHeader $rest] puts "Response Body:" puts "$strResponseBody" delete_CkRest $rest exit } set json [new_CkJsonObject] CkJsonObject_Load $json $strResponseBody CkJsonObject_put_EmitCompact $json 0 puts [CkJsonObject_emit $json] # 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.. CkJsonObject_WriteFile $json "qa_data/tokens/azureToken.json" delete_CkRest $rest delete_CkJsonObject $json |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.