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
(Objective-C) Azure AD Service-to-service access token requestSend an Azure AD service-to-service token request to get an access token using a shared secret. For more information, see https://docs.microsoft.com/en-us/azure/active-directory/develop/v1-oauth2-client-creds-grant-flow#service-to-service-access-token-request
#import <CkoHttp.h> #import <CkoHttpRequest.h> #import <CkoHttpResponse.h> #import <CkoJsonObject.h> #import <NSString.h> // This example requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. CkoHttp *http = [[CkoHttp alloc] init]; // To see the exact HTTP request sent and the response, set the SessionLogFilename property: http.SessionLogFilename = @"qa_output/chilkatHttpLog.txt"; CkoHttpRequest *req = [[CkoHttpRequest alloc] init]; // Set the following request params: // grant_type required Specifies the requested grant type. In a Client Credentials Grant flow, the value must be client_credentials. // // client_id required Specifies the Azure AD client id of the calling web service. // To find the calling application's client ID, in the Azure portal, click Azure Active Directory, click App registrations, click the application. // The client_id is the Application ID // // client_secret required Enter a key registered for the calling web service or daemon application in Azure AD. // To create a key, in the Azure portal, click Azure Active Directory, click App registrations, click the application, click Settings, click Keys, and add a Key. // URL-encode this secret when providing it. // // resource required Enter the App ID URI of the receiving web service. To find the App ID URI, in the Azure portal, click Azure Active Directory, // click App registrations, click the service application, and then click Settings and Properties. [req AddParam: @"grant_type" value: @"client_credentials"]; [req AddParam: @"client_id" value: @"MY_CLIENT_ID"]; [req AddParam: @"client_secret" value: @"MY_CLIENT_SECRET"]; [req AddParam: @"resource" value: @"https://service.contoso.com/"]; // The URL passed to PostUrlEncoded has this form: https://login.microsoftonline.com/<tenant_id>/oauth2/token CkoHttpResponse *resp = [http PostUrlEncoded: @"https://login.microsoftonline.com/<tenant_id>/oauth2/token" req: req]; if (http.LastMethodSuccess == NO) { NSLog(@"%@",http.LastErrorText); return; } int respStatusCode = [resp.StatusCode intValue]; NSLog(@"%@%d",@"Response Status Code = ",respStatusCode); CkoJsonObject *json = [[CkoJsonObject alloc] init]; json.EmitCompact = NO; [json Load: resp.BodyStr]; NSLog(@"%@",@"Response JSON:"); NSLog(@"%@",[json Emit]); if (respStatusCode >= 400) { NSLog(@"%@",@"Response Header:"); NSLog(@"%@",resp.Header); NSLog(@"%@",@"Failed."); return; } // Sample response: // { // "token_type": "Bearer", // "expires_in": "3599", // "ext_expires_in": "3599", // "expires_on": "1570059833", // "not_before": "1570055933", // "resource": "https://adminchilkatsoft.onmicrosoft.com/eb1b8ced-76b7-4845-aec5-d3e91776e345", // "access_token": "eyJ0eXAiO ... pmgw" // } // To get the items from the JSON.... NSString *token_type = [json StringOf: @"token_type"]; NSString *expires_in = [json StringOf: @"expires_in"]; NSString *ext_expires_in = [json StringOf: @"ext_expires_in"]; NSString *expires_on = [json StringOf: @"expires_on"]; NSString *not_before = [json StringOf: @"not_before"]; NSString *resource = [json StringOf: @"resource"]; NSString *access_token = [json StringOf: @"access_token"]; |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.