基本HTTP身份验证:用户或应用程序?

时间:2011-09-08 11:29:00

标签: html security http rest restful-authentication

对我的问题应该是一个简单的答案,但在网络上我似乎得到了相互矛盾的信息。

让我们假设我有一个使用基本HTTP身份验证的简单API。移动应用程序使用我在SSL上的API来注册新用户(POST)和(GET)任何用户信息/配置文件。

问题:我是否通过HTTP身份验证验证用户应用

作为一个例子......

让我们说

api.somedomain.com/user/create

api.somedomain.com/user/ {用户ID}

方案1:API在标头中使用基本身份验证,应用程序发送开发人员用户名和密码(而不是登录到其应用程序的用户)。用户可以通过应用程序创建,用户可以查看用户帐户。

缺点:如果有人发现应用程序正在使用的用户名和密码,他们可以创建用户并查看帐户。

场景2:我通过基本身份验证而不是应用程序验证用户。通过这种方式,用户可以在登录应用程序时查看其信息。

缺点:应用无法创建新用户,因为他们需要先将身份验证作为用户。

现在我知道第一个答案将是“使用OAuth”,但我想在这种情况下获得基本身份验证的答案。

先谢谢

1 个答案:

答案 0 :(得分:2)

嗯,无论如何你有两个用户(两种用户)。一种是活人形,另一种是应用。

允许“应用程序类型用户”创建帐户,并允许“人形机器人”查看/编辑他的个人资料。

对于您的服务器,问题应该很简单:

  • 首先,查看经过身份验证的人。匹配用户名和密码,找到客户端

  • 如果客户端尝试创建帐户或查看个人资料,请检查是否允许他执行此操作

以与活人类相同的方式对待移动应用程序,并使它们的权限不同。您的移动应用程序在尝试创建帐户时可能会向您发送自己的凭据,但只要某人提供了自己的登录名和密码,请让移动应用程序使用由人提供的。