访问使用OAUTH保护的REST API

时间:2015-10-11 19:34:39

标签: rest security oauth oauth-2.0

我有一组由oauth 2保护的REST API。我需要从Android应用和webapp访问它们。

从Android应用程序访问API似乎很容易实现。我在这里无法理解的是 - 从webapp访问相同API的正确和安全的方法是什么?

我在思考,我不应该使用一些JS库从浏览器直接调用API,因为在我看来它会非常不安全。相反,我应该保持传统,通过向Web服务器提交请求,然后让它进行REST API调用。这类似于从Android进行REST调用的方法。

我的思维/方法是否正确?

1 个答案:

答案 0 :(得分:2)

无论请求来自哪里,访问您的API都应该是相同的。您只需使用带有承载方案的Authorization标头,并将JWT标记粘贴在那里。

你获得JWT令牌的方式不同,正如我在this answer中解释的那样。这完全取决于您对客户端应用程序的信任程度。

如果您的客户端是从服务器端查询API的Web应用程序,则可以使用code authorization grant并获取API的访问权限和刷新令牌。

如果您想从JavaScript应用程序访问API,则无法隐藏应用密钥或刷新令牌,因此您应该使用implicit grant

如果您知道如何在Android客户端上安全地存储机密,则可以使用resource owner password grant

代码授权授权绝对是最安全的,因为它比服务器上运行的应用程序更难破坏服务器应用程序。