微服务中的服务器到服务器通信

2024-03-23

我正在研究微服务架构,但我在这方面面临一些挑战。

首先让我向您简要介绍一下架构。

  1. 用户登录并获取签名令牌,该令牌将用于调用所有 REST API。

  2. 将会有很多 API 服务器,其中 API 使用 Spring 安全性进行保护,并根据用户角色进行授权。

  3. 服务必须相互交互才能获取/更新信息。

  4. 每个服务都有权通过身份验证服务器验证令牌问题。

问题:-

  1. 如果用户登录并使用相同的令牌并将其传递给经过验证的每个服务,则一切正常。因此,在传递令牌时,服务不需要相互信任。

  2. 现在的问题是,有些服务需要在不登录的情况下从服务器本身调用。比方说服务器到服务器的调用。服务如何验证和授权来自其他服务的调用。

我读到了有关 Spring 微服务的内容,但 Zuul 也不是这里的救世主,因为每个 API 服务器都嵌入了 Spring Security,而不仅仅是 API 网关。

一种解决方案是每个服务都有自己的具有某些角色的默认用户,用于加入 -> 获取令牌 -> 使用令牌调用其他服务器 api。

您能否给我一些服务器到服务器调用的指针,其中每个服务器都使用 spring security 进行身份验证和授权。

Thanks.


在 OAuth2 中,有一个专用于服务器到服务器授权的流程(客户端凭据授予流程)。调用服务是第二个(资源服务器)的常规客户端,因此它必须获取令牌并使用它。

简而言之,客户端告诉授权服务器他是谁(使用其客户端id/app id),授权服务器给它一个令牌,该令牌可用于查询资源服务器。

我有法语资源here http://www.bubblecode.net/fr/2016/01/22/comprendre-oauth2/#Lrsquoautorisation_serveur_serveur_Client_Credentials_Grant,序列图是英文的,应该会有帮助。您可以轻松找到有关此流程的更多信息。

有关 Spring Security 的具体内容,请参阅spring-security-oauth2 文档 http://projects.spring.io/spring-security-oauth/docs/oauth2.html.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

微服务中的服务器到服务器通信 的相关文章

