2020-08-18 19:10发布
1.了解基于资源的权限管理方式
2. 掌握权限数据模型
3. 掌握基于url的权限管理(不使用Shiro权限框架的情况下实现权限管理)
用户认证流程
关键对象
subject:主体,理解为用户,可能是程序,都要去访问系统的资源,系统需要对subject进行身份认证。
principal:身份信息,通常是唯一的,一个主体可以有多个身份信息,但是只能有一个主身份信息(primary principal)。
credential:凭证信息,可以是密码、证书、指纹等。
总结:主体在进行身份认证时需要提供身份信息和凭证信息。
用户授权
用户授权概念
用户授权,简单理解为访问控制,在用户认证通过后,系统对用户访问资源进行控制,当用户具有资源的访问权限方可访问。
授权流程
其中橙色为授权流程
授权的过程可以理解为 who 对 what(which) 进行how操作
who:主体,即subject,subject在认证通过后,系统进行访问控制。
what(which):资源(Resource) ,subject必须具备资源访问权限才可以访问该资源。资源包括很多方面比如:用户列表页面、商品修改菜单、商品id为001的商品信息。
资源分为资源类型和资源实例:
例如系统的用户信息就是资源类型,相当于Java类。
系统中id为001的用户就是资源实例,相当于new的Java对象。
how:权限/许可(permission),针对资源的权限或许可,subject必须具有permission方可访问资源,如何访问/操作需要定义permission,权限比如:用户添加、用户添加、商品删除。
权限模型
主体(账号、密码)
资源(资源名称,访问地址)
权限(权限名称、资源id)
角色(角色名称)
角色和权限关系(角色id、权限id)
如下图:
通常企业开发中将资源和权限合并为一张权限表,如下:
资源(资源名称、访问地址)
合并为:
权限(权限名称、资源名称、资源访问地址)
上图被称为权限管理的通用模型,不过在企业开发中根据系统自身特点还会对上图进行修改,但是用户、角色、权限、用户角色关系、角色权限关系是必不可少的。
分配权限
用户需要分配相应的权限才可以访问相应的资源。权限是对资源的操作许可。
通常给用户分配资源权限需要将权限信息持久化,比如存储在关系数据库中。
把用户信息、权限管理、用户分配的权限信息写入到数据库(权限数据模型)。
最多设置5个标签!
1.了解基于资源的权限管理方式
2. 掌握权限数据模型
3. 掌握基于url的权限管理(不使用Shiro权限框架的情况下实现权限管理)
用户认证流程
关键对象
subject:主体,理解为用户,可能是程序,都要去访问系统的资源,系统需要对subject进行身份认证。
principal:身份信息,通常是唯一的,一个主体可以有多个身份信息,但是只能有一个主身份信息(primary principal)。
credential:凭证信息,可以是密码、证书、指纹等。
总结:主体在进行身份认证时需要提供身份信息和凭证信息。
用户授权
用户授权概念
用户授权,简单理解为访问控制,在用户认证通过后,系统对用户访问资源进行控制,当用户具有资源的访问权限方可访问。
授权流程
其中橙色为授权流程
关键对象
授权的过程可以理解为 who 对 what(which) 进行how操作
who:主体,即subject,subject在认证通过后,系统进行访问控制。
what(which):资源(Resource) ,subject必须具备资源访问权限才可以访问该资源。资源包括很多方面比如:用户列表页面、商品修改菜单、商品id为001的商品信息。
资源分为资源类型和资源实例:
例如系统的用户信息就是资源类型,相当于Java类。
系统中id为001的用户就是资源实例,相当于new的Java对象。
how:权限/许可(permission),针对资源的权限或许可,subject必须具有permission方可访问资源,如何访问/操作需要定义permission,权限比如:用户添加、用户添加、商品删除。
权限模型
主体(账号、密码)
资源(资源名称,访问地址)
权限(权限名称、资源id)
角色(角色名称)
角色和权限关系(角色id、权限id)
如下图:
通常企业开发中将资源和权限合并为一张权限表,如下:
资源(资源名称、访问地址)
权限(权限名称、资源id)
合并为:
权限(权限名称、资源名称、资源访问地址)
上图被称为权限管理的通用模型,不过在企业开发中根据系统自身特点还会对上图进行修改,但是用户、角色、权限、用户角色关系、角色权限关系是必不可少的。
分配权限
用户需要分配相应的权限才可以访问相应的资源。权限是对资源的操作许可。
通常给用户分配资源权限需要将权限信息持久化,比如存储在关系数据库中。
把用户信息、权限管理、用户分配的权限信息写入到数据库(权限数据模型)。
一周热门 更多>