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

相关文章

扫码关注云+社区