D365 FO: Odata authentication (OAuth) via Code



using System;

using Microsoft.Azure.Storage.Blob;

using Microsoft.IdentityModel.Clients.ActiveDirectory;

using Newtonsoft.Json;

using Newtonsoft.Json.Linq;

using System.IO;

using System.Net.Http;

using System.Net.Http.Headers;

using System.Text;

using System.Threading;

using System.Threading.Tasks;

 

namespace FO_AuthTest

{

   

    internal class DMFManager

    {

 

        static string downloadUrl = string.Empty;

 

       

        static string aadTenant = "https://login.windows.net/test.com”;

       

        static string aadResource = "https://test-aos.cloudax.dynamics.com";

       

        static string aadClientAppId = "7671rt11-tggg-4287-b3a2-b67rt21123dd";

        static string aadClientAppSecret = "sfdsfsdfdsgfdsgfdsgfdg9LMrpVs4jWwRwpbOAs=";

 

    public static void Main(string[] args)

    {

        processTask();

    }

 

    /// <summary>

    /// Retrieves an authentication header from the service.

    /// </summary>

   /// <returns>The authentication header for the Web API call.</returns>

    private static string GetAuthenticationHeader()

    {

           AuthenticationContext authenticationContext = new AuthenticationContext(aadTenant);

            var credential = new ClientCredential(aadClientAppId, aadClientAppSecret);

            AuthenticationResult authenticationResult = authenticationContext.AcquireTokenAsync(aadResource,                                         credential).Result;

            return authenticationResult.AccessToken;

    }

 

    private static void processTask()

    {

                string authHeader = GetAuthenticationHeader(); //Get bearer token

                HttpClient client = new HttpClient();

                client.BaseAddress = new Uri(aadResource);

                client.DefaultRequestHeaders.Clear();

                client.DefaultRequestHeaders.Authorization = new      AuthenticationHeaderValue("Bearer", authHeader);

                ……..

                ……………

    }

 


1 comment:

  1. Such great information. Thanks for this article. very helpful. please keep share more article. ICV Certification

    ReplyDelete

The Moment Tokens, Vectors, and Models Click, AI Starts Making Sense

  You've probably heard these terms dozens of times by now. They're showing up in AI discussions, Copilot demos, Azure OpenAI conver...

Powered by Blogger.