关于引入认证授权模块的问题
来源:12-1 课程总结

LBruce
2019-11-19
使用OAuth2进行认证授权,以上是认证授权流程图,分如下几个步骤进行:
1.浏览器展示的前端网页发起认证请求,跳转到OAuth2认证服务器,用户进行登录。使用的是授权码的认证方式。
2.用户在OAuth服务器上认证成功了之后,OAuth服务器返回授权码给前端服务器。
3.前端服务器拿到授权码后,通过网关向OAuth服务器请求令牌。
4.前端服务器请求令牌成功后,用户的每次请求前端服务器都会携带上获取到的令牌,然后再把请求发送到网关。
5.网关首先对前端请求的令牌进行校验,然后调用权限微服务进行用户权限认证。
6.令牌认证与用户权限认证都通过了之后,网关再把请求转发给对应的微服务。
用户权限认证这块分为两部分:
1:配置OAuth2的scope参数以限制客户端能访问的资源服务器。
2:根据用户自身的权限和用户的请求进行权限认证。比如当前用户是对优惠券模板微服务进行请求,用户有read权限,所以可以进行查找所有可用的优惠券模板操作。但是用户没有write权限,所以如果用户发起的是构建优惠券模板的请求,则权限认证不通过,网关直接返回错误信息,不转发请求。
请问老师对这个方案有什么见解?不知道老师在实际工作中微服务用户认证授权这一块又是怎么做的?用什么技术实现的?望老师解答,谢谢老师。
1回答
-
同学你好:
非常感谢你这里提供的权限认证服务设计思想。你这里的权限验证基本就是企业级开发过程中使用的标准思想。但是在实现上有很多种方式,并不拘泥于 OAuth2。
我们如果要做认证服务,肯定是在服务请求的最前端去处理,也就是在网关处确定请求是否带有正确的权限,如果是,则通过继续向下寻找对应的微服务;如果不是,则直接返回错误。
权限认证我们使用的方式比较多,OAuth2 和自己实现的都有。不管哪种实现方式,思想还是核心。
欢迎来 QQ 群随时交流、讨论,也非常感谢同学的支持!
412019-11-19
相似问题