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

Web API Authentication in ASP.NET 5

我研究 ASP.NET 5 已经有一段时间了,有些事情我还是很困惑。要在 Web API 2 中实现身份验证,我以前所做的基本上是使用 OWIN OAuth 身份验证服务器中间件。它使用简单,我可以配置我需要的东西,没有一堆东西我需要放在应用程序上而不需要它。

现在,起初我没有在 ASP.NET 5 中找到它,我认为等待中间件出现是迟早的事。但是昨天,阅读 Security repo 上的问题,我发现显然没有打算将这个中间件移植到新版本的框架。

相反,似乎鼓励人们使用 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 中没有 OAuthAuthorizationServerMiddleware 5.

如果您正在寻找相同的低级方法,您应该看看 AspNet.Security.OpenIdConnect.Server:它是 Katana 3 附带的 OAuth2 授权服务器中间件的高级分支,但它以 OpenID Connect 为目标,正如你已经想通的那样( ).

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

OpenID Connect 本身基于 OAuth2,基本上是一个提供标准化身份验证功能的超集。别担心:当然,您可以将任何 OAuth2 客户端与任何 OpenID Connect 服务器一起使用,包括 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 存储库 https://github.com/XacronDevelopment/oauth-aspnet or just use the NuGet packages OAuth.AspNet.AuthServer and OAuth.AspNet.Tokens. Check out the source code to see how things are wired up; the samples in the source are the same samples Microsoft created here http://bit.ly/1MOGDEJ 中找到源代码,但添加了 ASP.NET 5 个示例。