如何在SSO中使用JWT对微服务进行身份验证和授权?

时间:2017-04-24 13:50:18

标签: java spring spring-boot spring-security spring-security-oauth2

我们在Spring启动应用程序中使用spring API安全性。

我们已经实现了两级安全性,即页面级别和API级别。我们支持从我们自己的应用程序登录和SSO登录。我们还从authN(api / login和/ api / token)

中删除了两个api

关于架构我几乎没有问题。

第1名:

我们有自己的登录信息,可以输入用户名和密码进行身份验证,并返回访问令牌。

如何向此API添加SSO(单点登录)?

2号:

如何持久化令牌以及如何使用刷新令牌。

当用户登录时,我将创建一个访问令牌和一个刷新令牌。访问令牌将被发送回UI,刷新令牌将在DB /缓存中。当用户从他的浏览器调用任何API时,他将发送带有ajax请求的访问令牌,过滤器验证令牌并在验证preAuthN服务中的令牌后发送响应。

我的问题是,如果访问令牌可能已过期,那么如何使用刷新令牌生成新的访问令牌?

解决方案1:     一旦服务器收到访问令牌,验证该访问令牌是否过期,从服务器本身调用/ api / token来更新访问令牌并处理请求并使用令牌发回响应

解决方案2:     一旦服务器收到访问令牌,验证该访问令牌并且访问令牌是否过期,将确认发送到浏览器,浏览器将以某种方式处理它以生成新的访问令牌

还是有更好的解决方案吗?

0 个答案:

没有答案