RBAC&&Shiro

本文介绍了基于角色的访问控制(RBAC)模型,特别是RBAC96及其四个子模型,强调了角色在权限管理中的重要性。接着,文章详细探讨了Apache Shiro的安全框架,包括其解决传统访问控制问题的原因、组成、架构及优势。Shiro的环境搭建步骤和认证流程被详细阐述,并讨论了不同认证策略如AtLeastOneSuccessfulStrategy、FirstSuccessfulStrategy和AllSucessfulStrategy的使用场景。
摘要由CSDN通过智能技术生成

RBAC

1、 什么是 RBAC

  • RBAC(Role-Based Access Control ) 基于角色的访问控制。
  • RBAC 认为权限的过程可以抽象概括为:
    判断【Who 是否可以对 What 进行 How 的访问操作(Operator) 】
    Who: 权限的拥用者或主体
    What: 权限针对的对象或资源
    How: 具体的权限
    Operator: 操作。 表明对 What 的 How 操作。 也就Privilege+Resource
    Role: 角色, 一定数量的权限的集合。权限分配的单位与载体,目的是隔离User与Privilege的逻辑关系

2、 RBAC96 模型

1 RBAC 模型

  • RBAC96 模型家族,其中包括了 RBAC0~RBAC3 四个概念模型。
    在这里插入图片描述

2 RBAC0

  • 定义了能构成一个 RBAC 控制系统的最小的元素集合
  • 在 RBAC 之中,包含用户 users(USERS)、 角色 roles(ROLES)、 目标 objects(OBS)、 操作operations(OPS)、 许可权 permissions(PRMS)五个基本数据元素, 权限被赋予角色,而不是用户, 当一个角色被指定给一个用户时, 此用户就拥有了该角色所包含的权限。 会话 sessions是用户与激活的角色集合之间的映射。 RBAC0 与传统访问控制的差别在于增加一层间接性
    带来了灵活性, RBAC1、 RBAC2、 RBAC3 都是先后在 RBAC0 上的扩展。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    UA(User Assignment):用户角色分配
    PA(Permission Assignment):角色许可分配

3 RBAC1

  • 引入角色间的继承关系
  • 角色间的继承关系可分为一般继承关系和受限继承关系。 一般继承关系仅要求角色继承关系是一个绝对偏序关系, 允许角色间的多继承。 而受限继承关系则进一步要求角色继承关系是一个树结构
    在这里插入图片描述

4 RBAC2

  • 该模型中添加了责任分离关系
  • RBAC2 的约束规定了权限被赋予角色时,或角色被赋予用户时,以及当用户在某一时刻激活一个角色时所应遵循的强制性规则。 责任分离包括静态责任分离和动态责任分离。 约束与用户-角色-权限关系一起决定了 RBAC2 模型中用户的访问许可
    在这里插入图片描述
    在这里插入图片描述

Shiro

1、Shiro 的简介

A、 为什么学习 Shiro

目前使用遇到的问题?

  • [1]使用 RBAC 进行角色访问控制的时候, 代码书写起来相对比较麻烦
  • [2]目前学习的写的操作代码整体不太安全

B、 解决的方案

  • [1]Spring securing 安全框架 缺点: 基于 Spring 之上的, 局限性比较大
  • [2]shiro javaEE javaSE 分布式项目

C、 什么是 shiro

  • Apache Shiro 是一个强大而灵活的开源安全框架, 它干净利落地处理身份认证, 授权, 企业会话管理和加密

  • Shiro 的官网: http://shiro.apache.org/

D、 Shiro 中的体系的组成

在这里插入图片描述
Authentication: 身份的验证-就是我们平时做的登录

Authorization: 授权: 赋予角色不同的 菜单功能

Session Management: 管理登录用户的信息

Cryptography: 加密技术 MD5 加密算法等。

Web Support: shiro 对 web 项目进行的支持

Caching: 缓存 可以安全快速的操作

Concurrency: 支持并发多线程的处理

Testing: 测试

Run As: 可以实现在一个用户允许的前提下, 使用另一个用户访问

Remember Me: 记住我Authentication:身份的验证-就是我们平时做的登录

E、 shiro 的架构

在这里插入图片描述

  • Subject(org.apache.shiro.subject.Subject)
    当前与软件进行交互的实体( 用户, 第三方服务, cron job, 等等) 的安全特定“视图”当前与软件进行交互的实体( 用户, 第三方服务, cron job, 等等) 的安全特定“视图”

  • SecurityManager
    SecurityManager 是 Shiro 架构的心脏。 它基本上是一个“保护伞”对象, 协调其管理的组件 以 确 保 它 们 能 够 一 起 顺 利 的 工 作 类 似 于SpringMVC 中的入口 servlet

  • Realms: 域
    Realms 在 Shiro 和你的应用程序的安全数据之间担当“桥梁”或“连接器”。 当它实际上与安全相关的数据如用来执行身份验证( 登录) 及授权(访问控制) 的用户帐户交互时, Shiro 从一个或多个为应用程序配置的 Realm中寻找许多这样的东西

2、Shiro 的环境搭建

使用 shiro 实现登陆的操作

第一步 导包

Spring RBAC Shiro 视频教程是一种教学视频,主要介绍了在Spring框架中如何使用RBAC(基于角色的访问控制)和Shiro(一个强大而灵活的Java安全框架)来实现应用程序的权限管理和安全控制。以下是对该视频教程的回答: 这个视频教程是为那些想要学习如何在Spring框架中实现角色基础的访问控制和安全控制的人而制作的。RBAC是一种常见的权限管理模型,它通过将用户划分为不同的角色,并将访问权限分配给每个角色来实现安全控制。在这个视频教程中,你将学习如何在Spring框架中实现这种权限模型。 Shiro是一个功能强大且易于使用的Java安全框架,它提供了身份验证、授权、加密等安全功能。在这个视频教程中,你将了解如何与Spring框架集成Shiro,并使用Shiro提供的功能来实现RBAC模型中的权限管理和安全控制。 这个视频教程将从基础开始介绍RBACShiro的概念和原理,然后通过实际的示例演示如何在Spring项目中配置和使用它们。你将学习如何定义用户、角色和权限,并将它们组织起来以实现灵活的安全控制。你还将学习如何在应用程序中使用Shiro提供的注解、过滤器和其他功能来实现身份验证和授权。 通过学习这个视频教程,你将能够在你的Spring项目中实现基于角色的访问控制和安全控制,保护你的应用程序免受未经授权的访问和潜在的安全威胁。这个视频教程提供了清晰的解释和实用的示例,可以帮助你快速上手并理解如何使用Spring RBACShiro。无论你是初学者还是有一定经验的开发人员,这个视频教程都将是提升你的后端开发技能的有价值的资源。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值