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 条评论
登录 后参与评论

相关文章

来自专栏拂晓风起

用SonBuddy搭建无线局域网,共享上网。(SONBuddy常见问题,无线组网,共享,上网,笔记本)

1014
来自专栏林德熙的博客

VisualStudio 合并代码文件

如果有相同的类,一般可以使用 partial 让他写在多个文件,那么如何把多个文件合并?请看 MainWindow.xaml 和 MainWindow.xaml...

822
来自专栏编程软文

app支付宝快速入门

1774
来自专栏偏前端工程师的驿站

CentOS6.5菜鸟之旅:安装Realtek无线网卡驱动

一、前言                                       CentOS6.5不像CentOS7和Unbuntu那样自动安装好了无线网...

2717
来自专栏Youngxj

php在线PIng接口源码

2933
来自专栏信安之路

如何优雅的绕过杀软获取系统权限

特征库扫描法:检查文件中是否存在与常见病毒相同的代码。如果匹配,则说明存在病毒。由于该方法较慢,因此现在一般使用通配符扫描法进行代替。

810
来自专栏GuZhenYin

[干货来袭]MSSQL Server on Linux预览版安装教程(先帮大家踩坑)

前言 昨天晚上微软爸爸开了全国开发者大会,会上的内容,我就不多说了,园子里面很多.. 我们唐总裁在今年曾今透漏过SQL Server love Linux,果不...

2067
来自专栏运维前线

管理和监控MySQL和MongoDB性能的开源平台Percona

Percona监控和管理概述 Percona监控和管理(PMM)是一个用于管理和监控MySQL和MongoDB性能的开源平台。 它由Percona与托管数据库...

4646
来自专栏BeJavaGod

app微信支付(一) - 微信支付基本业务流程解析

想必微信支付是现在很多朋友离不开的一个功能,不论是扫描支付还是公众号支付或者app端支付,基本的思路都是一样的,之前做过支付宝支付以及中国移动支付接口,这几天花...

3424
来自专栏黑白安全

渗透指定站点笔记

首先介绍下什么样站点可以入侵:我认为必须是动态的网站 如ASP、PHP、 JSP等代码编写的站点 如果是静态的(.htm或html),一般是不会成功的。

1904

扫码关注云+社区