You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

RabbitMQ如何通过AD组关联特定vhost权限?

利用JWT令牌中的AD组信息实现RabbitMQ VHost与团队的绑定

完全可以通过JWT令牌中的AD组信息实现团队与专属VHost的绑定,核心是通过rabbitmq_auth_backend_oauth2插件的权限映射规则,将JWT里的组(你配置中指定的roles字段)与对应VHost的访问权限关联起来,具体实现步骤如下:

1. 确认JWT令牌的组信息输出

确保你的AD OAuth服务器在颁发的JWT令牌中,将用户所属的团队组信息写入roles字段(你的配置已通过extra_scopes_source: <<"roles">>>指定从该字段读取权限范围)。例如:

  • 团队A的用户,JWT的roles字段包含<<"team-a">>
  • 团队B的用户,JWT的roles字段包含<<"team-b">>

2. 调整RabbitMQ OAuth2配置

修改你的Helm Chart advancedConfig中的rabbitmq_auth_backend_oauth2部分,添加scope_to_permissions规则,将AD组映射到对应VHost的权限:

advancedConfig: |
  [
    {rabbit, [
      {auth_backends, [rabbit_auth_backend_oauth2, rabbit_auth_backend_internal]}
    ]},
    {rabbitmq_management, [
      {oauth_enabled, true},
      {oauth_client_id, "<id>"},
      {oauth_provider_url, "<url>"}
    ]},
    {rabbitmq_auth_backend_oauth2, [
      {resource_server_id, <<"<id>">>},
      {extra_scopes_source, <<"roles">>},
      % 添加组到VHost权限的映射规则
      {scope_to_permissions, [
        % 团队A:允许访问/team-a VHost,拥有配置、读写权限
        {<<"team-a">>, [
          {resource, <<"vhost">>, <<"/team-a">>},
          {permission, <<"configure">>},
          {permission, <<"write">>},
          {permission, <<"read">>}
        ]},
        % 团队B:允许访问/team-b VHost,拥有配置、读写权限
        {<<"team-b">>, [
          {resource, <<"vhost">>, <<"/team-b">>},
          {permission, <<"configure">>},
          {permission, <<"write">>},
          {permission, <<"read">>}
        ]}
      ]},
      {key_config, [
        {jwks_url, <<"<url>/discovery/v2.0/keys">>}
      ]}
    ]}
  ].

权限说明

  • configure:允许用户创建/删除队列、交换器等资源
  • write:允许用户发送消息到队列/交换器
  • read:允许用户从队列接收消息
    可根据团队需求调整权限项,比如只读团队可只保留read权限。

3. 提前创建对应VHost

确保每个团队的专属VHost已提前创建(OAuth2插件不会自动生成VHost),可通过以下命令创建:

# 创建团队A的VHost
rabbitmqctl add_vhost /team-a
# 创建团队B的VHost
rabbitmqctl add_vhost /team-b

4. 验证效果

  • 用户登录后,通过jwt.io解析令牌,确认roles字段包含对应团队的组名
  • 访问RabbitMQ管理界面,用户仅能看到自己团队的VHost,无法访问其他团队的VHost及其中的资源

内容的提问来源于stack exchange,提问作者David S

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 20:34:54