《阿里云产品四月刊》—Apache RocketMQ ACL 2.0 全新升级(4)https://developer.aliyun.com/article/1554223
客户端流程:
- 客户端在构建 RPC 请求时,检查是否设置了用户名和密码,若未配置,则直接发送请求;
- 若已配置,则使用预设的加密算法对请求参数进行加密处理,并生成对应的数字签 名(Signature)。
- 在请求中附加用户名和 Signature,并将其发送至服务端以进行身份验证。
服务端流程:
- 服务端接收到请求后,首先检查是否开启认证,若未开启,则不校验直接通过;若 已开启了,则进入下一步。
- 服务端对请求进行认证相关的参数进行解析和组装,获取包括用户名和 Signature 等信息。
- 通过用户名在本地库中查询用户相关信息,用户不存在,则返回处理无;用户存在, 则进入下一步。
- 获取用户密码,采用相同的加密算法对请求进行加密生成 Signature,并和客户端传递的 Signature 进行比对,若两者一致,则认证成功,不一致,则认证失败。
授权(Authorization)
核心概念
授权作为一种安全机制,旨在确定访问请求者是否拥有对特定资源进行操作的权限。简 而言之,授权就是在资源被访问之前回答“谁在何种环境下对哪些资源执行何种操作” 这个问题。
基于“属性的访问控制(ABAC)”模型,RocketMQ ACL 2.0 涵盖了以下一系列的核心概念。在系统实现中,都会以以下概念作为指导,完成整个权限管理和授权机制的设计 和实现。
《阿里云产品四月刊》—Apache RocketMQ ACL 2.0 全新升级(6)https://developer.aliyun.com/article/1554220