保护移动应用程序访问的RESTful Web服务

时间:2016-03-27 14:47:06

标签: rest security mobile

我正在开发一个RESTful Web服务作为移动应用程序的后端层(从Android和iOS手机访问)。移动应用程序包括登录前和登录后的功能。如何为我的RESTful Web服务提供安全性,以便只有在从我们的移动应用程序收到请求时才能提供请求,并且只有在登录后功能的情况下才能为经过身份验证的用户提供请求。

我正在使用Tomcat服务器,Spring和Jersey(我可以根据需要更改版本)

请就如何实现这一目标提出建议。

2 个答案:

答案 0 :(得分:2)

首先你应该使用https。这是确保安全的最低要求。

要断言来自您的应用程序的通信,您可以使用令牌,但它可能被盗。

要断言它来自经过身份验证的用户,您的后端可以在登录后返回令牌,或使用OAuth 2等机制

答案 1 :(得分:2)

保证请求来自特定客户端的方法是要求应用程序进行身份验证,这是通过OAuth 2.0中的client credentials grant完成的。

这个问题是它需要客户端发送客户机密码(想到API密钥或密码)。因此,该秘密需要存储在移动客户端本身上。这不能以安全的方式完成,即设备的用户可以访问该秘密。这意味着,用户无法信任以保护机密安全,它可能会泄漏,使每个人都可以作为您的移动客户端对您的API进行身份验证。

您应该以任何客户端(不仅仅是您的移动应用程序)可以进行未经身份验证的请求(无访问令牌)的方式构建您的API。任何暴露您需要保密的数据的请求都需要用户身份验证。