SpringCloud工作笔记038---spring cloud微服务权限认证_终于确定下来大体的思想了

JAVA技术交流QQ群:170933152

智慧城市:

现在权限这块,这样做:

微服务架构:

网关微服务:sc-gateway

认证微服务:sc-auth

权限微服务:sc-permission

 

思想:

网关放过http://localhost:80/login、网关的过滤器不去拦截http://localhost:80/login,然后,http://localhost:80/login会被转发

sc-auth这个微服务,进行验证用户名密码,验证成功颁发token,token会包含一些用户信息,比如角色等等,

然后,拿到token,就算登录成功,登录成功,返回一些比如登录的用户的信息,跳转到主页

 

然后其他人再访问其他的url的时候,每次都会带上token,这个token每次带上,是对ajax大体封装了一下,每次都会带着token,

然后,每次在走这个url之前,会先在网关中,取出token,然后通过fegin,交给一个sc-permission,一个鉴权服务,来判断,

这个用户拥有的角色,有没有这个权限,有就放行,没有就提示,大体一说,后边会整理代码放上
--------------------------------------------------------------------------------------------

微服务的两套认证:

1.身份认证在zuul加filter拦截获取请求user token,校验user token合法性

2.服务认证为内部服务之间通过server token来校验服务调用的合法性

 

整个流程的大概逻辑:

1.启动认证服务(auth-server),此时会生成user的公钥私钥和服务server的公钥私钥

2.启动其他服务,启动后请求认证服务(auth-server)拿到对应的2套公钥,用于对2种token做解密认证用

 

整个调用请求通过zuul filter时校验token,zuul会通过启动时拿到的公钥对token认证,通过校验后可以在调用权限管理服务(permission-server)查询当前用户是否有访问此url的权限,在访问permission-server时先请求auth-server获取zuul 的server token,带上server token和user token去请求permission-server,在permission-server里的拦截器会对user token和server token做校验(也是启动的时候拿到那2个公钥),调用其他服务都是这个逻辑,整体大概就是这种调用

 

用户登录校验生成token的流程,认证服务私钥加密user token和server token

SpringCloud工作笔记038---spring cloud微服务权限认证_终于确定下来大体的思想了_第1张图片

 

服务启动获取pub key

 

SpringCloud工作笔记038---spring cloud微服务权限认证_终于确定下来大体的思想了_第2张图片

server token的校验通过server token拿到server信息

整体大概布局

SpringCloud工作笔记038---spring cloud微服务权限认证_终于确定下来大体的思想了_第3张图片

你可能感兴趣的:(security,Spring,Cloud)