GCP服务账号key可以直接替代Cloud Endpoints api key吗?

问题描述 投票:0回答:1

能否以编程方式创建google API KEY?

我确实看到了上面的问题,但我想验证一下它在我的用例中的功能。我有一个部署在Google App Engine上的REST api,我想为外部用户引入一些api key机制。我不是在做一个网站,我只是想确保从前端到后端只有我的代码与我的代码对话,这是一个公共的api,任何拥有有效凭证的人都能访问。

谷歌云端点只会验证通过GCP生成的api密钥。所以,我的想法是,如果能够 开设服务账户 及相关 服务账户密钥 通过http请求,那么就可以为任何潜在用户生成api密钥(服务账户密钥),为每个用户生成一个服务账户,然后给他们相关的私钥,使他们能够通过 通过云端点进行身份验证 (jwt签约?).

在我看来,这听起来是一个好计划,但很可能我错过了一些东西,使这是一个可怕的想法。有什么想法?这已经做了之前的证明吗?

google-cloud-platform jwt google-cloud-endpoints service-accounts
1个回答
0
投票

TL;DR:错误的方式

首先,GCP上的API Key只能认证GCP项目,而不是用户或服务账号。

那么,服务账号的key文件并不是API Key,它是一个秘密身份,你可以用它来生成OAuth2的JWT令牌(身份令牌)。它是一个秘密的身份,你可以根据Oauth2流程生成一个OAuth2 JWT token(身份令牌)。这个身份令牌可以被提供给认证(而且它的有效期只有1H)。

另外,你每个项目最多只能有100个服务账号,服务账号的意义是用来认证app,而不是用户。如果你想认证用户,我建议你看一看,以 云身份认证平台

最后,API密钥的生成是最近(大约1个月)才发展起来的,......。我想再找一下文档,但这是一个 死链. 也许,测试版还没有准备好。

注:也许我执行的答案是 此间 可以帮助你吗?

© www.soinside.com 2019 - 2024. All rights reserved.