【发布时间】:2020-02-06 18:40:41
【问题描述】:
我正在使用 asp net core 3 构建微服务。我的问题是我可以使用 asp net 身份保护微服务吗?例如,一个保护 3 个微服务项目的身份项目。我不想使用身份服务器。
【问题讨论】:
标签: c# asp.net-core jwt asp.net-identity microservices
我正在使用 asp net core 3 构建微服务。我的问题是我可以使用 asp net 身份保护微服务吗?例如,一个保护 3 个微服务项目的身份项目。我不想使用身份服务器。
【问题讨论】:
标签: c# asp.net-core jwt asp.net-identity microservices
我不想使用身份服务器。
仅使用 ASP.NET Core 和 ASP.NET Core Identity?
不,那是不可能的。 ASP.NET Core Identity 不具备生成 JWT 令牌的能力,仅支持 Cookie 身份验证。
对于 JWT,您需要
我的问题是我可以使用 asp 网络身份保护微服务吗?
通常,您可以使用 JWT 令牌保护尽可能多的微服务。
但要记住的一点是:OpenID/JWT 令牌不是用于授权,而是用于身份验证。身份验证意味着验证用户的身份。
因此,除了“范围”之外,您不应将权限放在这些令牌中。细粒度的权限需要由服务自己管理,使用token来识别用户并获取细粒度的权限。
关于最后一个主题Identity vs Permissions 是一篇有用的文章,可以更好地理解这一点。
【讨论】:
OidcConfigurationController,以及 ClientApp(这是一个 Angular8 代码)包含用于实现身份验证的 OIDC 流的配置特征。同样,AspNetCore3.0 正在使用 IdentityServer4,它允许发出/验证 JWT。
AddJwtBearer 调用使用 JWT 令牌