/// <summary> /// Builds a Confidential Client Application for authorizing an App Registration with API. /// </summary> /// <param name="appRegistrationConfig"></param> /// <returns></returns> private static IConfidentialClientApplication BuildClientApplication(AppRegistrationConfig appRegistrationConfig) { return(ConfidentialClientApplicationBuilder.Create(appRegistrationConfig.ClientId) .WithClientSecret(appRegistrationConfig.ClientSecret) .WithAuthority(new Uri(appRegistrationConfig.Authority)) .Build()); }
/// <summary> /// Loads the <see cref="AppRegistrationConfig"/> and <see cref="ApiRegistrationConfig"/> configs. /// </summary> /// <param name="appRegistrationConfig">Config for Azure App Registraiton</param> /// <param name="apiRegistrationConfig">Config for the API Subscription Key from Customer Insights.</param> private static void LoadConfigs(AppRegistrationConfig appRegistrationConfig, ApiRegistrationConfig apiRegistrationConfig) { var builder = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("appsettings.json"); IConfigurationRoot configuration = builder.Build(); configuration.GetSection("AppRegistration").Bind(appRegistrationConfig); configuration.GetSection("ApiRegistration").Bind(apiRegistrationConfig); appRegistrationConfig.Authority = "https://login.microsoftonline.com/" + appRegistrationConfig.Tenant; }
internal static async Task <CustomerInsights> ConnectAsync() { AppRegistrationConfig appRegistrationConfig = new AppRegistrationConfig(); ApiRegistrationConfig apiRegistrationConfig = new ApiRegistrationConfig(); LoadConfigs(appRegistrationConfig, apiRegistrationConfig); IConfidentialClientApplication app = BuildClientApplication(appRegistrationConfig); CustomerInsights customerInsightsApi = await CreateCustomerInsightsApi(apiRegistrationConfig, app); api = customerInsightsApi; return(customerInsightsApi); //var sampleInteractions = new SampleApiInteractions(customerInsightsApi); //await sampleInteractions.StartAsync(); }