云敏自研基础模块之CBAC引擎介绍

序言

CBAC是“基于上下文的访问控制”(Context based Access Control)的英文首字母缩写,它是指云敏团队自研的一套以配置即代码为基础的高性能、可审计、可编程的分布式权限访问控制引擎,用于根据权限设置控制用户的操作,提升系统的安全性。

云敏自研基础模块之CBAC引擎介绍

一、访问控制概述

云敏自研基础模块之CBAC引擎介绍

访问控制是物理安全和信息安全领域的重要概念,它是指有选择性地限制对某个位置或资源的访问。而这里所说的“访问”可以包括消耗、进入或者使用。对某个资源的访问的许可被称为鉴权。

有效地进行访问控制,能够规避越权操作为系统安全性和使用体验带来的风险。诸如访问控制列表(ACL)、基于角色的访问控制(RBAC)都是我们常见的访问控制方式。

云敏自研基础模块之CBAC引擎介绍
云敏自研基础模块之CBAC引擎介绍

二、为什么要自研CBAC引擎?

云敏自研基础模块之CBAC引擎介绍

诚然,市面上有很多现成的访问控制系统,但这些系统往往都会有些功能方面的限制条件。比如上面提到的RBAC这种访问控制策略,最适合实现“只有甲方项目经理能够修改流水线”。但是如果我们期望使用访问控制规则实现“只有周五下午六点到七点之间可以启动部署流水线”,那么RBAC就无能为力了。因此,我们有必要回归到软件系统访问控制的本质上,实现一套通用的访问控制引擎,RBAC其实就是这个引擎中所配置的策略之一。

云敏自研基础模块之CBAC引擎介绍
云敏自研基础模块之CBAC引擎介绍

三、CBAC是如何被设计出来的?

云敏自研基础模块之CBAC引擎介绍

在软件系统的访问控制中,我们往往能够使用这样的句子来描述:

当满足 <某种关于用户、服务器的约束>,允许 <某种访问> 进行。

比如:

  • 当用户年龄满18岁,允许进入游戏

  • 当用户使用谷歌浏览器,允许获取短信验证码

  • 当服务器内存占用超过50%,允许执行内存回收

  • 当访问的服务器位于北京,允许购买华北机房的服务器

  • 当用户角色是系统管理员,允许修改系统设置

这些描述的背后,暗含了三个重要的要素:

  1. 上下文:当前访问环境的即时状态信息,既包括客户端上下文(当前用户、角色、浏览器等),也包括服务端的上下文(当前服务器的硬件基础设施、操作系统、软件等)

  2. 访问控制策略:依据上下文和约束条件进行鉴权结果计算的算法

  3. 访问:每一种访问都是包含了所使用的控制策略的约束条件输入

因此,我们有了一个公式:

鉴权结果 = 控制策略(上下文,访问约束条件)

根据这个公式,我们便得到了这个模型:

云敏自研基础模块之CBAC引擎介绍
云敏自研基础模块之CBAC引擎介绍
云敏自研基础模块之CBAC引擎介绍

四、实现可配置性和可编程性

云敏自研基础模块之CBAC引擎介绍

可配置性和可编程性是CBAC的核心基础,只有这样,CBAC引擎才能根据不同的需求配置不同的访问控制策略。为此,我们的CBAC引擎构建于云敏流水线的另一个基础模块“配置即服务”(后序文章会为陆续介绍),同时技术选型采用Node.js作为开发语言。

我们先将js脚本嵌入到了YAML配置文件中,以rbac策略的配置为例:

云敏自研基础模块之CBAC引擎介绍

而要让这段字符串可以执行,我们使用了Data URL机制,直接将字符串转变为es模块。

云敏自研基础模块之CBAC引擎介绍

最后,将整个鉴权机制封装成服务,我们便得到了一套高性能、可编程、高可配置的访问控制引擎!

云敏自研基础模块之CBAC引擎介绍
云敏自研基础模块之CBAC引擎介绍

总结

CBAC引擎为云敏流水线带来了巨大的便利,实现了快速的权限配置和鉴权机制,大大加快了开发进度,如果您对此感兴趣,或者想了解云敏流水线的最新进展,欢迎与我们取得联系。

云敏自研基础模块之CBAC引擎介绍

文章作者:李   淳

排版设计:王蔚棋

手绘插画:岳   媛

原创文章,作者:EBCloud,如若转载,请注明出处:https://www.sudun.com/ask/33155.html

(0)
EBCloud's avatarEBCloud
上一篇 2024年4月2日 下午3:28
下一篇 2024年4月2日 下午3:28

相关推荐

  • cma官网船公司,cma cgm船公司

    近日,互联网行业再次收到震惊消息,著名运输公司CMA官方网站遭到攻击。此次攻击不仅给公司造成重大财务损失,也引发了对整个行业安全性的质疑。谁发起了对达飞轮船公司的攻击?攻击方式有哪…

    行业资讯 2024年5月16日
    0
  • seo搜索优化是什么?

    SEO搜索优化是什么?想必这个问题曾经困扰过许多人。在如今这个信息爆炸的时代,如何让自己的网站或内容在众多搜索结果中脱颖而出,是每个网站主或内容创作者都需要面对的挑战。而SEO搜索…

    行业资讯 2024年4月17日
    0
  • 单片机电路——IPC网络

      单片机电路——IPC网络 补充知识 l 数据传输:一个进程需要将它的数据发送给另一个进程,发送的数据量在一个字节到几兆字节之间。 l 共享数据:多个进程想要操作共享数…

    2024年5月25日
    0
  • S5代理服务器有什么作用?

    S5代理服务器,你听说过吗?它拥有着令人惊叹的作用,让网络互联网服务器行业为之动容。那么,它究竟是什么呢?它的工作原理又是怎样的呢?或许你会想知道它有哪些优势和特点,又适用于哪些场…

    行业资讯 2024年4月16日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注