我了解ASP。NET Core具有程序集Microsoft。AspNetCore。身份验证。JwtBearer,我们可以使用它进行令牌验证。然而,我只是不太明白ASP。NET Core内置中间件也可以像我们对Microsoft那样用于生成令牌。Owin。安全OAuth。有人能帮我澄清以下问题吗。
-
我们可以使用Microsoft生成和发布令牌吗。AspNetCore。身份验证。JwtBearer就像我们在微软做的那样。Owin。安全OAuth-like:
app.UseOAuthAuthorizationServer(oAuthServerOptions); app.UseOAuthBearerAuthentication(new OAuthBearerAuthenticationOptions());
而不编写自定义代码来生成令牌?
-
如果我们不能用微软做到这一点。Owin。安全性,微软有什么功能吗。AspNetCore。Owin类似于微软。Owin。安全OAuth?
如果我想使用应用内用户商店,为客户端公开一个端点以获取令牌并使用它进行授权,那么使用像IdentityServer4这样的第三方解决方案是可行的吗?谢谢
我们可以使用Microsoft生成和发布令牌吗。AspNetCore。身份验证。JwtBearer就像我们在微软做的那样。Owin。安全OAuth
Microsoft.AspNetCore.Authentication.JwtBearer
只是JWT令牌验证。它与OAuth 2.0和OpenID Connect无关,就像在Microsoft.Owin.Security.OAuth
中一样。而且根据这个链接ASP。NET团队决定不移植它。
因此,要实现OAuth 2.0 and OpenID Connect
,您需要使用第三方软件包。
对于基本场景,可以方便地使用您提到的IdentityServer4
或OpenIddict
作为替代方案。
对于更高级的场景,我更喜欢OpenIddict
使用的ASOS
。ASOS
是从Katana的OAuth2授权服务器中间件派生而来的。
至于Microsoft.AspNetCore.Owin
,它与Microsoft.Owin.Security.OAuth
不同。它只是一个适配器,用于在ASP中运行OWIN中间件。NET核心应用程序,反之亦然