【发布时间】:2017-01-24 10:14:38
【问题描述】:
我打算使用Python 为Spotify 编写一个Kodi (former XBMC) 插件。前段时间,Spotify 弃用了他们的旧库libspotify,并引入了一个基于WebAPI 的新ReST。我想使用这个 api 从 Spotify 请求播放列表、关注的专辑和其他用户特定的东西等数据。这个WebAPI 使用OAUTH 机制来授权应用程序使用用户特定的数据。
因此,我需要Client ID 和Client Secret。虽然Client ID 是公开的,但我将其存储在源代码中没有问题。但是Client Secret 呢?应用程序需要此密钥才能在 spotify 上对自身进行身份验证。因此,它也需要部署。
我如何安全地部署这个秘密,这样插件的用户就无法读出这个秘密?
我不能使用混淆技术,因为 python 被解释了,用户可以简单地启动解释器,导入我的模块并读出重建的秘密。加密密钥也是如此。应用程序需要能够解密密钥,因此,我还需要部署加密密钥。这是先有鸡还是先有蛋的问题。
对此有什么建议吗?其他软件是如何解决这个问题的?
编辑:我刚刚发现了这个RFC6819。似乎这是oauth 中的普遍问题。
【问题讨论】:
标签: python rest security oauth spotify