是否可以使用OAuth 2.0访问令牌在另一个上下文中对用户进行身份验证?

时间:2015-06-03 07:12:57

标签: authentication oauth oauth-2.0

我想知道是否允许在应用程序之间传递用户的OAuth 2.0访问令牌,并将其用作登录的方法。

我有一个iPhone应用程序,它使用密码授权来验证用户身份,然后将其访问令牌用于将来的请求。 iPhone应用程序还可以在选项卡中打开我们的网站,我希望用户在此选项卡打开时登录我们的网站。

根据OAuth 2.0规范,是否允许将该令牌传递给Web请求并让Web服务器进行身份验证并将用户登录以获取该请求?

例如,浏览器可能会打开以下位置(但使用标题而不是查询字符串):

https://example.com/account?access_token=foo_bar

或者,可以使用OAuth身份验证的专用端点和重定向。

所以实际上,我的问题分为两部分;可以在应用程序上下文之间共享OAuth 2.0令牌,并且可以使用令牌在另一个上下文中对用户进行身份验证吗?

1 个答案:

答案 0 :(得分:1)

在OAuth 2.0规范(RFC 6749)中,有几个区域可能相关。基本上client可以接收多个access_token接受的resource_servers,但如果client由多个components组成且具有不同的安全上下文,则应该注册每一个并使用不同的令牌:

跨多个资源服务器的单个令牌

A single authorization server may issue access tokens accepted by
multiple resource servers.

包含多个组件的单个客户端

A client may be implemented as a distributed set of components, each
with a different client type and security context (e.g., a
distributed client with both a confidential server-based component
and a public browser-based component).  If the authorization server
does not provide support for such clients or does not provide
guidance with regard to their registration, the client SHOULD
register each component as a separate client.