Google端点和公共Api密钥

问题描述 投票:5回答:4

要使用Google服务,您可以使用OAuth身份验证,或者,如果您不需要登录用户,则可以使用公共API密钥,将授权域定义为请求的来源。现在,我正在使用谷歌端点编写自己的API,我将允许用户使用我的API和公共API密钥,而不是使用OAuth,在GAE中有任何内置方法可以这样做,或者我必须写我自己的代码来验证api密钥和我的API请求的来源?

google-app-engine google-cloud-endpoints
4个回答
1
投票

如果您使用客户端密钥,则可以通过在Google控制台中定义引荐来源列表来限制可以访问API的用户,如果您使用的是服务器API密钥,则可以通过定义我认为可以使用的IP列表来限制它。用GAE完成,因为我们没有可以随时更改的服务器IP。


0
投票

如果您不使用身份验证,我猜你不需要提供api密钥。


0
投票

我也有同样的问题。

我找到了解决方案,我不确定它是否真的安全。这是解决方案:

我有一些工作: - 在API控制台上创建OAuthcrédentials - 我的无提示ID(在您创建凭据时给出)仅在我的服务器端代码中。 - 使用此客户端ID构造的端点。 - 我没有在我的app引擎应用程序上检查“active oauth authentification”按钮。 结果: - Evry用户无需任何身份识别即可发送数据。 - Evrybody可以通过在浏览器控制台中调用gapi.client.xxxx.list来调用webservice的evry methodo - >所以我从API端点删除了禁止的方法。


0
投票

我已经研究了如何为当前的GCP控制台执行此操作。 Google's documentation似乎缺乏在其所在项目中启用访问您自己的API的重要步骤。

这是谷歌的文档所说的:

为所有呼叫者创建一个API密钥

如果您不需要区分API的调用者,并且不需要添加API限制,但仍需要API密钥(例如,为了防止匿名访问),则可以创建一个API密钥供所有来电者使用。

要为所有呼叫者创建一个API密钥:

  1. 在配置API的项目或启用API的项目中,为所有调用者创建API密钥。
  2. 为每个调用者提供相同的API密钥。

缺少的第0步是你项目中的enable the private API。其步骤如下:

  1. 在GCP控制台中,转到APIs & services以获取项目。
  2. 在“库”页面上,单击“专用API”。
  3. 单击要启用的API。
  4. 在显示有关API的信息的页面中,单击“启用”。

然后,步骤1.5是限制API密钥只访问您的私有API。现在您已启用此API,您会将其视为密钥编辑页面上API限制的选项之一。

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