Trying to implement single sign On using oauth 2.0 and openIDConnect in ASP.NET web form Application. I have all the credential. My authority address i am browsing and returning JSON Data. But, from my code it's showing Error.What is the issue in my code configurationManager.GetConfigurationAsync(CancellationToken.None).Result; return configuration.SigningKeys;?
public void Configuration(IAppBuilder app)
{
IdentityModelEventSource.ShowPII = true;
// Configure the authentication middleware
app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType);
app.UseCookieAuthentication(new CookieAuthenticationOptions());
// Configure the OpenID Connect authentication middleware
app.UseOpenIdConnectAuthentication(new OpenIdConnectAuthenticationOptions
{
ClientId = ConfigurationManager.AppSettings["OpenIdConnectClientId"],
ClientSecret = ConfigurationManager.AppSettings["OpenIdConnectClientSecret"],
Authority = ConfigurationManager.AppSettings["OpenIdConnectAuthority"],
RedirectUri = ConfigurationManager.AppSettings["OpenIdConnectRedirectUri"],
ResponseType = OpenIdConnectResponseType.Code,
Scope = OpenIdConnectScope.OpenId + " " + "profile" + " " + OpenIdConnectScope.Email,
SignInAsAuthenticationType = CookieAuthenticationDefaults.AuthenticationType,
Notifications = new OpenIdConnectAuthenticationNotifications
{
RedirectToIdentityProvider = (context) =>
{
context.ProtocolMessage.RedirectUri = ConfigurationManager.AppSettings["OpenIdConnectRedirectUri"];
return Task.CompletedTask;
},
AuthenticationFailed = (context) =>
{
// Handle authentication failure
context.HandleResponse();
context.Response.Redirect("/Error?message=" + context.Exception.Message);
return Task.CompletedTask;
}
},
TokenValidationParameters = new TokenValidationParameters
{
ValidateIssuer = true,
ValidateAudience = true,
ValidateLifetime = true,
ValidateIssuerSigningKey = true,
ValidIssuer = ConfigurationManager.AppSettings["OpenIdConnectAuthority"],
ValidAudience = ConfigurationManager.AppSettings["OpenIdConnectClientId"],
IssuerSigningKeys = GetSigningKeys()
}
});
}
private IEnumerable<SecurityKey> GetSigningKeys()
{
var issuer = ConfigurationManager.AppSettings["OpenIdConnectAuthority"];
var configurationManager = new ConfigurationManager<OpenIdConnectConfiguration>($"{issuer}/.well-known/openid-configuration", new OpenIdConnectConfigurationRetriever());
var configuration = configurationManager.GetConfigurationAsync(CancellationToken.None).Result;
return configuration.SigningKeys;
}
Error:
Stack Trace:
[HttpRequestException: Response status code does not indicate success: 426 (InvalidRequest).] System.Net.Http.HttpResponseMessage.EnsureSuccessStatusCode() +121294 Microsoft.IdentityModel.Protocols.d__8.MoveNext() +720
[IOException: IDX20804: Unable to retrieve document from: 'https://login.microsoftonline.com/f66fae02-5d36-495b-bfe0-78a6ff9f8e6e/.well-known/openid-configuration'.] Microsoft.IdentityModel.Protocols.d__8.MoveNext() +1167 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() +31 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) +60 Microsoft.IdentityModel.Protocols.OpenIdConnect.d__3.MoveNext() +388 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() +31 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) +60 Microsoft.IdentityModel.Protocols.d__24.MoveNext() +865
[InvalidOperationException: IDX20803: Unable to obtain configuration from: 'https://login.microsoftonline.com/f66fae02-5d36-495b-bfe0-78a6ff9f8e6e/.well-known/openid-configuration'.] Microsoft.IdentityModel.Protocols.d__24.MoveNext() +1570
[AggregateException: One or more errors occurred.] System.Threading.Tasks.Task`1.GetResultCore(Boolean waitCompletionNotification) +4761032 AHS.HR.UserInterface.Startup.GetSigningKeys() in C:\SSO\AHS.HR.Mgt.GSK\AHS.HR.Mgt\AHS.HR.Mgt.UserInterface\Startup.cs:85 AHS.HR.UserInterface.Startup.Configuration(IAppBuilder app) in C:\SSO\AHS.HR.Mgt.GSK\AHS.HR.Mgt\AHS.HR.Mgt.UserInterface\Startup.cs:44
[TargetInvocationException: Exception has been thrown by the target of an invocation.]
System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) +0
System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments) +128
System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) +142
Owin.Loader.<>c__DisplayClass19_1.b__0(IAppBuilder builder) +93
Owin.Loader.<>c__DisplayClass9_0.b__0(IAppBuilder builder) +212
Microsoft.Owin.Host.SystemWeb.OwinAppContext.Initialize(Action1 startup) +873 Microsoft.Owin.Host.SystemWeb.OwinBuilder.Build(Action
1 startup) +51
Microsoft.Owin.Host.SystemWeb.OwinHttpModule.InitializeBlueprint() +101
System.Threading.LazyInitializer.EnsureInitializedCore(T& target, Boolean& initialized, Object& syncLock, Func`1 valueFactory) +135
Microsoft.Owin.Host.SystemWeb.OwinHttpModule.Init(HttpApplication context) +160
System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext, HttpContext context, MethodInfo[] handlers) +580
System.Web.HttpApplication.InitSpecial(HttpApplicationState state, MethodInfo[] handlers, IntPtr appContext, HttpContext context) +165
System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext, HttpContext context) +267
System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext) +341
[HttpException (0x80004005): Exception has been thrown by the target of an invocation.] System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +523 System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +107 System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +688