public async Task <OpenIdConfigurationResponse> SendOpenIdConfigurationRequest( OpenIdConfigurationRequestModel requestModel) { using (var handler = new WebRequestHandler()) { if (requestModel.AllowSelfHostedCertificates) { handler.ServerCertificateValidationCallback = (sender, cert, chain, sslPolicyErrors) => true; } using (var httpClient = new HttpClient(handler)) { var response = await httpClient.GetAsync(requestModel.OpenIdConfigurationUrl); var responseString = await response.Content.ReadAsStringAsync(); var isSucceeded = response.IsSuccessStatusCode; var responseModel = isSucceeded ? JsonConvert.DeserializeObject <OpenIdConfigurationResponseModel>(responseString) : null; return(new OpenIdConfigurationResponse { Model = responseModel, JsonString = responseString, IsSucceeded = isSucceeded }); } } }
private async Task <(string audience, string siAuthorizationEndpoint)> ProcessOpenIdConfiguration( string openIdConfigurationUrl) { var emptyResult = ("", ""); if (!string.IsNullOrEmpty(Result.ErrorMessage)) { return(emptyResult); } if (string.IsNullOrEmpty(_correlationId) || string.IsNullOrEmpty(openIdConfigurationUrl)) { return(emptyResult); } var openIdConfigurationRequestModel = new OpenIdConfigurationRequestModel { OpenIdConfigurationUrl = openIdConfigurationUrl }; var openIdConfigurationResponse = await Client.SendOpenIdConfigurationRequest(openIdConfigurationRequestModel); if (openIdConfigurationResponse == null) { Result.ErrorMessage = "OpenId Configuration Response is null"; return(emptyResult); } Result.OpenIdConfigurationResponse = openIdConfigurationResponse; if (!openIdConfigurationResponse.IsSucceeded) { Result.ErrorMessage = "OpenId Configuration Response StatusCode is not success"; return(emptyResult); } if (!TryGetAudience(openIdConfigurationResponse, out var audience)) { return(emptyResult); } if (!TryGetSiAuthorizationEndpoint(openIdConfigurationResponse, out var siAuthorizationEndpoint)) { return(emptyResult); } return(audience, siAuthorizationEndpoint); }