使用内置中间件在 .NET Core 中发行令牌
Issuing tokens in .NET Core using built in middleware
我知道 ASP.NET 核心有程序集 Microsoft.AspNetCore.Authentication.JwtBearer which we can use for token validation. However, I just can't quite understand whether ASP.NET Core built-in middleware can be also used to generate the tokens like we did with Microsoft.Owin.Security.OAuth。有人可以帮我澄清以下问题吗?
我们能否像使用 Microsoft.Owin.Security.OAuth 那样使用 Microsoft.AspNetCore.Authentication.JwtBearer 生成和发行令牌,例如:
app.UseOAuthAuthorizationServer(oAuthServerOptions);
app.UseOAuthBearerAuthentication(new OAuthBearerAuthenticationOptions());
没有编写自定义代码来生成令牌?
如果我们不能用 Microsoft.Owin.Security 做到这一点,那么 Microsoft.AspNetCore.Owin 中是否有类似于 Microsoft.Owin.Security.OAuth 的功能?
如果我们想使用应用程序内用户存储,是否可以使用像 IdentityServer4 这样的第 3 方解决方案,为客户端公开端点以获取令牌并将其用于授权?谢谢
Can we generate and issue tokens using Microsoft.AspNetCore.Authentication.JwtBearer like we did with Microsoft.Owin.Security.OAuth
Microsoft.AspNetCore.Authentication.JwtBearer
只是关于 JWT 令牌验证。它与 Microsoft.Owin.Security.OAuth
中的 OAuth 2.0 和 OpenID Connect 无关。此外,根据这个 link ASP.NET 团队决定不移植它。
因此,要实现 OAuth 2.0 and OpenID Connect
,您肯定需要使用第三方包。
对于基本情况,使用您提到的 IdentityServer4
或 OpenIddict
作为替代方案很方便。
对于更高级的场景,我更喜欢 ASOS
,它被 OpenIddict
使用。顺便说一句,ASOS
是从 Katana 的 OAuth2 授权服务器中间件派生出来的。
至于Microsoft.AspNetCore.Owin
和Microsoft.Owin.Security.OAuth
不一样。它只是 ASP.NET 核心应用程序中 运行 OWIN 中间件的适配器,反之亦然
我知道 ASP.NET 核心有程序集 Microsoft.AspNetCore.Authentication.JwtBearer which we can use for token validation. However, I just can't quite understand whether ASP.NET Core built-in middleware can be also used to generate the tokens like we did with Microsoft.Owin.Security.OAuth。有人可以帮我澄清以下问题吗?
我们能否像使用 Microsoft.Owin.Security.OAuth 那样使用 Microsoft.AspNetCore.Authentication.JwtBearer 生成和发行令牌,例如:
app.UseOAuthAuthorizationServer(oAuthServerOptions); app.UseOAuthBearerAuthentication(new OAuthBearerAuthenticationOptions());
没有编写自定义代码来生成令牌?
如果我们不能用 Microsoft.Owin.Security 做到这一点,那么 Microsoft.AspNetCore.Owin 中是否有类似于 Microsoft.Owin.Security.OAuth 的功能?
如果我们想使用应用程序内用户存储,是否可以使用像 IdentityServer4 这样的第 3 方解决方案,为客户端公开端点以获取令牌并将其用于授权?谢谢
Can we generate and issue tokens using Microsoft.AspNetCore.Authentication.JwtBearer like we did with Microsoft.Owin.Security.OAuth
Microsoft.AspNetCore.Authentication.JwtBearer
只是关于 JWT 令牌验证。它与 Microsoft.Owin.Security.OAuth
中的 OAuth 2.0 和 OpenID Connect 无关。此外,根据这个 link ASP.NET 团队决定不移植它。
因此,要实现 OAuth 2.0 and OpenID Connect
,您肯定需要使用第三方包。
对于基本情况,使用您提到的 IdentityServer4
或 OpenIddict
作为替代方案很方便。
对于更高级的场景,我更喜欢 ASOS
,它被 OpenIddict
使用。顺便说一句,ASOS
是从 Katana 的 OAuth2 授权服务器中间件派生出来的。
至于Microsoft.AspNetCore.Owin
和Microsoft.Owin.Security.OAuth
不一样。它只是 ASP.NET 核心应用程序中 运行 OWIN 中间件的适配器,反之亦然