oAuth2.0用于私人和公共资源

时间:2015-01-11 15:03:59

标签: oauth oauth-2.0

我想在我的Web应用程序中实现oAuth2.0协议,以便在服务器和移动应用程序之间进行通信(资源服务器和移动客户端都归同一家公司所有)。 鉴于服务器和客户端之间的高度信任,我决定实施资源所有者密码凭据流,这是我的问题:一些资源没有保留(例如产品列表,产品详细信息),因此他们不需要访问令牌资源所有者;但其他资源是私有的(用户的产品愿望清单等)。 因此,对于非私有资源,我只需要对客户端(移动应用程序)进行身份验证,而对于私有资源,我需要对客户端和资源所有者进行身份验证。 考虑到用户可以导航应用程序并在第二时刻登录,我是否必须分两步拆分协议流程?如果是这样,如何处理令牌存储?

我希望我足够清楚。 提前致谢

1 个答案:

答案 0 :(得分:0)

请注意,OAuth 2.0资源所有者密码凭据授予(或流)不是关于客户端和资源服务器之间的信任,而是关于授权服务器和客户端之间的高度信任,因为客户端“看到”了密码它发送到授权服务器(它从不将它发送到资源服务器)。

在您的情况下,您可以获得并使用通过不同流程获得的2个访问令牌:

  1. 客户端本身通过客户端凭证授予获取的访问令牌,用于公共资源
  2. 通过资源所有者Passwrod凭据授权从资源所有者获取的访问令牌,代表资源所有者使用私有资源
  3. 这就是假设你想要保护你的“公共”资源。如果他们真的是公开的,你甚至不会保护它,也不必发送任何访问令牌,所以1.甚至不需要。