ASP.NET 5中的Web API身份验证

我一直在研究ASP.NET 5一段时间,还有一些我还是感到困惑。 要在Web API 2中实现身份验证,我以前所做的基本上是使用OWIN OAuth身份验证服务器中间件。 使用起来非常简单,我可以根据自己的需要进行配置,而且我不需要在应用程序中添加任何东西,而无需使用它。

现在,起初我没有在ASP.NET 5中找到它,我认为等待中间件出现是时间问题。 但昨天,在阅读关于安全回购的问题后,我发现显然并不打算将此中间件移植到新版本的框架中。

相反,似乎人们被鼓励使用Identity Server 3.我看了一下这个项目,尽管它很好,并且有很多用法,但我更喜欢配置我有时需要的最小值。 此外,另一个缺点是Identity Server 3需要完整的CLR,因此如果我需要使用它来为我的应用程序提供身份验证,则需要停止使用Core CLR,这对我来说是一个巨大的缺点,因为Core CLR是一个很多轻量级。

因此,如果我不想在ASP.NET 5上使用Identity Server 3,那么如果OAuth身份验证服务器中间件不在,我如何才能实现Web API的身份验证? 有没有人经历过这种情况,并找到了解决办法?

如何在不使用Identity Server 3的情况下处理ASP.NET 5 Web API的身份验证?


事实上,ASP.NET 5中不会有OAuthAuthorizationServerMiddleware

如果您正在寻找相同的低级方法,则应该查看一下AspNet.Security.OpenIdConnect.Server :它是与Katana 3一起提供的OAuth2授权服务器中间件的高级分支,但它的目标是OpenID Connect已经想通了(ASP.NET Core中的OAuth授权服务)。

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

OpenID Connect本身基于OAuth2,基本上是提供标准化认证功能的超集。 不要担心:当然,您可以在任何OpenID Connect服务器上使用任何OAuth2客户端,包括AspNet.Security.OpenIdConnect.Server

不要错过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();
});

祝你好运,如果你需要帮助,请不要犹豫。


在尝试在ASP.NET 5中使用OWIN OAuth授权服务器中间件时遇到了完全相同的问题,因此我决定自己移植代码。 你可以在这个GitHub repo https://github.com/XacronDevelopment/oauth-aspnet找到源代码,或者使用NuGet包OAuth.AspNet.AuthServer和OAuth.AspNet.Tokens。 查看源代码以查看事情是如何连接的; 源代码中的示例与此处在http://bit.ly/1MOGDEJ中创建的示例相同,只是添加了ASP.NET 5示例。

链接地址: http://www.djcxy.com/p/22427.html

上一篇: Web API Authentication in ASP.NET 5

下一篇: WebApi: Token