首页 文章

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

提问于
浏览
22

我已经研究过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 Authentication Server中间件消失,如何为Web API实现身份验证?有没有人通过这个并找到了解决它的方法?

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

2 回答

  • 11

    实际上,ASP.NET 5中没有 OAuthAuthorizationServerMiddleware .

    如果您正在寻找相同的低级方法,您应该看一下 AspNet.Security.OpenIdConnect.Server :它是Katana 3附带的OAuth2授权服务器中间件的高级分支,但是针对OpenID Connect,正如您已经想到的那样(OAuth Authorization Service in ASP.NET Core) .

    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();
    });
    

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

  • 0

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

相关问题