Zuul - Api 网关身份验证

2024-04-16

我想在几个服务前面通过Spring Cloud引入Zuul作为API网关。

我对身份验证有一些设计疑问。 身份验证将由 Spring Security 处理,它位于 servlet 过滤器链中的 Zuul 之前。

我的顾虑:

  • 网关将位于许多服务的前面

  • 某些服务可能会公开不需要身份验证的端点

  • 某些服务可能会公开需要会话 ID 的端点,而某些服务可能会公开带有令牌的端点,这是一个任意的不透明值(例如,如果您知道“难以猜测”的 url,则下载文件) 在 API Gateway/Spring Security 中,您可以配置所有端点及其特定的身份验证要求。

在管理API网关方面:

  • 您如何强制实际服务团队提供每个下游服务所需的设置?
  • 如何允许在网关中频繁更改身份验证设置(根据服务需要)而不必停止整个网关?

谢谢, 阿德里安


我们使用 Spring Session 在 Zuul 边缘服务器后面的所有服务之间复制会话。 Zuul 将验证用户身份,填充用户凭据并将经过身份验证的用户插入会话中。然后将其复制到所有服务中,并且每个服务负责自己的安全规则和设置。所以实际上,Zuul 所做的就是在 Spring Security 中查找用户,并且后端的服务在应用到他们的需求时执行安全规则。这样,您可以独立更改每个服务,使网关只是一个愚蠢的代理。

Dave Syers 教程中就是一个很好的例子Spring Security 和 Angular JS 应用程序 https://spring.io/guides/tutorials/spring-security-and-angular-js/。我也发帖了另一个问题 https://stackoverflow.com/questions/32786954/session-not-replicated-on-session-creation-with-spring-boot-session-and-redis与此相关,其中包含我们如何执行此操作的示例,这可能会有所帮助。

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

Zuul - Api 网关身份验证 的相关文章

随机推荐