【发布时间】:2013-12-30 17:01:41
【问题描述】:
我有一个面向内部的 RESTful Web 服务。有各种客户端应用程序使用该服务,客户端应用程序本身也有最终用户。 Web 服务需要根据最终用户身份对请求进行授权。
问题:这里验证最终用户的典型选项是什么?也就是说,我想验证用户,而不是客户端应用程序。 (我不介意验证客户端应用程序是否是该方案的一部分,但最终我需要知道最终用户是我认为的他或她。)
例如,一种可能的方案是拥有每个客户端的系统帐户,然后让客户端简单地声明用户的身份(例如,在 HTTP 请求标头中)。因此,我们对客户端应用程序进行身份验证并将用户身份验证委托给客户端。不过,我不认为这是一个非常强大的方案,因为它过于依赖于保持系统帐户凭据的机密性。我已经看到太多人们通过电子邮件发送系统帐户凭据的例子了,我对这种方法没有信心。
另一种方法可能是让客户端应用在用户登录后使用用户的凭据从 API 获取令牌,然后将该令牌用于后续 API 请求。这样,身份验证是特定于用户的,无需客户端应用程序使用用户名/密码凭据。
无论如何,我想更好地了解我应该在这里考虑的选项范围。
【问题讨论】:
标签: web-services security rest authentication oauth