You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@rocketmq.apache.org by GitBox <gi...@apache.org> on 2018/08/14 03:32:50 UTC

[GitHub] FunriLy commented on issue #403: ACL feature request

FunriLy commented on issue #403: ACL feature request
URL: https://github.com/apache/rocketmq/issues/403#issuecomment-412743760
 
 
   ### 第一组解决方案
   我们可以考虑在RPC交互中添加一个用户的概念来增加ACL模块。
   我们的Producer集群会在向Broker集群写入数据时,附带上userId与password进行身份验证。而我们的Consumer集群在向Broker集群发起订阅动作,将会附带上用户userId进行对于Topic的身份验证。
   ![](https://s1.ax1x.com/2018/08/14/PgqFc6.png)
   
   在BrokerMaster上维护一个关于"topic-group-user-operation"的关系映射表,通过Broker之间主备节点异步更新映射表。由于slave节点是定时向master节点同步信息,所以集群内只保证数据最终一致性。该映射关系表将用于对订阅用户userId进行身份验证。
   关于关系映射表,我们考虑设计如图为:我们希望能够快速定位某个Topic下拥有某种操作权限的用户群体(暂时分为 Read、Write、Owner 三种操作,可后续扩展 Update、Delete 等)。
   ![](https://s1.ax1x.com/2018/08/14/PgqVBD.png)
   
   最终,在客户端对Topic进行操作时都将进行一次身份验证,已确定对应的客户端拥有确定的权限。
   
   其他问题:
   1、考虑过加一个APPID对应用进行区分,但是考虑到如果有一个可能性的话:与第三方ACL权限系统对接,将以用户为主导角色,所以采用userId与password作为一个标识属性。
   2、关于主备节点间消息同步问题,我们考虑将userId与Topic的映射关系通过TopicConfig同步到整个Broker集群。
   

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services