浅谈访问控制(1)--概述

本文是”浅淡访问控制”系列博文的第一篇, 从访问控制的基本概念, 访问控制模型, 访问控制实现机制等方面对访问控制进行了概述, 力求使读者从宏观上对访问控制有一个初步的了解, 后续几篇博文会针对具体的访问控制技术展开介绍.

目录

先立个flag, 后面有时间我会尽快完成. 敬请期待!

概述

在百度学术中搜索”访问控制”关键字, 可以找到很多关于访问控制的文章, 其中的一篇综述性文章 云计算访问控制技术研究综述 已经详细地讲述了传统访问控制以及云计算访问控制的方方面面, 在这里就不大段copy文中的内容了, 只做一些概念上的普及.

基本概念

  • 定义: 访问控制是指允许或禁止某人使用某项资源的能力.
  • 目的: 访问控制的目的是为了保护企业在信息系统中存储和处理的信息的安全.
  • 分类: 在信息安全领域中, 访问控制包含了认证, 授权以及审计.

访问控制模型

访问控制是指主体依据某些控制策略或权限对客体本身或是其资源进行的不同授权访问。访问控制包括三个要素,即:主体、客体和控制策略。

常见访问控制实现机制

  • 基于访问控制表
  • 基于角色
  • 基于任务
  • 基于属性
  • ……

安全框架中的访问控制

Shiro

Apache Shiro框架采用基于资源的方式 (Resource Based Access Control, The New RBAC) 进行用户的访问控制.

Spring Security

Spring Security是Spring的子项目, 旨在对Spring项目进行安全管理. Spring Security必须在Spring环境下运行, 支持多种基于投票的访问控制策略.

主流云计算平台的访问控制

大概考察了几家云计算平台服务商的访问控制系统, 大致分为以下4类.

Amazon Web Services(AWS) IAM

AWS最早实现了云计算领域的基于资源的访问控制, 并定义了一套完备的访问控制语法, 通过多个子句的组合, 能够灵活地声明策略, 以及表达用户与策略之间的关系. IAM是最为主流的云计算访问控制系统, 国内几家云计算厂商(A家, T家, 猪厂)的访问控制系统全部参考IAM的实现方式.

Google Cloud Platform IAM

Google Cloud Platform IAM也实现了一套访问控制语法, 然而与AWS IAM不同, Google IAM的实现方式有些类似于Shiro, 通过定义用户(member)与角色(role)的绑定关系(binding)实现用户的访问控制.

Microsoft Azure Active Directory(AD)

Azure AD采用了传统的基于角色的访问控制, 类似于Shiro中的隐式角色. AD提供了一大堆的官方角色, 每个角色与权限是静态绑定的. AD还支持用户创建自定义角色, 并通过AssignableScopes分配角色生效的范围.

七牛云 / 又拍云等其他云平台

该类云平台服务商的访问控制并未抽取成公共服务, 而是嵌入到各个服务中去, 并且仍然停留在粗粒度, 静态的访问控制阶段.

参考资料