正确的方法为应用程序实现匿名身份验证?

时间:2017-02-14 17:24:29

标签: android rest security

我正在寻找与其他api相关问题的身份验证输入。

现在想象一下以下场景: 我有一个Android应用程序想要使用由具有通用API密钥的名为MAIN_API(我无法控制)的公共API提供的资源。 API密钥授予访问风险操作的权限,例如删除记录。

现在我想允许该应用的用户对API资源的访问权限非常有限,但我希望他们能够匿名使用该应用程序(没有自己的凭据)。

我认为解决此问题的最佳方法是使用另一个包含API密钥的服务器,并为MAIN_API提供有限访问的方法(例如PROXY_API只调用简单查询端点)。实际的移动应用程序会调用此API。将其命名为PROXY_API以便解释

您认为这种方法足以阻止MAIN_API的恶意使用吗?您是否认为从PROXY_API生成某种应用程序凭据获取访问令牌是否有益?

1 个答案:

答案 0 :(得分:1)

为Web服务提供基本身份验证非常简单,并且取决于您在服务器上使用的技术堆栈。

我建议您同时授权用户和客户端应用程序访问资源以使用OAuth等授权机制。有可用的Opensource OAuth服务器实现。虽然OAuth服务器是独立组件,但保护资源服务器以检查针对实际OAuth服务器的授权可能取决于您的技术堆栈。

如果您对安全性不是很了解,并希望使用OAuth控制对API / Webapp的访问,我建议您使用StormpathAuth0或{{3}等服务}}。他们前两个提供免费帐户,可以帮助您启动产品。