7.2. 使用 API 在 Red Hat Developer Hub 中委派 RBAC 访问


您可以使用 RBAC 后端 API 在 Red Hat Developer Hub 中委派 RBAC 访问。

先决条件

  • 您可以使用 curl 或者其它工具访问 API。

流程

  1. 使用 RBAC 后端 API 为团队领导创建新角色:

    使用 RBAC 后端 API 为团队创建新角色示例

    curl -X POST 'http://localhost:7007/api/permission/roles' \
    --header "Authorization: Bearer $ADMIN_TOKEN" \
    --header "Content-Type: application/json" \
    --data '{
      "memberReferences": ["user:default/team_lead"],
      "name": "role:default/team_lead",
      "metadata": {
        "description": "This is an example team lead role"
      }
    }'
    Copy to Clipboard Toggle word wrap

  2. 允许团队使用以下 API 请求读取目录实体并在 RBAC 插件中创建权限:

    授予团队 lead 角色权限创建 RBAC 策略和读取目录实体的示例

    curl -X POST 'http://localhost:7007/api/permission/policies' \
    --header "Authorization: Bearer $ADMIN_TOKEN" \
    --header "Content-Type: application/json" \
    --data '[
      {
        "entityReference": "role:default/team_lead",
        "permission": "policy.entity.create",
        "policy": "create",
        "effect": "allow"
      },
      {
        "entityReference": "role:default/team_lead",
        "permission": "catalog-entity",
        "policy": "read",
        "effect": "allow"
      }
    ]'
    Copy to Clipboard Toggle word wrap

  3. 为确保团队领导只能管理他们自己的内容,请使用 IS_OWNER 条件规则,如下所示:

    使用团队领导角色的 IS_OWNER 规则应用条件访问策略的 curl 示例

    curl -X POST 'http://localhost:7007/api/permission/roles/conditions' \
    --header "Authorization: Bearer $ADMIN_TOKEN" \
    --header "Content-Type: application/json" \
    --data '{
     "result": "CONDITIONAL",
     "pluginId": "permission",
     "resourceType": "policy-entity",
     "conditions": {
       "rule": "IS_OWNER",
       "resourceType": "policy-entity",
       "params": {
         "owners": [
           "user:default/team_lead"
         ]
       }
     },
     "roleEntityRef": "role:default/team_lead",
     "permissionMapping": [
       "read",
       "update",
       "delete"
     ]
    }'
    Copy to Clipboard Toggle word wrap

    前面的条件策略示例将可见性和控制限制为仅拥有的角色和策略。

  4. 以团队领导身份登录到 RHDH,并验证以下内容:

    1. 使用以下请求,并确认您没有看到任何角色:

      检索团队领导角色可见的 curl 示例

      curl -X GET 'http://localhost:7007/api/permission/roles' \
      --header "Authorization: Bearer $TEAM_LEAD_TOKEN"
      Copy to Clipboard Toggle word wrap

    2. 使用以下请求为其团队创建新角色:

      有关团队的示例 curl 会导致为其团队创建一个新角色,并分配了所有权

      curl -X POST 'http://localhost:7007/api/permission/roles' \
      --header "Authorization: Bearer $TEAM_LEAD_TOKEN" \
      --header "Content-Type: application/json" \
      --data '{
        "memberReferences": ["user:default/team_member"],
        "name": "role:default/team_a",
        "metadata": {
          "description": "This is an example team_a role",
          "owner": "user:default/team_lead"
        }
      }'
      Copy to Clipboard Toggle word wrap

      注意

      您可以在创建过程中设置所有权,但可以随时更新所有权。

    3. 使用以下请求为新角色分配权限策略:

      授予新角色目录实体的 curl 示例

      curl -X POST 'http://localhost:7007/api/permission/policies' \
      --header "Authorization: Bearer $ADMIN_TOKEN" \
      --header "Content-Type: application/json" \
      --data '[
        {
          "entityReference": "role:default/team_a",
          "permission": "catalog-entity",
          "policy": "read",
          "effect": "allow"
        }
      ]'
      Copy to Clipboard Toggle word wrap

    4. 使用以下请求来验证是否只有团队拥有的角色和策略可见:

      获取团队领导可见的角色和权限策略的 curl 示例

      curl -X GET 'http://localhost:7007/api/permission/roles' \
      --header "Authorization: Bearer $TEAM_LEAD_TOKEN"
      
      curl -X GET 'http://localhost:7007/api/permission/policies' \
      --header "Authorization: Bearer $TEAM_LEAD_TOKEN"
      Copy to Clipboard Toggle word wrap

验证

  • 以团队领导身份登陆并验证以下内容:

    • RBAC UI 可以访问。
    • 只有分配的用户或组才可见。
    • 范围团队以外的权限不可查看或可编辑。
  • 以管理员身份登录,并验证您是否保持完全可见性和控制力。
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2026 Red Hat
返回顶部