当前位置: 首页 > 知识库问答 >
问题:

微服务体系结构中的单点登录

颛孙庆
2023-03-14

我很乐意听到其他的想法。如果一个特定的PaaS(比如Heroku)有一个专有的解决方案,那么这个解决方案也是可以接受的。

共有1个答案

鲜于河
2023-03-14

在我以前的工作中实现微服务架构时,我们决定最好的方法是与#1保持一致,添加身份服务并通过它授权服务访问。在我们的例子中,这是用令牌完成的。如果一个请求带有授权令牌,那么如果它是用户与服务会话中的第一次调用,我们可以用标识服务验证该令牌。一旦令牌被验证,它就被保存在会话中,这样用户会话中的后续调用就不必进行额外的调用。如果需要在该会话中刷新令牌,则还可以创建计划作业。

在这种情况下,我们使用OAuth2.0endpoint进行身份验证,令牌被添加到HTTP头中,以便调用我们的域。所有服务都是从该域路由的,因此我们可以从HTTP头获得令牌。因为我们都是同一个应用程序生态系统的一部分,所以最初的OAuth2.0授权将列出用户将为其帐户授予权限的应用程序服务。

该方法的另一个补充是identity服务将提供代理客户机库,该库将添加到HTTP请求筛选器链中,并处理服务的授权过程。该服务将被配置为使用来自标识服务的代理客户端库。由于我们使用的是Dropwizard,该代理将成为Dropwizard模块,将过滤器引导到正在运行的服务进程中。这样,只要接口没有显著变化,依赖服务就可以轻松地使用身份服务的更新,该服务也有一个免费的客户端更新。

 类似资料:
  • 我最近开始使用Node.js,我必须构建一个应该使用多个Express.js服务的体系结构。其中一些服务必须位于一台服务器上,另一台则位于其他服务器上。我想构建一个基础服务(像API网关),但是我不知道在这个网关和微服务之间,或者在两个微服务之间进行通信的合适方式是什么。 目前我正在研究一个基于此的解决方案:

  • 总而言之,我们有: 产品类别: 产品ID、产品名称 订单类别: 订单ID、产品ID、用户ID、订单日期 这些方法中的任何一种可以被认为是最佳实践吗?还是有不同的解决方案?

  • 我有一个微服务体系结构,它的日志必须发送到远程Kafka主题。在它旁边,本主题的使用者将把日志发送到麋鹿堆栈(另一个团队) 我想要一个专用的微服务(fwk proxy elasticsearch),其职责是收集其他人的日志,并将其发送到远程Kafka主题。 将从我的微服务聚合的所有日志分派到fwk-代理-弹性搜索微服务的最佳协议是什么? 我希望这个模式不会重复远程Kafka主题的安全配置。我想把它

  • 我经常听说,在微服务架构中,对于每一个微服务,我们都必须创建单独的数据库。 但是,如果我必须在不同的数据库中维护外键约束,这是不可能的。就像我在身份验证微服务中有一个用户表,我想在我的目录服务中使用它(用户表中的用户 ID 列) 那么如何解决呢。 感谢提前

  • null null myApp应用程序不能直接访问用户数据库,所有通信都只能通过用户认证微服务处理。 在过去的一周里,我广泛阅读了关于REST API中的授权/身份验证的内容,但仍然不知道如何为User->myApp和MyApp->User-Authentication微服务构建一个可靠的授权/身份验证系统。 这是我现在想出来的。 null Now, user signs in sending u