请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于引入认证授权模块的问题

图片描述

使用OAuth2进行认证授权,以上是认证授权流程图,分如下几个步骤进行:
1.浏览器展示的前端网页发起认证请求,跳转到OAuth2认证服务器,用户进行登录。使用的是授权码的认证方式。
2.用户在OAuth服务器上认证成功了之后,OAuth服务器返回授权码给前端服务器。
3.前端服务器拿到授权码后,通过网关向OAuth服务器请求令牌。
4.前端服务器请求令牌成功后,用户的每次请求前端服务器都会携带上获取到的令牌,然后再把请求发送到网关。
5.网关首先对前端请求的令牌进行校验,然后调用权限微服务进行用户权限认证。
6.令牌认证与用户权限认证都通过了之后,网关再把请求转发给对应的微服务。

用户权限认证这块分为两部分:
1:配置OAuth2的scope参数以限制客户端能访问的资源服务器。
2:根据用户自身的权限和用户的请求进行权限认证。比如当前用户是对优惠券模板微服务进行请求,用户有read权限,所以可以进行查找所有可用的优惠券模板操作。但是用户没有write权限,所以如果用户发起的是构建优惠券模板的请求,则权限认证不通过,网关直接返回错误信息,不转发请求。

请问老师对这个方案有什么见解?不知道老师在实际工作中微服务用户认证授权这一块又是怎么做的?用什么技术实现的?望老师解答,谢谢老师。

正在回答

1回答

同学你好:

    非常感谢你这里提供的权限认证服务设计思想。你这里的权限验证基本就是企业级开发过程中使用的标准思想。但是在实现上有很多种方式,并不拘泥于 OAuth2。

    我们如果要做认证服务,肯定是在服务请求的最前端去处理,也就是在网关处确定请求是否带有正确的权限,如果是,则通过继续向下寻找对应的微服务;如果不是,则直接返回错误。

    权限认证我们使用的方式比较多,OAuth2 和自己实现的都有。不管哪种实现方式,思想还是核心。


    欢迎来 QQ 群随时交流、讨论,也非常感谢同学的支持!

4 回复 有任何疑惑可以回复我~
  • 提问者 LBruce #1
    谢谢老师,希望老师能在课程的后续更新或者下一门实战课中讲一下其它的权限认证方式。
    回复 有任何疑惑可以回复我~ 2019-11-19 19:37:11
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信