【问题标题】:How are API key/app id and secret key of web APIs related, and how do they work together?API 密钥/应用程序 ID 和 Web API 的密钥如何相关,它们如何协同工作?
【发布时间】:2015-12-26 09:21:11
【问题描述】:

我找到了许多关于如何找到这些密钥并将它们与我的应用程序集成的教程,但没有人告诉它们如何协同工作。为什么需要它们?它们在 Web 服务的上下文中解决什么目的?

我们还必须做一些事情,称为从密钥存储生成哈希密钥并将其注册到不同的 Web API。

我无法理解 Web API 服务如何处理这些密钥以及它们使用什么属性来生成这些密钥。

据我所知,我们必须在客户端存储应用 ID,但出于安全考虑,我们这里没有使用密钥,那么密钥在服务器端解决了哪些要求?

我没有找到任何提供此信息的文档。

请提供任何帮助,以便我理解这个概念。

我尝试阅读以下文档,但它们没有提供有关如何将所有这些组合在一起的任何信息。

https://developers.facebook.com/docs/facebook-login/android

Facebook API key? Same as Application ID?

https://security.stackexchange.com/questions/19989/facebook-api-app-secret-possible-misuse

【问题讨论】:

    标签: android web-services signing


    【解决方案1】:

    这里有很多东西。有些在客户端,有些在服务器端。简单来说,我们可以认为它们如下。

    App key/id: 被服务器用来跟踪特定应用程序在一天内发出多少 API 请求,以便服务器可以在请求计数超过给定阈值时向客户端收费。

    秘密密钥:这个密钥主要被服务器用来向另一台服务器发出机密请求(即服务器到服务器的通信)。例如:服务器如果想change app related settings或者说想validate access token服务器上的Facebook客户端,可以使用这个key。

    这就是为什么不允许在客户端存储密钥的原因,因为任何人都可以反编译应用程序,找到该密钥并滥用它。

    散列密钥:我们从应用证书生成散列密钥并将其存储在开发者控制台上,以便第一个应用针对给定散列进行验证,并在该 API 请求得到服务之后。这就是为什么我们如果两个哈希键不匹配,有时会在客户端看到无效的哈希键错误。

    Use of Facebook key hash?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-10
      • 2017-07-10
      • 2020-04-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-13
      相关资源
      最近更新 更多