在python

时间:2016-09-16 08:41:23

标签: python rest security oauth spotify

我打算使用Kodi (former XBMC)Spotify编写Python插件。前一段时间,Spotify弃用了旧库libspotify并引入了基于ReST的新WebAPI。我想使用这个api来请求数据,如播放列表,跟随专辑和Spotify的其他用户特定内容。此WebAPI使用OAUTH机制授权应用程序使用特定于用户的数据。 因此,我需要Client IDClient Secret。虽然Client ID是公开的,但我在将其存储在源代码中时没有问题。但是Client Secret呢?应用程序要求此秘密在spotify上进行身份验证。因此,它也需要部署。

如何安全地部署此秘密,以使该插件的用户无法读出该秘密?

我不能使用混淆技术,因为python被解释,用户可以简单地启动解释器,导入我的模块并读出重建的秘密。加密密钥同样适用。应用程序需要能够解密秘密,因此,我还需要部署加密密钥。这是一个鸡或蛋的问题。

有关于此的任何建议吗?其他软件如何解决这个问题?

编辑:我刚发现这个RFC6819。似乎这是oauth中的一般问题。

1 个答案:

答案 0 :(得分:2)

在这种情况下,您可以使用专为客户端应用程序设计的Implicit Grant Flow,出于安全原因,存储密码是不切实际的。