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.
En caso de que esto ayude a alguien más.
Recibí este error después de actualizar un proyecto a .net core 2.0
la solución.
Cambie el nombre de la instancia dentro de appsettings.json en lugar de
"Instancia de AAD ": " https://login.microsoftonline.com/ "
utilizar
"Instancia": " https://login.microsoftonline.com/ "
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
});