shrio 学习笔记

用户认证
用户认证是指用户访问系统,系统要验证用户的合法性。 最常用的验证方式:1,用户名密码 2. 基于证书验证 等,用户通过了合法性验证后,才可以访问系统资源。
用户认证流程

用户发起一个对资源访问的请求,该资源如果允许被匿名访问,则继续访问。如果该资源不允许被匿名访问,输入用户名和密码进行认证,如果认证通过,继续访问资源。 如果认证失败,继续输入用户名和密码进行认证。

关键对象:
1. subject: 主体,可以理解为用户,可能是程序。系统需要对subject进行身份认证。
2. principal: 身份信息,通常是唯一的。一个主体可以包含多个身份信息。但是有一个主身份信息(primary principal)
3. credential: 凭证信息。可以是密码,证书,指纹。
主体在进行身份认证时,需要提供身份信息和凭证信息。

用户授权
用户授权其实就是对用户访问的资源进行控制,用户是否拥有权限访问某个资源。
用户授权流程
用户通过认证后,访问资源,需要先判断是否拥有访问权限,如果有,继续访问,没有,拒绝。 这里有个对用户授权的流程。

分配权限: 用户需要被分配相应的权限才可以访问相应的资源。权限是对资源操作的需可以。
通常给用户分配资源权限,需要将权限信息持久化,比如存储到关系型数据库中。
关键对象:
授权的过程: who 对 what 进行how 操作
1. who: 主体即subject
2. what: 资源(resource), subject 必须具备资源的访问权限才可以访问该资源。 比如 系统用户列表页面, 商品修改菜单,商品ID 为001 的商品信息
3. 资源可以分为资源类型和资源实例。 系统中的用户信息为用户类型, 系统中id为001 的用户,为用户实例。
3. how: 权限/许可(permission), 是针对资源来说的, 如果用户具用权限访问资源,如果访问或者操作需要定义permission 比如 用户添加,用户修改

权限模型

主体(用户名,密码)
资源(资源名称,访问地址)
权限(权限名称,资源ID)
角色(角色名称)
角色和权限关系
主体和权限的关系
通常企业开发中会将资源和权限表合为一张表。 主体和角色表也可以合并。

粗粒度和细粒度权限管理
  1. 粗粒度 指 针对资源类型的权限管理
  2. 细粒度: 指针对资源实例的权限管理,到数据级别,比如用户只允许导出自己创建的订单信息。
    粗粒度的权限管理可以在架构层面处理,细粒度的权限管理一般建议放到service 层完成控制。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值