【发布时间】:2017-12-25 02:02:44
【问题描述】:
我想知道在 Spring Security 中是否可以锁定 rest api 的所有端点,并通过执行自定义验证而不使用用户名和密码来登录。
这就像创建一个接收令牌而不是用户/通行证的自定义验证方法。然后该方法将使用已经验证调用者的第三方验证令牌。
这对 OAuth2 来说听起来很熟悉,只是后端 API 需要在 spring 之前是安全的,同时它不是 OAuth2 客户端:
- 我们正在构建登录功能。
- 我们有一个客户端(移动应用)、后端(类似于 Spring MVC 的 REST 端点)和一个用于 OAuth2/OpenIdConnect 流的 AuthProvider。
- OAuth/OpenIDConnect 流仅发生在移动设备和 OpenIDProvider 之间。 (从移动设备到后端进行初始调用,以提供 oauth 流的一些详细信息)
- 一旦授权成功,移动应用程序会收到一个auth_code,然后才会从应用程序调用后端“登录”,这意味着验证auth_code,交换access_token,并创建用户会话。 (我们需要开会)。
- 正如您所见,后端类型的“登录”只需要接收 auth_code,并在创建会话之前使用 AuthProvider 对其进行验证。
非常感谢!
非常感谢任何 cmets 或参考资料。
【问题讨论】:
标签: spring rest spring-security oauth-2.0 spring-security-oauth2