无需托管API网关即可对多种服务进行FastAPI身份验证

tech4242

我有一个关于基于FastAPI的微服务新项目的一般架构问题。现在来看,它实际上不是特定于FastAPI的,但是它在这里:

假设以下情况,如何使基于JWT的身份验证在多个服务之间工作:

  1. 您不能使用来自AWS等的托管服务,例如API网关(安全要求)
  2. 有一个用于用户管理的服务,其中包含用户名,密码等,并且理想情况下它将允许JWT身份验证
  3. 还有其他微服务包含存储在第一个微服务中的用户的应用程序逻辑(从2开始)。

在整体应用程序中,这很容易;在具有API网关的微服务架构中,这也很容易,但是:

如果事情取决于用户管理微服务来保存相关用户数据(实际上是其自身的网关),而其他服务应该为那些用户执行操作(基于JWT),您将如何处理(高级)令牌)

tl; dr您如何将身份验证扩展到其他具有应用程序逻辑的微服务?我想我对此太过思索,并可能引入过多的耦合:)

Sushi2all

如果您的身份验证/用户管理服务发出JWT,则其他服务可以依靠它来仅提供允许的数据。

发行的令牌应包含所有相关的安全信息。假设您有三种类型的用户:admin,manager,employee。为了简单起见,假设这是唯一的安全性标准(您可能有多个标准)。

令牌可以具有指示用户权限的字段。根据OAuth2规范,此操作通常在scope字段中完成无论如何,您都可以为其创建自定义字段。

有了令牌,您就可以使用它调用后端服务。然后,服务将:

  • 首先检查令牌的完整性和有效性
  • 检查令牌有效载荷的范围/权限,并根据其提供数据。

另请参阅官方FastAPI教程,有关通过简单的依赖注入为此目的使用范围。


回答您的评论:

可悲的是,JWT仅在Traefik Enterprise中

也许您是在谈论直接在Traefik中处理JWT,但您应该毫不费力地传递授权标头并处理后端服务中的授权检查。另外,您始终可以将令牌嵌入请求正文中,并完全绕过反向代理。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

无需用户名/密码且无需管理员参与即可对Exchange Web服务进行身份验证

来自分类Dev

无需用户干预即可进行Google Drive API身份验证

来自分类Dev

无需身份验证即可使用Google OpenID Connect进行身份验证

来自分类Dev

烧瓶:无需身份验证即可登录

来自分类Dev

Firebase身份验证服务-无需登录即可从电子邮件中查找uid

来自分类Dev

Firebase身份验证服务-无需登录即可从电子邮件中查找uid

来自分类Dev

获取 MVC 无需身份验证即可在服务器端检索操作结果

来自分类Dev

无需显式安装即可在网络共享(samba)中进行身份验证

来自分类Dev

Zuul-Api网关身份验证

来自分类Dev

WordPress REST API-浏览器无需身份验证即可提供JSON响应

来自分类Dev

无需身份验证即可将安全的POST数据发送到RESTful API

来自分类Dev

创建一个无需身份验证即可访问的Mashery API定义

来自分类Dev

无需用户身份验证即可保护REST Api的最佳方法

来自分类Dev

YouTube数据API:使用V3进行服务的OAuth身份验证,无需用户干预

来自分类Dev

YouTube数据API:使用V3进行服务的OAuth身份验证,无需用户干预

来自分类Dev

无需身份验证即可访问公共Google日历

来自分类Dev

无需身份验证即可登录我的Digital Ocean Drop

来自分类Dev

对Android应用进行身份验证以调用Web API服务

来自分类Dev

为什么API网关和身份验证服务应该不同?

来自分类Dev

使用Windows服务上托管的WCF对ADFS进行身份验证

来自分类Dev

使用Windows服务上托管的WCF针对ADFS进行身份验证

来自分类Dev

无需用户身份验证移动应用程序即可保护私有REST API的最佳方法

来自分类Dev

哪些OpenID Connect授权流程可对移动应用程序用户进行身份验证?

来自分类Dev

Wordpress挂钩可对用户进行身份验证以获取预定义的URL

来自分类Dev

使用后端进行身份验证,无需用户干预(使用新的登录 API)

来自分类Dev

使用Kerberos身份验证的WCF自托管Web服务

来自分类Dev

aws API网关-{“消息”:“缺少身份验证令牌”}

来自分类Dev

API网关针对不同端点的不同身份验证机制

来自分类Dev

不使用 Cognito 的 AWS API 网关身份验证

Related 相关文章

  1. 1

    无需用户名/密码且无需管理员参与即可对Exchange Web服务进行身份验证

  2. 2

    无需用户干预即可进行Google Drive API身份验证

  3. 3

    无需身份验证即可使用Google OpenID Connect进行身份验证

  4. 4

    烧瓶:无需身份验证即可登录

  5. 5

    Firebase身份验证服务-无需登录即可从电子邮件中查找uid

  6. 6

    Firebase身份验证服务-无需登录即可从电子邮件中查找uid

  7. 7

    获取 MVC 无需身份验证即可在服务器端检索操作结果

  8. 8

    无需显式安装即可在网络共享(samba)中进行身份验证

  9. 9

    Zuul-Api网关身份验证

  10. 10

    WordPress REST API-浏览器无需身份验证即可提供JSON响应

  11. 11

    无需身份验证即可将安全的POST数据发送到RESTful API

  12. 12

    创建一个无需身份验证即可访问的Mashery API定义

  13. 13

    无需用户身份验证即可保护REST Api的最佳方法

  14. 14

    YouTube数据API:使用V3进行服务的OAuth身份验证,无需用户干预

  15. 15

    YouTube数据API:使用V3进行服务的OAuth身份验证,无需用户干预

  16. 16

    无需身份验证即可访问公共Google日历

  17. 17

    无需身份验证即可登录我的Digital Ocean Drop

  18. 18

    对Android应用进行身份验证以调用Web API服务

  19. 19

    为什么API网关和身份验证服务应该不同?

  20. 20

    使用Windows服务上托管的WCF对ADFS进行身份验证

  21. 21

    使用Windows服务上托管的WCF针对ADFS进行身份验证

  22. 22

    无需用户身份验证移动应用程序即可保护私有REST API的最佳方法

  23. 23

    哪些OpenID Connect授权流程可对移动应用程序用户进行身份验证?

  24. 24

    Wordpress挂钩可对用户进行身份验证以获取预定义的URL

  25. 25

    使用后端进行身份验证,无需用户干预(使用新的登录 API)

  26. 26

    使用Kerberos身份验证的WCF自托管Web服务

  27. 27

    aws API网关-{“消息”:“缺少身份验证令牌”}

  28. 28

    API网关针对不同端点的不同身份验证机制

  29. 29

    不使用 Cognito 的 AWS API 网关身份验证

热门标签

归档