我一直在努力创建一个利用微服务架构和API网关的平台。我遇到的一个问题是如何让API网关同时处理经过身份验证和未经身份验证的端点。
Here is a simplified and rough diagram of the system I am thinking about
对于我的系统,我将使用Auth0,我想我想让service使用公共密钥而不是gateway来检查令牌是否有效。如果我有一天要公开我的一项服务,这将给我带来更大的灵活性。而且我想我希望保持网关较小。
但是网关将如何处理经过身份验证的端点和未经身份验证的端点的混合?即我想使GET端点“打开”,而POST端点需要登录。哪个实体应该管理端点是“开放”还是“需要登录”,网关还是服务?
是的,它是在您要使用的网关上配置的。例如,在AWS API网关上,您可以为访问点提供一个lambda自定义网关授权者。 Authorizer函数可以通过向指向该端点的所有请求返回ok来“授权”。
更多阅读here