tutorial route net mvc maphttproute example asp c# asp.net authentication asp.net-web-api asp.net-core

route - web api rest c#



Autenticación de API web en ASP.NET 5 (2)

Me encontré con el mismo problema al tratar de usar el middleware OWIN OAuth Authorization Server en ASP.NET 5, así que decidí portar el código yo mismo. Puede encontrar la fuente en este repositorio de GitHub https://github.com/XacronDevelopment/oauth-aspnet o simplemente usar los paquetes NuGet OAuth.AspNet.AuthServer y OAuth.AspNet.Tokens. Revisa el código fuente para ver cómo están conectadas las cosas; las muestras en la fuente son las mismas muestras que Microsoft creó aquí http://bit.ly/1MOGDEJ excepto que se agregaron 5 ejemplos de ASP.NET.

He estado estudiando ASP.NET 5 desde hace un tiempo y todavía hay algo que estoy confundido. Para implementar la autenticación en Web API 2, lo que solía hacer era utilizar básicamente el middleware OWIN OAuth Authentication Server. Era simple de usar, podía configurar lo que necesitaba y no había muchas cosas que necesitaba poner en la aplicación sin necesidad.

Ahora, al principio no encontré esto en ASP.NET 5 y pensé que era cuestión de tiempo esperar a que apareciera el middleware. Pero ayer, al leer los problemas en el repositorio de seguridad, descubrí que aparentemente no hay intención de transferir este middleware a la nueva versión del marco.

En cambio, parece que se anima a las personas a usar Identity Server 3. Eché un vistazo al proyecto y aunque es agradable y tiene muchos usos, realmente prefiero configurar el mínimo que necesito a veces. Además, otra desventaja es que Identity Server 3 necesita el CLR completo, así que si necesito usarlo para proporcionar autenticación en mi aplicación, debería dejar de usar Core CLR, lo que para mí es una gran desventaja ya que Core CLR es un mucho más ligero.

Entonces, si no quiero usar Identity Server 3 en ASP.NET 5, ¿cómo puedo implementar la autenticación para la API web si el middleware del servidor de autenticación OAuth se ha ido? ¿Alguien ha pasado por eso y ha encontrado una manera de lidiar con eso?

¿Cómo lidiar con la autenticación en ASP.NET 5 Web API sin usar Identity Server 3?


De hecho, no habrá OAuthAuthorizationServerMiddleware en ASP.NET 5.

Si está buscando el mismo enfoque de bajo nivel, debería echarle un vistazo a AspNet.Security.OpenIdConnect.Server : es un fork avanzado del middleware del servidor de autorización OAuth2 que viene con Katana 3 pero que apunta a OpenID Connect, como usted ya resuelto ( Servicio de Autorización OAuth en ASP.NET Core ).

https://github.com/aspnet-contrib/AspNet.Security.OpenIdConnect.Server

OpenID Connect está basado en OAuth2 y es básicamente un superconjunto que ofrece características de autenticación estandarizadas. No se preocupe: puede, por supuesto, usar CUALQUIER cliente OAuth2 con CUALQUIER servidor OpenID Connect, incluido AspNet.Security.OpenIdConnect.Server .

No se pierda el ejemplo de MVC 6: https://github.com/aspnet-contrib/AspNet.Security.OpenIdConnect.Server/tree/dev/samples/Mvc

app.UseJwtBearerAuthentication(new JwtBearerOptions { AutomaticAuthenticate = true, AutomaticChallenge = true, Audience = "http://localhost:54540/", Authority = "http://localhost:54540/" }); app.UseOpenIdConnectServer(options => { options.Provider = new AuthorizationProvider(); });

Buena suerte, y no dudes en enviarnos un mensaje si necesitas ayuda.