AAA - ActFramework的安全框架 I - 概念及简介

1. AAA 以及相关概念

1.1 Authentication (AE) - 认证

确认与系统交互的用户或者进程身份的过程

1.2 Authorisation (AO) - 授权

当 Principal (身份主体) 访问系统资源时依据主体授权允许或者拒绝其访问的过程

1.3 Accounting (AC) - 记账

记录 Principal 对系统资源的访问操作

1.4 Principal - 身份主体

系统中对交互对象的唯一识别. 交互对象可以是一个用户, 也可以是一个外部进程.

1.5 Permission - 资源权限

对确定资源的访问资格

1.5.1 Dynamic Permission - 动态资源权限

osgl-aaa提出的概念, 如果某种资源权限被设置为动态, 表示在授权过程中非但需要对用户是否拥有该资源权限进行检查, 还必须检查用户和资源之间是否关联. 比如, 用户 A 不能修改用户 B 拥有的数据, 即使 A 拥有相应的资源权限

1.6 Role - 角色

Role 是一组定义好的 Permission 的集合. Role 可以用来方便地就相关联的权限组合对 Principal 进行授权或者取消授权

1.7 Privilege - 特权

和 Permission 不同, Privilege 并不针对特定的资源. Privilege 依赖于级别 (一个Integer) 来判断是否有权限访问某些资源. 举个具体的例子, 假设某个资源要求访问级别是5, 当前 Principal 的访问级别是 6, 则应该授权访问. 比较一下 Permission 的授权过程, 假设访问某个资源要去的 Permission 是 "create-order", 而当前 Principal 没有这个 Permission, 则拒绝访问.

另一个不同之处是, 一个 Principal 可以有多个 Permission (直接或者间接通过 Role 获得), 但一个 Principal 最多有一个 Privilege

1.8 概念之间的关系

Principal 可以有

  • 零到多个 Roles
  • 零到多个 Permissions
  • 零个或者一个 Privilege

Role 可以有

  • 零到多个 Permissions

2. osgl-aaa 和 act-aaa-plugin

osgl-aaa 是一个通用的Java AAA框架和工具集. 实现了上面所述的概念和逻辑

act-aaa-plugin插件将 osgl-aaa 框架和ActFramework集成起来, 负责配置管理, 服务发现, 并实现了在 osgl-aaa 中定义的一些接口, 以及一些工具类.

在以后的 AAA 系列博客中我们将一起从头到尾实现一个完整的带用户注册, 登录, 授权功能演示的小型系统.

参考

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏程序员笔记

celery 定时任务实现

2284
来自专栏LanceToBigData

JavaWeb(二)会话管理之细说cookie与session

前言   前面花了几篇博客介绍了Servlet,讲的非常的详细。这一篇给大家介绍一下cookie和session。 一、会话概述 1.1、什么是会话?   会话...

2037
来自专栏阿杜的世界

Java Web技术经验总结(二)

703
来自专栏玄魂工作室

Python黑帽编程 4.1 Sniffer(嗅探器)之数据捕获(上)

Python黑帽编程 4.1 Sniffer(嗅探器)之数据捕获(上) 网络嗅探,是监听流经本机网卡数据包的一种技术,嗅探器就是利用这种技术进行数据捕获和分析的...

4237
来自专栏杨建荣的学习笔记

Oracle中的PGA监控报警分析二(r12笔记第87天)

今天又收到了一条报警的信息,看起来很常规,但是后面的故事如果你做了分析就会发现其实本身并不平常,我觉得我得出手了。之前的分析可以参考 Oracle中的PGA监控...

3384
来自专栏运维一切

SWOOLE之代码热更新实现_持续的思考 转

本人参与的swoole项目有幸被很多朋友使用,我也大力向周边的一些朋友推荐,随着swoole的版本迭代更新,已经足够稳定了,在阿里,腾讯,yy等各大公司都有着使...

711
来自专栏菩提树下的杨过

redis 学习笔记(4)-HA高可用方案Sentinel配置

上一节中介绍了master-slave模式,在最小配置:master、slave各一个节点的情况下,不管是master还是slave down掉一个,“完整的”...

1987
来自专栏SDNLAB

基于Opendaylight的packet-in flooding攻击的检测与防护

作者简介:智智方,西安电子科技大学硕士研究生,主要研究方向为SDN与网络安全,邮箱:675520574@qq.com

1111
来自专栏智能大石头

NewLife.Net——构建可靠的网络服务

老规矩,先上源码:https://github.com/nnhy/NewLife.Net.Tests

950
来自专栏星回的实验室

golang建立MongoDB连接池

最近用go语言重构之前用python草草搭建的推荐引擎,语言杂食确实很难受,不过不得不说,在饱受弱类型脚本语言的摧残之后重新用回强类型语言,轻微强迫症的我居然还...

1044

扫码关注云+社区