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

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

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


《阿里云产品四月刊》—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
相关文章
|
5天前
|
消息中间件 测试技术 RocketMQ
消息队列 MQ产品使用合集之在异步发送消息函数sendMessage()中出现了错误,错误代码为-3,该如何解决
消息队列(MQ)是一种用于异步通信和解耦的应用程序间消息传递的服务,广泛应用于分布式系统中。针对不同的MQ产品,如阿里云的RocketMQ、RabbitMQ等,它们在实现上述场景时可能会有不同的特性和优势,比如RocketMQ强调高吞吐量、低延迟和高可用性,适合大规模分布式系统;而RabbitMQ则以其灵活的路由规则和丰富的协议支持受到青睐。下面是一些常见的消息队列MQ产品的使用场景合集,这些场景涵盖了多种行业和业务需求。
|
5天前
|
消息中间件 监控 Oracle
消息队列 MQ产品使用合集之启动Namesrv节点时,遇到报错,该如何解决
消息队列(MQ)是一种用于异步通信和解耦的应用程序间消息传递的服务,广泛应用于分布式系统中。针对不同的MQ产品,如阿里云的RocketMQ、RabbitMQ等,它们在实现上述场景时可能会有不同的特性和优势,比如RocketMQ强调高吞吐量、低延迟和高可用性,适合大规模分布式系统;而RabbitMQ则以其灵活的路由规则和丰富的协议支持受到青睐。下面是一些常见的消息队列MQ产品的使用场景合集,这些场景涵盖了多种行业和业务需求。
|
5天前
|
消息中间件 Java RocketMQ
消息队列 MQ产品使用合集之当SpringBoot应用因网络不通而启动失败时,该如何解决
消息队列(MQ)是一种用于异步通信和解耦的应用程序间消息传递的服务,广泛应用于分布式系统中。针对不同的MQ产品,如阿里云的RocketMQ、RabbitMQ等,它们在实现上述场景时可能会有不同的特性和优势,比如RocketMQ强调高吞吐量、低延迟和高可用性,适合大规模分布式系统;而RabbitMQ则以其灵活的路由规则和丰富的协议支持受到青睐。下面是一些常见的消息队列MQ产品的使用场景合集,这些场景涵盖了多种行业和业务需求。
|
4天前
电子好书发您分享《2024年阿里云产品五月刊》
Markdown 格式摘要如下: ```markdown 📚 阅读电子书:《2024年阿里云产品五月刊》🚀 了解阿里云最新动态!🚀 [查看](https://developer.aliyun.com/ebook/8349/read?spm=a2c6h.26392459.ebook-detail.5.623e3988zLjRuZ) ![阿里云五月刊封面](https://ucc.alicdn.com/pic/developer-ecology/cok6a6su42rzm_3502a3b8ac6c41b2ac7150896d3df269.png) ```
26 6
|
1天前
|
运维 监控 数据可视化
阿里云可观测 2024 年 6 月产品动态
阿里云可观测 2024 年 6 月产品动态。
|
5天前
|
自然语言处理
电子好书发您分享《阿里云产品2024年五月刊》
```markdown 《阿里云产品2024年五月刊》电子书分享:探索阿里云最新动态。[查看](https://developer.aliyun.com/ebook/8349/read?spm=a2c6h.26392459.ebook-detail.5.32203988v4X3Om) ``` 纯文本摘要: 《阿里云产品2024年五月刊》现已发布,详询阿里云最新产品和服务,请访问:https://developer.aliyun.com/ebook/8349/read?spm=a2c6h.26392459.ebook-detail.5.32203988v4X3Om
10 1
|
5天前
|
消息中间件 网络协议 JavaScript
消息队列 MQ产品使用合集之报错提示是"the internal error!",是什么原因导致的”
消息队列(MQ)是一种用于异步通信和解耦的应用程序间消息传递的服务,广泛应用于分布式系统中。针对不同的MQ产品,如阿里云的RocketMQ、RabbitMQ等,它们在实现上述场景时可能会有不同的特性和优势,比如RocketMQ强调高吞吐量、低延迟和高可用性,适合大规模分布式系统;而RabbitMQ则以其灵活的路由规则和丰富的协议支持受到青睐。下面是一些常见的消息队列MQ产品的使用场景合集,这些场景涵盖了多种行业和业务需求。
|
5天前
|
消息中间件 JavaScript RocketMQ
消息队列 MQ产品使用合集之是否支持任意时间延迟的消息
消息队列(MQ)是一种用于异步通信和解耦的应用程序间消息传递的服务,广泛应用于分布式系统中。针对不同的MQ产品,如阿里云的RocketMQ、RabbitMQ等,它们在实现上述场景时可能会有不同的特性和优势,比如RocketMQ强调高吞吐量、低延迟和高可用性,适合大规模分布式系统;而RabbitMQ则以其灵活的路由规则和丰富的协议支持受到青睐。下面是一些常见的消息队列MQ产品的使用场景合集,这些场景涵盖了多种行业和业务需求。
|
1天前
阿里云产品六月刊来啦
通义千问2.5正式发布,HPC优化实例hpc8ae正式商业化,详情请点击阿里云产品六月刊
|
5天前
|
消息中间件 Java API
消息队列 MQ产品使用合集之遇到"No topic route info in name server for the topic"错误,该如何处理
消息队列(MQ)是一种用于异步通信和解耦的应用程序间消息传递的服务,广泛应用于分布式系统中。针对不同的MQ产品,如阿里云的RocketMQ、RabbitMQ等,它们在实现上述场景时可能会有不同的特性和优势,比如RocketMQ强调高吞吐量、低延迟和高可用性,适合大规模分布式系统;而RabbitMQ则以其灵活的路由规则和丰富的协议支持受到青睐。下面是一些常见的消息队列MQ产品的使用场景合集,这些场景涵盖了多种行业和业务需求。

热门文章

最新文章

推荐镜像

更多