《阿里云产品四月刊》—Apache RocketMQ ACL 2.0 全新升级(4)

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
简介: 阿里云瑶池数据库云原生化和一体化产品能力升级,多款产品更新迭代

本文来源于阿里云社区电子书《阿里云产品四月刊》


《阿里云产品四月刊》—Apache RocketMQ ACL 2.0 全新升级(3)https://developer.aliyun.com/article/1554225


服务端流程:

 

  1. 服务端在收到请求后,首先检查是否开启授权,若未开启,则不校验直接通过;若  已开启了,则进入下一步。
  2. 服务端对请求中和授权相关的参数进行解析和组装,这些数据包括用户信息、访问  的资源、执行的操作,以及请求的环境等。
  3. 通过用户名在本地数据存储中查询用户相关信息,若用户不存在,则返回错误;若  用户存在,则进入下一步。
  4. 判断当前用户是否是超级用户,若超级用户,则直接通过请求,无需做授权检查,  若普通用户,则进入下一步进行详细的授权检查。
  5. 根据用户名获取相关的授权策略列表,并对本次请求的资源、操作,以及环境进行  匹配,同时按照优先级进行排序。
  6. 根据优先级最高的授权策略做出决策,若授权策略允许该操作,则返回授权成功,  若拒绝该操作,则返回无权限错误。

 

授权参数的解析

 

在 ACL 2.0 中,更具操作类型和请求频率,对授权相关参数(包括资源、操作等)的解析进行了优化。

 

  1. 硬编码方式解析

 

 

image.png

 

对于消息发送和消费这类接口,参数相对较为复杂,且请求频次也相对较高。考虑到解  析的便捷性和性能上的要求,采用硬编码的方式进行解析。

 

  1. 注解方式解析

image.png

 

对于大量的管控接口,采用硬编码的方式工作量巨大,且这些接口调用频次较低,对性  能要求不高,所以采用注解的方式进行解析,提高编码效率。

 

权限策略优先级

 

在权限策略匹配方面,由于支持了模糊的资源匹配模式,可能出现同一个资源对应多个  权限策略。因此,需要一套优先级的机制来确定最终使用哪一套权限策略。

image.png

 

假设配置了以下授权策略,按照以上优先级资源的匹配情况如下:

image.png

 

 

认证授权策略

 

出于安全和性能的权衡和考虑,RocketMQ ACL 2.0 为认证和授权提供了两种策略:无状态认证授权策略(Stateless)和有状态认证授权策略(Stateful)。

image.png

 

无状态认证授权策略(Stateless): 在这种策略下,每个请求都会经过独立的认证和授权过程,不依赖于任何先前的会话和状态信息。这种严格的策略可以保证更高级别的安  全保证。对权限进行变更,可以更加实时的反应在随后的请求中,无需任何等待。

 

然而,这种策略在高吞吐的场景中可能会导致显著的性能负担,如增加系统  CPU  的使用率以及请求的耗时。

 

有状态认证授权策略(Stateful): 在这种策略下,同一个客户端连接,相同资源以及相同的操作下,第一次请求会经过完整的认证和授权,后续请求则不再进行重复认证和   授权。这种方法可以有效地降低性能小号,减少请求的耗时,特别适合吞吐量较高的场   景。但是,这种策略可能引入了安全上的妥协,对权限的变更也无法做到实时的生效。

 

在这两者策略的选择上,需要权衡系统的安全性要求和性能需求。如果系统对安全性的    要求很高,并且可以容忍一定的性能损耗,那么无状态认证授权策略可能是更好的选择。   相反,如果系统需要处理大量的并发请求,且可以在一定程度上放宽安全要求,那么有    状态认证授权策略可能更合适。在实际部署时,还应该结合具体的业务场景和安全要求    来做出决策。


《阿里云产品四月刊》—Apache RocketMQ ACL 2.0 全新升级(5)https://developer.aliyun.com/article/1554221

相关实践学习
消息队列RocketMQ版:基础消息收发功能体验
本实验场景介绍消息队列RocketMQ版的基础消息收发功能,涵盖实例创建、Topic、Group资源创建以及消息收发体验等基础功能模块。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
相关文章
|
2月前
|
消息中间件 存储 Serverless
【实践】快速学会使用阿里云消息队列RabbitMQ版
云消息队列 RabbitMQ 版是一款基于高可用分布式存储架构实现的 AMQP 0-9-1协议的消息产品。云消息队列 RabbitMQ 版兼容开源 RabbitMQ 客户端,解决开源各种稳定性痛点(例如消息堆积、脑裂等问题),同时具备高并发、分布式、灵活扩缩容等云消息服务优势。
112 2
|
1月前
|
消息中间件 canal 分布式计算
类似apache nifi的产品还有哪些?
【10月更文挑战第23天】类似apache nifi的产品还有哪些?
75 3
|
3月前
|
消息中间件 弹性计算 运维
阿里云云消息队列RabbitMQ实践解决方案评测报告
阿里云云消息队列RabbitMQ实践解决方案评测报告
82 9
ly~
|
3月前
|
消息中间件 搜索推荐 大数据
一般情况下在 RocketMQ 中添加 access key 的步骤: 一、确定配置文件位置 RocketMQ 的配置文件通常位于安装目录下的 conf 文件夹中。你需要找到 broker.conf 或相关的配置文件。 二、编辑配置文件 打开配置文件,查找与 ACL(访问控制列表)相关的配置部分。 在配置文件中添加以下内容:
大数据广泛应用于商业、金融、医疗和政府等多个领域。在商业上,它支持精准营销、客户细分及流失预测,并优化供应链管理;金融领域则利用大数据进行风险评估、市场预测及欺诈检测;医疗行业通过大数据预测疾病、提供个性化治疗;政府运用大数据进行城市规划和公共安全管理;工业领域则借助大数据进行设备维护、故障预测及质量控制。
ly~
175 2
|
2月前
|
SQL 存储 监控
大数据-161 Apache Kylin 构建Cube 按照日期、区域、产品、渠道 与 Cube 优化
大数据-161 Apache Kylin 构建Cube 按照日期、区域、产品、渠道 与 Cube 优化
63 0
|
4月前
|
消息中间件 存储 Cloud Native
RocketMQ从4.9.7 升级到5.3.0有什么变化?
【8月更文挑战第25天】RocketMQ从4.9.7 升级到5.3.0有什么变化?
293 4
|
4月前
|
消息中间件 人工智能 监控
|
4月前
|
消息中间件 Shell RocketMQ
就软件研发问题之RocketMQ中ACL授权管理的问题如何解决
就软件研发问题之RocketMQ中ACL授权管理的问题如何解决
|
4月前
|
消息中间件 存储 监控
就软件研发问题之RocketMQ ACL 2.0适应未来持续发展的认证鉴权的问题如何解决
就软件研发问题之RocketMQ ACL 2.0适应未来持续发展的认证鉴权的问题如何解决
|
4月前
|
消息中间件 数据安全/隐私保护 RocketMQ
就软件研发问题之RocketMQ ACL 2.0的认证流程的问题如何解决
就软件研发问题之RocketMQ ACL 2.0的认证流程的问题如何解决

推荐镜像

更多
下一篇
DataWorks