随机推荐

  • C# 和 Node.js/crypto 的常见加密/解密代码示例

    我尝试在 IIS 中使用应用程序请求路由 ARR 将一组路径传递到 Node js 网站 我的问题是能够在任一侧获取 设置身份验证票证 我真的需要一个简单的加密 解密对示例 该示例适用于 C 和 Node js 几乎开箱即用 并且两者的结果
  • 在存储过程中嵌入 html 代码

    我们这里似乎有一些开发人员认为创建输出 HTML 或 Javascript 代码的存储过程是合法的事情 在我看来 这是对关注点分离模型的最终滥用 人们经常看到人们在做这样的事情吗 尤科 有几个问题 无法为应用程序 换肤 转移到全新的演示文稿
  • 为什么这个执行无效指针初始化的程序在 C 中编译得很好?

    我写了一个简单的C程序 我原以为它会编译失败 但不幸的是它在C中编译并运行良好 但在C 中编译失败 考虑下面的程序 include
  • 运行 jest 时设置 env 变量

    我在我的上定义了这个变量main ts const mockMode process env MOCK MODE 我只是创建一个测试并将此变量设置为 true 但在主要方面没有得到 true but false describe onBoo
  • WCF通用字典和理解WCF

    好吧 我在解决某个特定问题时遇到了很大的困难 通过服务传输对象 从概念上讲 这是有道理的 我认为 据我所知 除非明确定义 否则无法序列化泛型 所以我想提供我的例子 我根本无法去上班 意思是 我确信还有其他人也遇到过一些困难 当您提供帮助时是
  • 如何在未提升的情况下启动流程

    我的应用程序运行为requestedExecutionLevel set to highestAvailable 如何在未提升的情况下运行进程 我尝试了以下方法 但没有成功 Process Start new ProcessStartInf
  • 正确修复 Java 10 抱怨 jaxb-impl 2.3.0 进行非法反射访问的问题?

    我们正在考虑将一些遗留代码升级到 Java 10 由于 JAXB 默认情况下不可见 编辑 正确的长期解决方案是not使用各种 JVM 标志来规避该症状 但正确修复它 我已将此代码段添加到我的 pom xml 中
  • Mongodb 中将字段乘以值

    我一直在寻找一种方法来创建更新语句 该语句将采用现有的数字字段并使用表达式对其进行修改 例如 如果我有一个名为 Price 的字段 是否可以进行更新 将 Price 设置为现有值的 50 所以 给定 Price 19 99 我想做db co
  • indexOf 查找字符串中某个单词的所有出现位置

    我正在尝试使用 indexOf 查找句子中出现的所有字符 the 例如 如果句子是 那天我去了那里 则应返回 3 我能够做到这一点 直到找到第一个索引 但我不确定如何编写循环 我最初有一个 for 循环来搜索整个字符串 但它返回完整的字符串
  • 是否有工具可以可视化实时 Spring 应用程序上下文? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 是否有任何工具可以获取完全构建 连线的 Spring 应用程序上下文并导出它的可视化 我说的是一个实时上
  • 如何将 C++ lambda 传递给需要函数指针和上下文的 C 回调?

    我正在尝试在使用标准函数指针 上下文范例的 C API 中注册回调 该 API 如下所示 void register callback void callback void void context 我真正想做的是能够注册一个 C lamb
  • SQL Server Filestream - 删除“速度”

    我第一次使用文件流数据类型 SQL Server 2008 当我进行一些快速插入 删除时遇到了问题 基本上 即使我手动调用垃圾收集器 文件实际从文件系统中删除的速度也比插入 删除速度慢得多 据我所知 CHECKPOINT 应该调用垃圾收集器
  • KAFKA 重启问题:在不删除 /tmp/kafka-logs 的情况下无法重启 kafka

    每当我尝试重新启动 kafka 时 都会出现以下错误 一旦我删除 tmp kafka logs 它就会得到解决 但它也会删除我的主题 有办法解决吗 ERROR Error while deleting the clean shutdown
  • Vim 自动生成 ctag

    现在我有以下内容 vimrc au BufWritePost c cpp h ctags R 这有几个问题 它很慢 为自上次标记生成以来未更改的文件重新生成标记 我必须按下输入按钮again写入文件后 因为不可避免的 按 Enter 或键入
  • Java 8 流:java.lang.IllegalStateException:结束大小 84758 小于固定大小 84764

    我在用Java 8 streams用于将映射值转换为数组的 API 我收到以下异常 Unhandled exception ScheduledExecutorService java lang IllegalStateException E
  • 检查 NSDate 是本周还是下周

    有没有办法检查 NSDate 是本周还是下周 我知道今天是 NSDate date 然后我该怎么办 使用 NSDateComponents 如下所示 NSCalendar gregorian NSCalendar alloc initWit
  • 将 .Net Core Web-API 迁移到 AWS Web Api 网关

    我有一个使用 Net Core 开发的 Web API 它有几个端点 GET POST 要求是将其移至 AWS API Gateway 该 Web API 是使用分层架构构建的 它有一个与 Db 层通信的业务层 该层拥有一些实体框架存储库
  • 如何使用 jax-rs 进行分段/表单文件上传?

    特别是 RESTeasy 如果 对于单个文件 有一个像这样的方法签名那就太好了 public void upload FormParam name FormParam file file InputStream 可行吗 还是我在做梦 似乎没
  • 将数据帧转换为向量(按行)

    我有一个包含像这样的数字条目的数据框 test lt data frame x c 26 21 20 y c 34 29 28 我怎样才能得到下面的向量 gt 26 34 21 29 20 28 我能够使用以下方法获得它 但我想应该有一种更
  • 微服务中的服务器到服务器通信

    我正在研究微服务架构 但我在这方面面临一些挑战 首先让我向您简要介绍一下架构 用户登录并获取签名令牌 该令牌将用于调用所有 REST API 将会有很多 API 服务器 其中 API 使用 Spring 安全性进行保护 并根据用户角色进行授