【发布时间】:2015-05-07 00:28:14
【问题描述】:
我有一个 API 管理实现如下。
最终用户 Web 应用程序 API 服务器网关 API 资源服务器
我使用 OAuth grant_type=code 来验证用户凭据,然后使用令牌访问 API 资源。
作为 API 提供者(资源开发者),我需要访问最终用户凭据(或至少上下文)以了解谁在发起请求并提供为用户定制的响应。
有可能吗?如果是,这是否违反了 OpenID / OAtuh 标准?
【问题讨论】:
我有一个 API 管理实现如下。
最终用户 Web 应用程序 API 服务器网关 API 资源服务器
我使用 OAuth grant_type=code 来验证用户凭据,然后使用令牌访问 API 资源。
作为 API 提供者(资源开发者),我需要访问最终用户凭据(或至少上下文)以了解谁在发起请求并提供为用户定制的响应。
有可能吗?如果是,这是否违反了 OpenID / OAtuh 标准?
【问题讨论】:
是的,这是可能的,但不会 - 您不会违反 OAuth 标准。原因:令牌验证(授权服务器和资源服务器之间的信息交换超出了 OAuth 规范的范围)。
引用OAuth 2.0 Token Introspection
由于 OAuth 2.0 [RFC6749] 没有为资源定义协议 服务器了解有关已接收令牌的元信息 从授权服务器,已经有几种不同的方法 旨在弥补这一差距。
授权服务器作为自省的结果返回的两个最重要的实体是用户标识符和批准的范围(通过提供的令牌)。
可以通过多种方式进行内省:
【讨论】: