authentication - 微服务-IPC认证/授权

标签 authentication microservices

我们正在尝试找出 IPC 身份验证和授权的最佳实践。我会解释。 我们有一个基于微服务的架构 SaaS,带有专门的身份验证服务。该服务负责进行身份验证和管理身份验证 token (JWT)。

对于登录并开始使用来自不同服务的资源的用户,一切都完美无缺。

现在的问题是如何验证和授权由其他服务发起的请求(没有特定用户的上下文)?

  1. 我们是否应该为每项服务生成一个专用用户并将其视为 系统中的任何其他用户(具有适当的权限)?
  2. 应该 我们在服务中部署了“硬编码”/动态 token ?
  3. 还有其他想法吗?

我们最担心的是此类 token /密码在某个时候会受到损害,因为从一项服务到另一项服务的请求会受到高级别权限的处理。

干杯,

最佳答案

我不是微服务专家,只是刚开始涉足微服务世界。从我读到现在的内容来看,这可以通过多种方式处理,正如您提到的,其中一种是硬编码 api key ,以便服务相互识别。但我个人从不喜欢这个想法 - 也像您提到的那样为每个服务使用一个用户。我非常喜欢的一个解决方案是使用 Oauth2 来处理这些场景 - 我发现一个有趣的实现是 Gluu Server,我认为 client credentials grant type 是您要查找的内容 - 请参阅 https://gluu.org/docs/integrate/oauth2grants/ .

玩得开心:)

关于authentication - 微服务-IPC认证/授权,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36291878/

相关文章:

mysql - 如何在不在主机上发布端口的情况下访问在 docker 容器(由 Rancher 管理)中运行的 MySQL?

web-services - 微服务粒度: Per domain model or not?

.net - 如何告诉 WCF 客户端代理类使用 Windows 身份验证和已登录域用户的 WindowsPrincipal 作为凭据?

python - django.contrib.auth.login() 函数不返回任何用户登录

仅具有客户端凭据的 Spring 安全端点(基本)

java - Spring Cloud DiscoveryClient。 getLocalServiceInstance() 已弃用,如何使用注册?

java - 如何以及是否使用 Pact 测试句法(错误请求)验证?

java - 为什么我的程序无法创建新的 JAAS 登录上下文?

session - Mongoose-Auth/Express/Connect 不保留 session 问题

angular - 在微服务环境中使用Angular 2+