正在嵌入式系统上获取 Google 日历事件(api 秘密?)
Fetching Google calendar events on embedded system (api secret?)
我正在开发将在客户的小型系统上使用的软件。该软件正在从客户端添加到它的任何 Google 帐户中获取 Google 日历事件。问题是 Googles API 需要密钥才能工作。就像现在一样,系统正在运行,但关键直接在代码中,这意味着最终用户将能够看到它。
首先,这是一个问题吗?我猜是因为key是"secret",如果客户端能看到就不好了。第二,如果这是不好的,我应该怎么做才能避免这种情况?有可能吗?
我应该不是问题,因为仅凭密钥不足以生成访问令牌。您还需要一个刷新令牌或授权码。
一个风险是,您的一个客户 (Alice) 使用密钥构建 OAuth 授权 URL 并欺骗您的另一个客户 (Bob) 授权 Alice 的自定义应用程序获取日历数据。仅当您将 "installed application" 工作流程与 "urn:ietf:wg:oauth:2.0:oob" 重定向 URI 一起使用时才会出现该问题。
如果您想避免这个问题,您可以决定托管一个 Web 服务来处理嵌入式系统的授权。此 Web 服务将保留客户端机密,并将接收来自您的系统的调用以请求客户授权或刷新令牌。当然,现在您需要保护此 Web 服务的安全,但您可以使用一组特定于客户的凭据来做到这一点。这样,在客户处所唯一的东西就是他访问网络服务的特定凭据,没有别的。
我正在开发将在客户的小型系统上使用的软件。该软件正在从客户端添加到它的任何 Google 帐户中获取 Google 日历事件。问题是 Googles API 需要密钥才能工作。就像现在一样,系统正在运行,但关键直接在代码中,这意味着最终用户将能够看到它。
首先,这是一个问题吗?我猜是因为key是"secret",如果客户端能看到就不好了。第二,如果这是不好的,我应该怎么做才能避免这种情况?有可能吗?
我应该不是问题,因为仅凭密钥不足以生成访问令牌。您还需要一个刷新令牌或授权码。
一个风险是,您的一个客户 (Alice) 使用密钥构建 OAuth 授权 URL 并欺骗您的另一个客户 (Bob) 授权 Alice 的自定义应用程序获取日历数据。仅当您将 "installed application" 工作流程与 "urn:ietf:wg:oauth:2.0:oob" 重定向 URI 一起使用时才会出现该问题。
如果您想避免这个问题,您可以决定托管一个 Web 服务来处理嵌入式系统的授权。此 Web 服务将保留客户端机密,并将接收来自您的系统的调用以请求客户授权或刷新令牌。当然,现在您需要保护此 Web 服务的安全,但您可以使用一组特定于客户的凭据来做到这一点。这样,在客户处所唯一的东西就是他访问网络服务的特定凭据,没有别的。