Spring OAuth2中/ check_token和user-info-uri端点有什么区别?

时间:2017-12-13 00:16:07

标签: spring oauth-2.0 access-token

Spring公开/check_token端点;见this link

对于/check_token,我们需要配置RemoteTokenServices并提取令牌。但是,我们也可以配置基本上做同样事情的UserInfoTokenServices

我唯一的区别是第一个是根据OAuth 2.0扩展:Token Introspection Endpoint,但是,根据OAuth 2 Extension这个端点不会返回节点'active',这是必需的。见this link

但是,除此之外,还有其他任何功能性原因我们有这些端点吗?

1 个答案:

答案 0 :(得分:2)

我也有同样的问题,但是我做了一些研究工作并得到了答案,希望我的答案能对您有所帮助。如果我有任何错误,请纠正我。

spring security oauth2和cloud-oauth2中有两个端点。

check_token: 在OAuth 2.0扩展令牌自省中定义。它的方法是post,通过HttpBasic身份验证来保护。返回基本信息。
这是授权服务器端点。

user_info_uri: 在openid-connect中定义。 返回个人资料信息(例如电子邮件地址和生日),主要用于SSO登录,可以发布或获取方法。
它是资源服务器端点。
您可以查看下面的文档进行确认。
OpenIDConnect

让我引用一些句子,从下面总结一下
https://github.com/spring-projects/spring-security/issues/6342

/ introspect终结点和/ userinfo终结点非常不同,并且在提供程序的不同场景中使用。

/ introspect端点接受一个不透明的(通常是)访问令牌,并返回与该访问令牌相关的一组声明。

/ userinfo端点接受访问令牌,并返回与当前经过身份验证的用户相关的一组声明。