C# 我们可以用asp net identity jwt令牌保护3个微服务api项目吗?

C# 我们可以用asp net identity jwt令牌保护3个微服务api项目吗?,c#,asp.net-core,jwt,asp.net-identity,microservices,C#,Asp.net Core,Jwt,Asp.net Identity,Microservices,我正在使用asp net core 3构建微服务。我的问题是我能用asp网络身份保护微服务吗?例如,一个identiy项目保护3个微服务项目。我不想使用Identity server 我不想使用Identity server 仅使用ASP.NET核心和ASP.NET核心标识 不,那是不可能的。ASP.NET核心标识不具备生成JWT令牌的能力,只支持Cookie身份验证 对于JWT,您需要 使用OpenIDConnect/OAuth2提供程序标识服务器是一个,OpenIddict是另一个开源OID

我正在使用asp net core 3构建微服务。我的问题是我能用asp网络身份保护微服务吗?例如,一个identiy项目保护3个微服务项目。我不想使用Identity server

我不想使用Identity server

仅使用ASP.NET核心和ASP.NET核心标识

不,那是不可能的。ASP.NET核心标识不具备生成JWT令牌的能力,只支持Cookie身份验证

对于JWT,您需要

使用OpenIDConnect/OAuth2提供程序标识服务器是一个,OpenIddict是另一个开源OIDC提供程序 使用外部OIDC/OAuth提供商Auth0、Google、Facebook、Twitter等。 除非您非常了解JWT/ODIC,并且是一名安全专家,否则不建议您自己生成JWT令牌,因为它中错误/不完整的实现可能会导致严重的安全问题,而与现有的成熟和强化的身份提供程序相比 我的问题是我能用asp网络身份保护微服务吗

通常,您可以使用JWT令牌保护尽可能多的微服务

但需要记住的一点是:OpenID/JWT令牌不是用于授权,而是用于身份验证。身份验证意味着验证用户的身份

因此,除了作用域之外,您不应该将权限放在这些令牌中。细粒度权限需要由服务本身管理,使用令牌标识用户并获得细粒度权限


最后一个主题是一篇有用的文章,可以更好地理解这一点

AspNetCore 3.0:本章提到了JWT承载器。在创建带有身份验证的AspNetCore 3.0 Angular时,查看生成的代码,可以看到OIDCConfiguration控制器,以及ClientApp(Angular8代码),它包含用于实现身份验证的OIDC流的配置特征。同样,AspNetCore3.0正在使用IdentityServer 4,该服务器允许发出/验证JWTs。@mihai:即与IdentityServer一起使用非microsoft开源项目,op不希望使用该项目。包含WebAPI的新ASP.NET核心模板附带对IdentityServer jwt授权的支持。ASP.NET核心标识没有生成JWT令牌的功能。您只能使用AddJwtBearer调用使用JWT tokes,这在链接文章的第一段中很明显:ASP.NET Core 3.0或更高版本使用API授权支持在单页应用程序SPA中提供身份验证。用于验证和存储用户的ASP.NET核心标识与用于实现开放ID Connect.thankiess@Tseng的IdentityServer相结合。你能看到下面的图片并表达你对谁在这个案例中发射JWT的想法吗?这是一个由VS2019生成的应用程序,project AspNetCore 3.0+Angular SPA+身份验证个人用户帐户我并不反对你所说的,只是想揭开这个领域,让问题的所有者知道更多:这似乎是唯一一个使用IdentityServer作为内置模板的模板,用于生成JWT。但是是的,它是基于IdentityServer。。。只是想让这条线索更清晰: