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

无需托管API网关的多个服务的FastAPI身份验证

慕冠宇
2023-03-14

关于一个基于FastAPI的微服务的新项目,我有一个一般性的架构问题。现在来看,它真的不是FastAPI特定的,但现在它开始了:

    null

您如何将身份验证扩展到包含应用程序逻辑的其他微服务?我想我想得太多了,可能引入了太多的耦合:)

共有1个答案

劳灵均
2023-03-14

如果您的身份验证/用户管理服务发出JWT,那么您的其他服务可以依赖该JWT,只提供允许的数据。

发出的令牌应包含所有相关的安全信息。假设您有三种类型的用户:管理员、经理、员工。为了简单起见,假设这是唯一的安全标准(您可能有多个标准)。

令牌可以有一个指示用户权限的字段。根据OAuth2规范,这通常在scope字段中完成。无论如何,您都可以为它创建自己的自定义域。

    null

令人遗憾的是,JWT仅在Traefik Enterprise中

也许您是在讨论直接在Traefik中处理JWT,但是在后端服务中传递授权头和处理授权检查应该不会有什么困难。此外,您可以始终将令牌嵌入请求正文中,并完全绕过反向代理。

 类似资料:
  • 我在AWS上托管了几个微服务(Springdge)。例如,让我们假设Service1和Service2是两个微服务。Service1是前端和移动应用程序访问的微服务。Service1调用Service2。Service2完全是内部的。 我已经设置了位于Service1前面的Amazon API网关。我使用cognito配置了身份验证(Oauth)。 这一切都在起作用。当从前端/应用程序调用时,请求

  • 我想通过Spring Cloud介绍Zuul作为一个API网关在少数服务前面。 我关心的问题: > 网关将位于许多服务的前面 某些服务可能公开不需要身份验证的endpoint null

  • 简而言之,应该在哪里执行输入验证和身份验证验证?在 API 网关和每个微服务中?仅在 API 网关中?仅在每个微服务中? 也许部分在api网关中,部分在每个网关中? 谢谢你的回答!

  • 我正在使用Node JS和Express创建一个微服务架构。我知道微服务的主要特点之一是面向服务的体系结构,团队可以独立设计、开发和发布应用程序。因此,在我的设计中,我认为每个微服务都提供了自己的API,它们通过API相互通信,每个微服务都是独立的,有自己的生命在等待请求。 我写这个问题是因为我对微服务之间的身份验证和通信有几个疑问。 对于自动认证,我用JWT做了一些测试来认证微服务的应用编程接口

  • 我想通过curl使用Azure AD对Azure服务管理API进行身份验证。 我在默认目录中设置了一个应用程序。在这个免费试用版中,这是我仅有的目录。 当我以oauth令牌endpoint为目标时,我收到一个JWT。 但当我使用该令牌列出我的订阅详细信息时,我收到一个错误: 我已将应用程序的服务管理API的权限授予为“委派权限”,因为“应用程序权限”不可用。 我错过了什么?

  • 我们已将一些用户邮箱移动到 O365,但某些用户和会议室邮箱仍保留在本地 Exchange 2010 服务器上。我们的 EWS 托管 API 应用程序当前对模拟服务帐户使用基本身份验证。我们正在将其更改为使用 OAuth 身份验证。OAuth 在 EX2010 中是否有效?在发出 EWS 请求以获取房间可用性详细信息或在本地读取用户的日历时,是否可以使用 Azure AD 中的 OAuth 令牌?