云敏自研基础模块之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的头像EBCloud
上一篇 2024年4月2日 下午3:28
下一篇 2024年4月2日 下午3:28

相关推荐

  • 游戏服务器被攻击的方式有哪些?

    游戏服务器被攻击,这是一种令人头痛的问题。游戏服务器作为游戏运行的核心,其安全性直接影响着游戏的正常运行和用户体验。那么,究竟有哪些方式可以对游戏服务器进行攻击呢?什么是游戏服务器…

    行业资讯 2024年4月14日
    0
  • ip检测被墙,ip被墙了什么意思

    3.本地网络配置问题 在某些情况下,您可以在本地网络设置中使用代理服务器或VPN 来访问被阻止的网站。但是,如果您不再需要使用代理服务器或VPN,您可能会忘记删除这些设置,并且您的…

    行业资讯 2024年5月6日
    0
  • 上海建筑网站大全,上海建站方案

    4. 个性化、定制化服务 由于每个公司都有自己的品牌形象和需求,我们提供个性化和定制化的服务。我们与您充分沟通,了解您的需求和要求,并根据您的品牌定位和风格制定定制的网站设计方案。…

    行业资讯 2024年4月8日
    0
  • dns被污染了怎么清理,dns污染违法吗

    您是否遇到过无法访问网络的情况?或者网页打开速度缓慢或出现页面跳转错误?这些问题很可能是由DNS 污染引起的。那么什么是DNS污染呢?它是如何影响互联网的正常运行的呢?如果您想了解…

    行业资讯 2024年5月8日
    0

发表回复

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