大家好,今天小编来为大家解答以下的问题,关于初步认识微服务与资源服务器,这个很多人还不知道,现在让我们一起来看看吧!
传统安全方式的不足
在Spring Security教程系列中,我们一步步学习了Spring Security的使用。其中大多数涉及保护应用程序的传统方法。我们通过用户名和密码(或验证码)获取服务器给出的凭证(JWT就是其中之一),然后携带凭证去请求接口获取相应的资源(Resource)。对于大多数单体应用程序来说,这种模式非常方便且简单。
但一旦你的项目变大,需要改造成微服务,使用这种方法就变得有点麻烦了。每个服务的资源都需要认证和授权,因此需要一个范例来简化这个过程。
认证和授权是可以松耦合的用户认证和资源访问控制其实是可以分开的。例如,如果你购买机票,现在你不仅可以在航空公司的票务部门购买,还可以去第三方票务中心线下或网上购买。最后,您的机票将针对每个航班进行验证。确定您是否有资格注册,而不关心您在哪里购买门票。这是一个现实生活中的例子。
如果在微服务中,我们每个服务只需要验证请求是否有访问资源的权限,我们可以将资源访问验证的逻辑抽象成一个通用的模型,并用代码来实现,这与微服务非常一致。集中思想。这就是资源服务器的根本意义。
资源服务器
资源服务器的全称是OAuth2 Resource Server,它实际上是OAuth 2.0协议的一部分。我们通常借助Json Web Token 来实现它(实际上,还有另一种称为Opaque Tokens 也可以使用)。 OAuth2.0授权服务器向客户端发送Json Web Token。该Token用于验证客户端是否有权限访问某个资源。
当单体应用改造为微服务时,授权服务其实还是集中化比较好,用户的认证授权统一管理,发放给客户端Token。每个具体服务也是一个资源服务器。我们只需要抽象出访问控制接口即可。这里遵循一个原则:将通用功能封装到类库(jar)中,将个性化抽象配置到配置中。大致流程图如下:
微服务认证授权流程
这样,授权服务器只负责发放Token,资源服务器只负责验证Token。每当接入新服务时,我们只需要添加支撑资源服务依赖和配置即可,改造非常简单。
还有一种方式是互联网上资源服务器集中化,即在网关处进行集中认证处理。我个人认为不太容易接受,除非你有类似的经历,而且你还要处理一些安全上下文跨服务的问题。上述模型强烈推荐给初学者。
事实上,我已经对上述模型进行了初步的实现和改造。在下一篇文章中,我将讲解如何使用Spring Security在微服务中实现资源服务器,以及单体应用转为微服务的一些关键点。
本文采摘于网络,不代表本站立场,转载联系作者并注明出处:https://www.iotsj.com//kuaixun/7955.html
用户评论
看到标题就想起,之前在网上看过关于微服务的视频介绍。
有5位网友表示赞同!
好期待能从这个微课中学习到对资源服务器更深层的理解。
有5位网友表示赞同!
我一直不太清楚资源服务器的作用是什么,看来可以好好了解一下了。
有11位网友表示赞同!
感觉微服务越来越火热了,这方面的知识掌握得越强越好!
有14位网友表示赞同!
这个标题好吸引人!终于可以找到一些关于微服务的具体解释了。
有20位网友表示赞同!
对于初学者来说,这篇课程应该很易懂吧?
有13位网友表示赞同!
学习一下资源服务器的功能,也许能帮助我在工作中解决一些问题呢。
有19位网友表示赞同!
希望这个“初步认识”能让我打好微服务方面的基础!
有12位网友表示赞同!
不知道这节课会用什么方法讲解,总之很期待看看能学到啥新东西。
有12位网友表示赞同!
学习知识真是没完没了,但这方面还是有必要深入了解一下的。
有11位网友表示赞同!
微服务听起来高大上,但其实只要掌握关键点就更简单了!
有6位网友表示赞同!
看标题就知道是针对入门者的课程了,挺好!
有15位网友表示赞同!
感觉学习微服务很有挑战性,但也十分有成就感哦!
有12位网友表示赞同!
这个课程听起来非常实用,能帮助我理解资源服务器的实际应用场景?
有13位网友表示赞同!
希望课程讲解生动有趣,这样更容易让人明白。
有8位网友表示赞同!
学习新的技术总是很令人兴奋!期待收获满满!
有10位网友表示赞同!
如果能结合一些案例分析,那就更棒了。
有12位网友表示赞同!
我已经迫不及待想了解微服务中的资源服务器究竟是如何运作的!
有17位网友表示赞同!
这个领域的发展速度很快,要不断学习才能跟上脚步。
有15位网友表示赞同!
感谢分享这样有价值的课程!
有18位网友表示赞同!