我们在GAE上建立了一个微服务项目,在GAE标准JAVA和灵活Python环境中托管多种服务。
我们需要实现服务到服务和客户端到服务通信的身份验证。
对于客户端到服务,我们已经拥有基于表单的身份验证模型,该模型通过交换基于域cookie的身份验证令牌来验证客户端的服务,该身份验证由成功身份验证的服务生成。现在,在GAE上使用不同的微服务,我们或者需要在那里复制身份验证令牌生成和验证逻辑,或者将此身份验证逻辑移动到某个中央身份验证服务本身。
我们的Web和Android客户端以这种方式与我们的后端服务进行通信。
现在,需要为服务到服务通信建立认证(以及稍后授权)。
我一直在阅读关于应用程序安全性的GAE文档,以检查它是否有助于在GAE上的微服务之间快速设置这种经过身份验证的通信。虽然GAE提供了一些安全规定和设置但是看起来非常有限且不那么一般(充满警告!)。对于入站应用程序等使用X-appengine- *标题非常快的东西是行不通的使用自定义域名。防火墙规则和服务帐户设置主要在应用程序级别而非服务级别工作。
基于目前的阅读,似乎我们需要编写一些专用的身份验证服务,生成并验证JWT令牌,用于通信方(无论是客户端还是服务)。
我们需要一个非常通用且可定制的解决方案,以最小的努力满足SSO登录的未来需求。
想知道是否有人已编码在GAE上的微服务(与标准和灵活设置混合)与自定义域之间进行认证和授权通信,并且慷慨地分享他/她的经验:)