.NET Core中的JWT授权 - 与OAuth服务器进行通信



我开始使用JWT授权构建新应用程序。我们的团队已经用Java编写了OAuth 2服务器,因此我的目标是:使用公共密钥检查密钥。但是我不知道该怎么做。如果使用.NET身份,则必须使用实体框架,但仅将Cassandra用作数据库。

我如何在不使用EF的情况下实施它?您知道任何教程吗?

您不需要任何ASP.NET核心内容。一种简单的方法是:

nu-get the软件包

System.IdentityModel.Tokens.Jwt,
Microsoft.IdentityModel.Tokens

设置一些验证参数:

var validationParameters = new TokenValidationParameters
{
    RequireExpirationTime = true,
    ValidateLifetime = true,
    IssuerSigningKeys = keys, // Your public keys.
    ValidAudience = "my valid audience",
    ValidIssuer = "my valid issuer"
}

致电ValidateToken获取带有索赔和内容的ClaimsPrincipaltoken是您的JWT字符串,例如从授权http标头中解析。

var handler = new JwtSecurityTokenHandler();
handler.ValidateToken(token, validationParameters, out SecurityToken validatedToken);

使用上述IdentityModel.Tokens软件包中使用JsonWebKeySet,您可以自动从OpenID Connect配置获得键:

https://github.com/IndentityModel/IndentityModel/blob/master/source/indistitymodel.shared/jwt/jsonwebkeyset.cs

有很多Microsoft(和其他)文档可用(确保您正在查看与您正在使用的版本有关的文档!) - 谷歌搜索很容易找到它们但是EF当然不需要如下所示。

直接由应用程序管理身份或用户信息。取而代之的是,它将直接从JWT令牌中获取所有用户信息,从而对呼叫者进行身份验证。 https://blogs.msdn.microsoft.com/webdev/2017/04/06/jwt-validation-and-yathorization-in-rathorization-in-asp-net-core/

这是版本1.1的简单示例https://github.com/williamhallatt/aspnet-core-webapi-jwt-auth-auth-example

和2.0的同一示例https://github.com/williamhallatt/aspnet-core-webapi-jwt-auth-auth-example/tree/dotnecore2.0

相关内容

  • 没有找到相关文章

最新更新