【发布时间】:2017-05-25 11:40:12
【问题描述】:
我发现了类似的issue,但没有答案,所以我想我会重复一些问题。
我正在使用 Spring OAuth2 来实现单独的资源和自定义身份验证服务器。 我已经通过发布和验证 JWT 令牌配置了与身份验证服务器的交互,一切似乎都很好。
现在我正在尝试添加 SSO 功能,但我一直坚持下去。我研究了官方 Spring examples 和附加指南,但是在将 SSO 部分与自定义服务器身份验证连接时,它的措辞非常简短。而实际上作者仅使用外部提供者资源(“用户”信息)来显示流程。
我认为拥有所有这些 SSO 身份验证手段和自定义注册是正常的事情。例如,我可以看到它适用于 stackoverflow。
我正在寻找有关在资源服务器上处理由多个 SSO 提供者以及自定义身份验证服务器发出的不同类型令牌的任何信息的方向。 也许我可以使用 auth 链来做到这一点,并且有些手段可以区分令牌格式以了解如何处理它。 Spring OAuth2可以吗?或者我需要以某种方式手动完成这个魔法?
目前我只有一个“可能很奇怪”的想法: 根本不让我自己的资源服务器使用这个 SSO 的东西。收到 Facebook(例如)令牌后 - 只需使用自定义身份验证服务器(在途中关联或创建用户)将其交换为 api JWT 令牌,然后在标准基础上使用资源服务器
已编辑: 我至少找到了一些东西。我已经阅读了有关在授权链中配置过滤器并将给定的社交令牌转换为我的自定义 JWT-s 作为“身份验证后”的信息(毕竟这不是一个疯狂的想法)。但它主要是通过 SpringSocial 完成的。 所以现在的问题是:如何做到这一点? 忘了说我正在使用密码授予在自定义服务器上进行身份验证。客户端将只是受信任的应用程序,我什至不确定浏览器客户端(仅考虑本机移动选项)。即使我决定拥有浏览器客户端,我也会确保它有后端来存储敏感信息
【问题讨论】:
标签: spring-boot single-sign-on spring-security-oauth2