使用OAuth而不是基本身份验证?

时间:2014-11-05 19:16:17

标签: security oauth basic-authentication

我们有一个Web服务,目前使用基于身份验证的https来验证用户请求。我们还有一个使用该服务的网站,以及一个使用Web服务的本机Windows客户端。我读过有关OAuth的内容,似乎它总是用于提供或访问外部资源,即委托,但我试图了解它是否取代了Basic Auth。

我不太确定所有部件是如何组合在一起的。您是否使用Basic over https来检索网站,然后让使用OAuth而不是Basic对REST服务发出请求的javascript对Web服务进行身份验证?

似乎在某些时候用户需要在表单中输入他们的用户名和密码。我不确定接下来会发生什么。这甚至是OAuth的用例吗?

1 个答案:

答案 0 :(得分:0)

如果您拥有用户(资源所有者)的本地数据库帐户,则可以使用名为“资源所有者密码凭据”流程的OAuth流替换基本身份验证。 这是一个非常简单的流程,您将HTTP post发布到HTTP服务器中指定的端点,通常命名为/token此HTTP Post操作的内容类型为x-www-form-urlencoded,因此帖子正文将包含类似的内容这个grant_type=password&username=Taiseer&password=SuperPass

一个请求被发送到/token端点,服务器将针对您的数据库存储验证用户凭据,如果一切都有效,它应该生成一个令牌(签名字符串),其中包含所有声明资源所有者(用户)。然后,您的客户端应用程序应在Authorization标头中显示此标记,并使用bearer方案每次调用任何受保护的端点。 此令牌在一段时间后过期,您可以从AuthZ服务器进行配置。您可以阅读我的详细博文Token Based Authentication以获取更多详细信息。