tutorial net bearer asp angular asp.net-core asp.net-web-api2 asp.net-core-mvc identityserver3

angular - bearer - asp.net core web api authentication



No se puede obtener la configuraciĆ³n desde la configuraciĆ³n conocida/openid (5)

Estoy usando ASP.NET 5, en mi solución tengo API web, servidor de identidad y proyecto Angular 2 y estoy autenticando el cliente Angular 2 usando Identity Server, el cliente angular 2 consume la API web al pasar el token en solicitud HTTP y autenticación web api token y da respuesta, para esto he escrito un atributo personalizado que verifica que el usuario esté autenticado o no

Cuando consumo API, sigo recibiendo excepciones y Web API devuelve 500 errores internos del servidor.

System.InvalidOperationException: IDX10803: no se puede obtener la configuración de: '' http: //xx.xx.xx.x: 3926 / .well-known / openid-configuration ''. ---> System.IO.IOException: IDX10804: no se puede recuperar el documento de: '' http: //xx.xx.xx.x: 3926 / .well-known / openid-configuration ''. ---> System.AggregateException: ocurrieron uno o más errores. ---> System.Net.Http.HttpRequestException: Ocurrió un error al enviar la solicitud. ---> System.Net.WebException: no se puede conectar al servidor remoto ---> System.Net.Sockets.SocketException: un intento de conexión falló porque la parte conectada no respondió correctamente después de un período de tiempo, o conexión establecida error porque el host conectado no ha podido responder xx.xx.xx.x: 3926 en System.Net.Sockets.Socket.EndConnect (IAsyncResult asyncResult) en System.Net.ServicePoint.ConnectSocketInternal (Boolean connectFailure, Socket s4, Socket s6, Socket & socket, IPAddress & address, estado de ConnectSocketState, IAsyncResult asyncResult, Exception & exception)


Si el servidor de identidad y el middleware de validación de token de acceso están alojados en la misma aplicación, hay una condición de carrera al inicio.

El middleware de validación intenta cargar el documento de descubrimiento, que aún no está disponible.

En estos escenarios, establezca el indicador DelayLoadMetadata en el middleware de validación en verdadero.

Si deshabilita por completo el punto final de descubrimiento, necesita configurar el emisor y el material clave en las opciones de validación.


He recibido este mensaje de error por un par de razones. Uno fue resuelto con @leastprivilege answer. Otra era que mis archivos de certs en mi proyecto de Identity Server se habían perdido en el control de la versión. Así que acabo de reemplazar los archivos rotos con los originales y luego funcionó.


La reconstrucción de mi proyecto SSO solucionó mi problema. Los paquetes Nuget fueron restaurados también durante la reconstrucción del proyecto. Espero que esto te ayude.



Usé algo como esto, y resolvió mi problema.

services.AddAuthentication(o => { o.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme; o.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme; }) .AddCookie(cfg => cfg.SlidingExpiration = true) .AddJwtBearer(cfg => { cfg.Audience = "http://localhost:4200/"; cfg.Authority = "http://localhost:5000/"; cfg.RequireHttpsMetadata = false; cfg.SaveToken = true; cfg.TokenValidationParameters = tokenValidationParameters; cfg.Configuration = new OpenIdConnectConfiguration(); <-- Most IMP Part });