Google端点和公共Api密钥

时间:2014-04-28 09:55:19

标签: google-app-engine google-cloud-endpoints

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

4 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

我有同样的问题。

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

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

答案 3 :(得分:0)

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

这是Google文档所说的:

  

为所有调用者创建一个API密钥

     

当您不需要区分时   在API的调用者之间,您无需添加API   限制,但您仍需要使用API​​密钥(以防止   例如匿名访问),则可以为所有用户创建一个API密钥   呼叫者使用。

     

要为所有调用者创建一个API密钥:

     
      
  1. 在配置了API的项目或启用了API的项目中,为所有调用者创建一个API密钥。

  2.   
  3. 为每个调用者提供相同的API密钥。

  4.   

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

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

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