spring-boot - 例如,是否有第三方服务可以进行 api key 管理而不要求用户在 GCP 上创建帐户?

标签 spring-boot google-cloud-platform google-cloud-endpoints openapi

如果我想制作一个公共(public) api,我很确定我需要某种第三方供应商来管理 api key 身份验证,因为替代方案效率低下,例如字母数字生成器和检查 key 数据库。

我正在对 Cloud Endpoints 作为潜在解决方案进行一些研究,因为它可以处理 api key ,但根据他们的 documentation ,任何潜在用户都需要专门注册到我的 api 的 GCP 项目才能获得 api key 。这很愚蠢,因为进行 api 注册的正确方法并不是强制那些甚至可能没有使用 GCP 的人创建一个帐户。

那么有没有任何服务,无论是来自谷歌还是其他人,允许我自行决定生成和管理 api key (因此我决定用户如何能够注册 api key 并控制其支出)还有一个干净的验证解决方案,我可以为 Spring Boot api 实现?

编辑:我应该澄清所述想象中的服务可以提供的一些功能,这些功能可能需要重新发明轮子以手动实现。

  • 速率限制,以锁定任何过快发出过多请求的 api key

  • 使用限制,比如说每天 N 次请求或类似的东西

  • key 认证的效率,以确保 api 本身的性能

  • 确保 key 的唯一性

  • 允许从角度应用按需创建和终止 key

If your API requires an API key, you either have to give your API users a key from the project that you created the Cloud Endpoints service in, or you can let users enable your API in their own Google Cloud project and create an API key.

我也注意到了这个措辞,所以它不是完美的解决方案,但如果有办法通过代码实现这一点,我可以考虑 Cloud Endpoints。如果有一种方法可以为我的 GCP 项目自动创建和分发 api key 作为一种 hacky 解决方法,那当然是一种解决方案。

目前我能找到的关于该操作的唯一说明是通过 UI 手动操作,这是不可行的。

最佳答案

Apigee在谷歌云上可能是你想要研究的。它有许多带有指南的解决方案:

此外,如果您愿意,您还可以使用 Apigee 进一步扩展用于获利的 API。

关于spring-boot - 例如,是否有第三方服务可以进行 api key 管理而不要求用户在 GCP 上创建帐户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62297004/

相关文章:

spring-boot - 不推荐使用 Spring Boot 1.4 VelocityEngineUtils

java - 在 Google Cloud Endpoints 中获取原始 HTTP 数据( header 、Cookie 等)

java.lang.IllegalStateException : This feature is only available to backend instances 错误

spring-boot - 如何在运行 Azure DevOps Pipeline 时跳过构建测试(Spring Boot Maven 项目)

java - Spring Boot 。如何利用原型(prototype)范围?

java - spring boot gradle大文件上传出错

google-cloud-platform - 自动 BigTable 备份

python - GCP 中的 PySpark 内核 - unicode 字符串

docker - 如何从Kubernetes Pod访问HDP集群

java - 为 Cloud Endpoints 类生成 API 元数据失败