如果我想做一个公共的api,我很确定我需要某种第三方供应商来管理api密钥认证,因为替代方案会是一些低效率的东西,比如字母数字生成器和对照密钥数据库进行检查。
我对Cloud Endpoints进行了一些研究,认为它是一个潜在的解决方案,因为它可以处理api密钥,但根据他们的研究,他们的 文件任何潜在的用户都需要在我的api上注册一个GCP项目才能获得api密钥。这很愚蠢,因为注册api的正确方法不是强迫那些可能根本不使用GCP的人去做一个账户。
那么,有没有什么服务,不管是来自Google还是其他人,可以让我自行决定生成和管理api密钥(所以我决定用户如何注册api密钥,并控制它的发放),同时有一个干净的验证解决方案,我可以为Spring Boot api实现?
编辑:我应该澄清一下所述想象中的服务可以提供的一些功能,这些功能可能会重新发明轮子来手动实现。
速率限制,以锁定任何快速发出过多请求的 api 密钥。
使用限制,比如说每天N个请求或类似的东西。
密钥认证的效率,以保证api本身的性能。
确保钥匙的唯一性
允许按需创建和终止键,比如说一个angular app。
如果你的API需要一个API密钥,你必须给你的API用户一个来自你创建Cloud Endpoints服务的项目的密钥,或者你可以让用户在自己的Google Cloud项目中启用你的API并创建一个API密钥。
我也注意到了这个动词,所以它不会是完美的解决方案,但如果有办法通过代码来实现这个目标,我可以考虑Cloud Endpoints。如果有办法为我的GCP项目自动创建+分发api密钥作为黑客的变通方法,那肯定是一个解决方案。
不过目前我能找到的关于该操作的唯一说明就是通过UI手动操作,这是不可行的。