0

我正在深入研究 OAuth 2.0 以保护我的 RESTful 服务。我拥有消费者和提供者双方,因此不需要最终用户允许访问提供者上的数据。我已经尝试过客户端凭据流,但这似乎只允许我为我的整个客户端获取令牌,而不是为单个用户获取令牌。如果我在 Javascript 中为我的客户端使用令牌,那么它将提供给所有用户并且不会非常安全,因为用户可能会为所有其他用户获取数据。

有没有一种方法可以让我使用 2-legged(又名客户端凭据)来获取可在 Ajax/Javascript 中使用的特定于用户的令牌(类似于隐式流程提供的,但无需用户批准)?

谢谢。

4

2 回答 2

0

没错,该标准没有说明“客户端凭据授予”场景的用户凭据。但是,如果受保护的资源属于用户,则每个令牌都应与特定用户相关。根据你的问题,我认为是这样。

如果您也在实现 OAuth 服务器,那么您可以轻松地做到这一点。只需在“客户端凭据授予”场景中的授权请求中添加“user_id”参数即可。在服务器端处理请求,可以将令牌绑定到指定的用户。您可以将其视为您自己对协议的轻微扩展。

您可能还希望完全符合标准并且不做任何非一成不变的事情,或者您可能无法访问 OAuth 服务器实现。在这种情况下,您可以尝试使用与用户无关的令牌(或您在问题中所称的“整个客户端”令牌)。但是,访问受保护资源时,您必须明确指定用户(例如,作为资源路径的一部分或在使用 HTTP 的查询参数中),因为它不能从令牌本身推导出来。

于 2012-06-08T11:23:51.510 回答
0

我发现了自动批准客户的能力,因此当某些客户访问他们的数据时,用户不必授权。这在我的场景中有效,因为我对两个网站都使用相同的单点登录机制,并且提供者的登录对用户来说是透明的。

于 2012-06-28T19:04:11.130 回答