如何在API

时间:2016-06-10 07:36:51

标签: ruby-on-rails rest authentication api-design

我正在学习使用rails开发API,但我无法找到如何保护用户创建等基本方法。让我们说我有一个rails后端API和一个前端移动应用程序。我希望应用程序能够进行API调用以创建新用户。当然,并非所有人都应该能够创建新用户,因此它应该具有某种身份验证。我可以使用基本或摘要式身份验证(并不重要,因为我绝对会使用SSL),但是我必须将凭据硬编码到我的应用程序中。如果以某种方式发现凭据,我将不得不更改它们,但这意味着应用程序的所有实例都不再经过身份验证,并且无法再创建用户。

我想要的东西:

  1. 只有我的应用才能使用用户创建来电。
  2. 更改凭据应该很容易,或者凭据会随着时间的推移自动更改。例如,如果他们涉及日期和时间,就会更难破解。
  3. 随着时间的推移知道一些凭据,应该是不可能(或非常难)击败它背后的系统。
  4. 例如,让我的应用程序随机生成公钥和私钥对并使用它们是否可能?保护这些电话的标准方法是什么?

    提前致谢,

    Rugen Heidbuchel

1 个答案:

答案 0 :(得分:2)

我可以分享自己的经历:

  • fun() = 30与API的协议通信。 这是关于私钥/公钥的最后一句话,所有内容都内置在https中。
  • Doorkeeper(我们将它与Devise)gem结合起来用于Oauth(在我的情况下是github帐户)作为身份验证,而您可以使用成对的用户/密码。
  • CanCanCan gem作为授权(用户创建限制是关于授权而不是身份验证)

这三个工具的集合应该为您的API提供基本的安全级别。我相信https可能正在讨论中,而cancancan主要是行业标准。