0

我有一个使用 OAuth2 保护的 REST 后端和一个移动应用程序。

我想使用资源所有者凭据流从我的移动应用程序对用户进行身份验证。

由于我必须提供一个 client_id 来识别请求身份验证的应用程序,我如何防止黑客从我的移动应用程序源代码中窃取我的 client_id,以及如何撤销它?

我真的很想知道官方的 Twitter Android 应用程序是如何处理这种事情的。

4

1 回答 1

0

我知道这是一个非常古老的帖子,但我只是在一个不相关的搜索中发现它,发现它没有得到答复。

引用OAuth 2.0 规范

客户端标识符不是秘密;它向资源所有者公开,不得单独用于客户端身份验证。

换句话说,client_id 与用户名或电子邮件非常相似。如果有人发现了我的电子邮件地址,我当然不会介意,即使这是登录和查看我的电子邮件所需数据的一半。为了保持这个想法,client_secret 是一个密码,应该通过保护您的源代码并将POST请求仅发送到HTTPS端点来保持私密。

至于通过这些凭据撤销授予客户的权限,大多数(如果不是全部)主要 OAuth 提供商将允许您通过他们的 OAuth 门户做一些事情。按照您的 Twitter 示例,他们在 API 密钥页面上有一个按钮,用于“重新生成 API 密钥”。如果您是服务提供商(我这么说是因为您提到拥有资源所有者凭据的权限)并且您没有设置面向公众的 OAuth 门户,那么只需更改任何数据存储中的字符串即可您使用服务器端,然后在客户端源代码中进行相同的更改。

于 2014-04-04T23:24:23.547 回答