Autenticación de API WEB en ASP.NET 5


He estado estudiando ASP.NET 5 desde hace algún tiempo y hay algo que todavía estoy confundido. Para implementar la autenticación en Web API 2 lo que solía hacer era básicamente usar el Middleware del Servidor de autenticación OWIN OAuth. Era fácil de usar, podía configurar justo lo que necesitaba y no había un montón de cosas que necesitaba poner en la aplicación sin necesidad de ella.

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, leyendo sobre los temas en el repositorio de seguridad me enteré de que aparentemente no hay intención de portar este middleware a la nueva versión del marco.

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

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

Cómo lidiar con la autenticación en ASP.NET 5 Web API sin usar Servidor de identidad 3?

Author: user1620696, 2015-05-10

2 answers

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

Si está buscando el mismo enfoque de bajo nivel, debería echar un vistazo a AspNet.Security.OpenIdConnect.Server: es una bifurcación avanzada del middleware del servidor de autorización OAuth2 que viene con Katana 3 pero que se dirige a OpenID Connect, como ya descubrió ( Servicio de autorización de OAuth en ASP.NET Core ).

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

OpenID Connect se basa en OAuth2 y es básicamente un superconjunto que ofrece características de autenticación estandarizadas. No se preocupe: puede, por supuesto, utilizar CUALQUIER cliente OAuth2 con CUALQUIER servidor OpenID Connect, incluyendo AspNet.Seguridad.OpenIdConnect.Servidor.

No te pierdas la muestra 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 llamarme si necesitas ayuda.

 11
Author: Pinpoint,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 12:26:19

Me encontré exactamente con el mismo problema al intentar usar el middleware del servidor de autorización OWIN OAuth en ASP.NET 5, así que decidí portar el código yo mismo. Puedes encontrar la fuente en este repositorio de GitHub https://github.com/XacronDevelopment/oauth-aspnet o simplemente use los paquetes NuGet OAuth.AspNet.AuthServer y OAuth.AspNet.Token. Echa un vistazo al código fuente para ver cómo se conectan las cosas; las muestras en la fuente son las mismas muestras que Microsoft creó aquí http://bit.ly/1MOGDEJ excepto con ASP.NET 5 ejemplos añadidos.

 0
Author: Xacron,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-09-25 22:05:42