我正在开发将在客户端的小型系统上使用的软件。该软件从客户添加的任何Google帐户中获取Google日历事件。问题是Googles API需要一个密钥才能工作。就像现在一样,系统正在运行,但关键是直接在代码中,这意味着最终用户将能够看到它。
首先,这是一个问题吗?我想这是因为密钥是“秘密的”,如果客户端可以看到密钥就会出现问题。其次,如果这很糟糕,我该怎么做才能避免这种情况?它甚至可能吗?
答案 0 :(得分:0)
我不应该成为问题,因为单独的密钥不足以生成访问令牌。您还需要刷新令牌或授权码。
一个风险是,使用密钥,您的一个客户(Alice)构建OAuth授权URL并欺骗您的另一个客户端(Bob)授权Alice的自定义应用程序获取日历数据。如果您使用“已安装的应用程序”工作流程并使用“urn:ietf:wg:oauth:2.0:oob”重定向URI,则只会出现此问题。
如果要避免此问题,可以决定托管将处理嵌入式系统授权的Web服务。此Web服务将保密客户端,并将接收来自您系统的呼叫,以请求客户授权或刷新令牌。当然,现在您需要保护此Web服务,但您可以使用客户特定的凭据集来实现。这样,客户所在的唯一内容就是他访问网络服务的具体凭据,而不是其他任何内容。