如何处理云端点的非交互式身份验证:服务帐户,API密钥或自定义?

时间:2019-06-30 16:21:41

标签: authentication google-cloud-endpoints restful-authentication google-cloud-endpoints-v2

我正在计划创建一个API,该API将使用Cloud Endpoints部署在GCP上。我们希望许多用户可以从自己的自动化工作流程中访问API。因此,身份验证不能涉及任何用户交互。鉴于此要求,为每个客户端分配一个API密钥似乎是一个理想的选择。但是,它在安全性方面存在严重缺陷,如此处所述:https://cloud.google.com/endpoints/docs/openapi/authentication-method

以上链接还指出,服务帐户可用于身份验证。因此,似乎另一种方法是为每个具有项目许可权的API用户生成一个服务帐户,而不仅仅是调用我们的端点。但是,https://cloud.google.com/iam/docs/service-accounts指出每个项目最多只能有100个服务帐户。将我们的服务限制为100个客户是不可接受的。

是否存在针对云端点设置非交互身份验证的最佳实践,它提供的安全性比仅API密钥提供的安全性高,并且可以扩展到超过100个受支持的API用户?

我可以设想创建一个自定义服务,该服务模仿GCP已使用其服务帐户处理的内容-从具有公钥/私钥对的存储帐户创建JSON Web令牌(JWT)。但希望避免不必要时重新发明轮子。如果需要自定义内容,是否还有其他Google服务(或第三方库)可以执行自定义实现的繁重任务?

0 个答案:

没有答案