认证流程
授权流程
分布式下认证
统一认证授权
统一认证配置
客户端配置,tokenserver端配置,令牌端安全约束
springcloud微服务体系(一)— 基于security和jwt实现认证及鉴权服务_BecauseSy的博客-CSDN博客_springcloud security
认证 会话 授权
认证 session 认证 token认证 区别:sessions需要服务器端保存 token不需要
授权包括 主题 资源(功能,资源) 权限 5-6张表数据模型
RBAC 基于角色(总经理)访问 基于资源(拥有查询工资权限)访问 (推荐资源)
基于session 认证 sevlet session httpselvertsession
认证springmvc spring context springservlet url mapping 配置 mvc配置 usernamepass 是否相同
会话:httpsession.setattribute getattribute session.validate
授权:extralist<权限> intereceptor prehandle requesturl.contain()
springsecurity:
@enablewebsecurity
1.查询用户信息
2.密码编辑器
3.安全拦截机制 http.requestauth.请求拦截 登录成功和失败 loginout(已实现)
以过滤器为和核心 两个过滤器
加密策略
Bcrypt 密码+盐 check()校验
MD5
权限决策
投票机制
1个赞成
半数赞成
全部赞成
通过验证之后 用户的所有信息都在 securityHolder.getcontext.getauth= auth
login out Handle (登出以后做事)
权限 访问地址 需要什么权限(matches.hasAuthority,hasrole) 访问方法需要什么权限
userdetailService 查询权限()permisson 数组(权限code)
校验从上到下,细节放上面。
access 方法(可以用表达式)
基于方法授权
@PreAuthorize("hasAuthority("p2")")
分布式系统:
统一认证服务
密码账号 手机 短信 二维码 人脸
session 分布式认证会有单点的问题。
token不需要存储,会携带多余的数据。
网关先对客户端的权限(商品,订单,用户service)
oauth2.0
微信 QQ 三方登录百度
百度可以从微信获取用户的信息 算登录成功 (必须通过用户本人确认)
认证服务 资源服务
spring security jwt
spring cloud oauth2
@enableAuthorizationServer 三个方法
1认证客户端 配置客户端详情服务 申请token
2管理令牌服务,令牌访问端点(url) token怎么生成
3安全约束 那些接口能访问那些端点 约束访问 (授权码,密码模式,客户端,单页面)
资源服务配置
jwt解决远程校验 资源和授权相同的密钥
微服务:
黑马springsecurity
SpringSecurity 整合SpringBoot结合jwt与rsa实现分布式认证授权 - if年少有为 - 博客园