身份验证应用层以访问支持的服务

时间:2017-01-12 18:22:26

标签: web-services authentication load-balancing reverse-proxy middleware

我有两个网络应用程序,一个在端口8001上运行,另一个在8002上运行,另一个独立的auth应用程序在8090上运行。

我希望每个请求首先通过auth-application:8090,然后决定是否应该由web-application:8001或web-application:8002处理。

可能有多个身份验证应用程序可以通过将负载均衡器放在那些和多个Web应用程序集群之上来决定,并且auth应用程序决定Web应用程序集群来转发请求。

通过在几个Web应用程序集群上的含义,我的意思是一个集群构建在Java应用程序上,另一个集群构建在Django Web应用程序上。我想根据请求标头或请求参数来决定集群。

实现这一目标的最佳途径是什么?

我可以考虑使用在nginx proxy_pass块中调用的脚本,但我不确定这是如何工作的,即使这样可行。这个问题可能有一些现有的实现;谷歌/亚马逊可能会使用这种架构吗?

1 个答案:

答案 0 :(得分:0)

通常认证流程是从应用程序启动的(auth服务器如何知道成功认证后你想去哪里?),所以流程应该是: 1.用户到达app 2. app检查用户是否经过身份验证 3.如果否,重定向到auth服务 4.让你参与(基于认证的成功)

因此,用户首先应该知道他们想要的应用程序(8001或8002)。如果两个应用程序相同,那么它是您需要的负载均衡器,但仍然必须从应用程序启动身份验证流程。