提问者:小点点

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


我已经学习ASP.NET5一段时间了,有些事情我还很困惑。为了在网络应用编程接口2中实现身份验证,我过去基本上是使用OWIN OAuth身份验证服务器中间件。它使用起来很简单,我可以配置我需要的东西,而且没有一堆我需要放在应用程序上而不需要的东西。

现在,一开始我在ASP.NET 5中没有发现这一点,我认为等待中间件出现只是时间问题。但昨天,在阅读有关安全回购的问题时,我发现显然没有打算将此中间件移植到新版本的框架中。

相反,似乎鼓励人们使用Identity Server 3。我看了一下这个项目,虽然它很好,有很多用途,但有时我真的更喜欢只配置我需要的最低限度。此外,另一个缺点是Identity Server 3需要完整的CLR,因此,如果我需要使用它来为应用程序提供身份验证,我需要停止使用Core CLR,这对我来说是一个巨大的缺点,因为Core CLR要轻得多。

那么,如果我不想在ASP.NET 5上使用Identity Server 3,那么如果OAuth authentication Server中间件不存在,我该如何实现Web API的身份验证呢?有人经历过这种情况并找到了应对的方法吗?

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


共2个答案

匿名用户

事实上,在ASP.NET 5中不会有< code > OAuthAuthorizationServerMiddleware 。

如果你正在寻找相同的低级方法,你应该看看AspNet.Security.OpenIdConnect.Server:它是Katana 3附带的OAuth2授权服务器中间件的高级分支,但针对OpenID Connect,正如你已经发现的那样(ASP.NET 核心中的OAuth授权服务)。

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

OpenID Connect本身基于OAuth2,基本上是一个提供标准化身份验证功能的超集。不要担心:当然,您可以将任何OAuth2客户端与任何OpenID Connect服务器一起使用,包括aspnet . security . OpenID Connect . 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.NET5中尝试使用OWIN OAuth授权服务器中间件时,我遇到了完全相同的问题,所以我决定自己移植代码。你可以在这个GitHub存储库中找到源代码https://github.com/XacronDevelopment/oauth-aspnet或者只是使用NuGet包OAuthi. AspNet.AuthServer和OAuthi.AspNet.Tokens。查看源代码,看看事情是如何连接的;源代码中的示例与微软在这里创建的示例相同http://bit.ly/1MOGDEJ除了添加了ASP.NET5个示例。