【问题标题】:What is the difference between /check_token and user-info-uri endpoints in Spring OAuth2?Spring OAuth2 中的 /check_token 和 user-info-uri 端点有什么区别?
【发布时间】:2018-05-26 18:56:53
【问题描述】:

Spring 暴露了/check_token 端点;见this link

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

我能说的唯一区别是第一个是根据 OAuth 2.0 扩展:令牌自省端点,但是,此端点不会根据 OAuth 2 扩展返回节点“活动”,这是强制性的。见this link

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

【问题讨论】:

  • 嗨!你得到这个问题的答案了吗?我也在实现令牌自省端点,并希望获取有关此主题的所有信息。谢谢!
  • @walts 嗨。不像你看到的那样没有人回答我的问题。我的猜测是,您可以配置 spring 的 bean 以自动检查此端点以验证用户...但我没有时间进行更多调查,所以我最终自己设计了 Token Introspection Endpoint
  • 嗨!我对 active 属性进行了一些调查,结果发现最新的 spring oauth 版本返回了它。在此处检查此行github.com/spring-projects/spring-security-oauth/blob/… 我最终只是覆盖了此端点以修改对我需要的响应,但总的来说我认为这可以用作令牌自省端点。

标签: spring oauth-2.0 access-token


【解决方案1】:

我也有同样的问题,但我做了一些研究工作并得到了答案,希望我的回答可以帮助你。如果我犯了任何错误,请纠正我。

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

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

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

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

/introspect 端点和 /userinfo 端点有很大不同,与提供者在不同的场景中使用。

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

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

【讨论】:

  • 谢谢!虽然有点晚了,但我认为这就是问题的答案。
猜你喜欢
  • 2015-01-01
  • 1970-01-01
  • 2017-10-06
  • 2019-03-06
  • 2018-09-08
  • 2021-07-11
  • 1970-01-01
  • 2021-01-06
相关资源
最近更新 更多