This documentation is for a release that is no longer maintained
See documentation for the latest supported version.5.3. 基于角色的访问控制(RBAC) REST API
Red Hat Developer Hub 提供 RBAC REST API,可用于管理 Developer Hub 中的权限和角色。此 API 允许您促进和自动化 Developer Hub 权限策略和角色的维护。
使用 RBAC REST API,您可以执行以下操作:
- 检索有关所有权限策略或特定权限策略或角色的信息
- 创建、更新或删除权限策略或角色
- 检索有关静态插件的权限策略信息
RBAC REST API 需要以下组件:
授权
RBAC REST API 需要允许的用户角色的 Bearer 令牌授权。出于开发目的,您可以在浏览器中访问 Web 控制台。当您在网络请求列表中刷新令牌请求时,您可以在响应 JSON 中查找令牌。
Authorization: Bearer $token
例如,在 Developer Hub 的 Home 页面中,您可以进入 Network 选项卡并搜索 query?term=
network 调用。或者,您可以进入 Catalog 页面,再选择带有 entity-facets
的任何网络调用来获取 Bearer 令牌。
HTTP 方法
RBAC REST API 支持以下 API 请求的 HTTP 方法:
-
GET
: 从指定资源端点检索指定信息 -
POST
:创建或更新资源 -
PUT
:更新资源 -
DELETE
:删除资源
基本 URL
RBAC REST API 请求的基本 URL 是 http://SERVER:PORT/api/permission/policies
,如 http://localhost:7007/api/permission/policies。
Endpoints
RBAC REST API 端点,如 /api/permission/policies/[kind]/[namespace]/[name]
(用于指定 kind、namespace 和 username)是附加到基本 URL 中的 URI,以访问对应的资源。
/api/permission/policies/[kind]/[namespace]/[name]
端点的请求 URL 示例:
http://localhost:7007/api/permission/policies/user/default/johndoe
如果至少有一个权限分配给 user:default/johndoe
,则前面提到的示例请求 URL 会返回带有有效授权令牌的 GET
响应中的结果。但是,如果只为角色分配权限,则示例请求 URL 不会返回输出。
请求数据
RBAC REST API 中的 HTTP POST
请求可能需要带有数据的 JSON 请求正文以及请求。
http://localhost:7007/api/permission/policies
的 POST
请求 URL 和 JSON 请求正文数据示例:
HTTP 状态代码
RBAC REST API 支持以下 HTTP 状态代码来返回响应:
-
200
OK :请求成功。 -
201
created :请求成功创建新资源。 -
204
no Content: 请求成功,但响应有效负载中没有发送额外内容。 -
400
bad Request: input error with the request -
401
未授权:缺少所请求资源的有效身份验证 -
403
forbidden:拒绝授权请求 -
404
not Found:无法找到请求的资源 -
409
冲突:请求与当前状态和目标资源冲突
5.3.1. 使用 REST 客户端或 curl 实用程序通过 RBAC REST API 发送请求 复制链接链接已复制到粘贴板!
RBAC REST API 可让您在不使用用户界面的情况下与 Developer Hub 中的权限策略和角色交互。您可以使用任何 REST 客户端或 curl 实用程序发送 RBAC REST API 请求。
先决条件
- Red Hat Developer Hub 已安装并运行。有关安装 Red Hat Developer Hub 的更多信息,请参阅 第 2.1 节 “使用 Helm Chart 在 OpenShift Container Platform 上部署 Red Hat Developer Hub”。
- 您可以访问 Developer Hub。
流程
识别您要发送请求的相关 API 端点,如
POST /api/permission/policies
。根据您的用例调整任何请求详情。对于 REST 客户端 :
- Authorization :从 web 控制台输入生成的令牌。
-
HTTP 方法:设置为
POST
。 -
URL :输入 RBAC REST API 基础 URL 和端点,如
http://localhost:7007/api/permission/policies
。
对于 curl 工具 :
-
-x
: 设置为POST
-
h :设置以下标头:content-type: application/json
Authorization: Bearer $token
$token
是浏览器中从 Web 控制台请求的令牌。-
URL :输入以下 RBAC REST API 基础 URL 端点,如
http://localhost:7007/api/permission/policies
-
-d
:添加请求 JSON 正文
请求示例 :
curl -X POST "http://localhost:7007/api/permission/policies" -d '{"entityReference":"role:default/test", "permission": "catalog-entity", "policy": "read", "effect":"allow"}' -H "Content-Type: application/json" -H "Authorization: Bearer $token" -v
- 执行请求并检查响应。
5.3.2. 支持的 RBAC REST API 端点 复制链接链接已复制到粘贴板!
RBAC REST API 提供了以下端点,以管理 Developer Hub 中的权限策略和角色,并检索有关策略和角色的信息。
5.3.2.1. 权限策略 复制链接链接已复制到粘贴板!
RBAC REST API 支持以下端点来管理 Red Hat Developer Hub 中的权限策略。
- [GET] /api/permission/policies
返回所有用户的权限策略列表。
响应示例(JSON)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - [GET] /api/permission/policies/{kind}/{namespace}/{name}
返回与指定实体引用相关的权限策略。
Expand 表 5.1. 请求参数 名称 描述 类型 要求 kind
实体的类型
字符串
必填
namespace
实体的命名空间
字符串
必填
name
与实体相关的用户名
字符串
必填
响应示例(JSON)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - [POST] /api/permission/policies
为指定实体创建权限策略。
Expand 表 5.2. 请求参数 名称 描述 类型 要求 entityReference
包括命名空间和名称的实体的引用值
字符串
必填
权限
权限类型
字符串
必填
policy
权限的读取或写入策略
字符串
必填
effect
指明允许策略
字符串
必填
请求正文(JSON)示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 响应示例
201 Created
201 Created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - [PUT] /api/permission/policies/{kind}/{namespace}/{name}
更新指定实体的权限策略。
请求参数
请求正文包含
oldPolicy
和newPolicy
对象:Expand Name 描述 类型 要求 权限
权限类型
字符串
必填
policy
权限的读取或写入策略
字符串
必填
effect
指明允许策略
字符串
必填
请求正文(JSON)示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 响应示例
200
200
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - [DELETE] /api/permission/policies/{kind}/{namespace}/{name}?permission={value1}&policy={value2}&effect={value3}
删除添加到指定实体的权限策略。
Expand 表 5.3. 请求参数 名称 描述 类型 要求 kind
实体的类型
字符串
必填
namespace
实体的命名空间
字符串
必填
name
与实体相关的用户名
字符串
必填
权限
权限类型
字符串
必填
policy
权限的读取或写入策略
字符串
必填
effect
指明允许策略
字符串
必填
响应示例
204 No Content
204 No Content
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - [GET] /api/permission/plugins/policies
返回所有静态插件的权限策略。
响应示例(JSON)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.3.2.2. 角色 复制链接链接已复制到粘贴板!
RBAC REST API 支持以下端点来管理 Red Hat Developer Hub 中的角色。
- [GET] /api/permission/roles
返回 Developer Hub 中的所有角色。
响应示例(JSON)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - [GET] /api/permission/roles/{kind}/{namespace}/{name}
在 Developer Hub 中创建角色。
Expand 表 5.4. 请求参数 名称 描述 类型 要求 正文(body)
memberReferences
、组
、namespace
,并命名
要创建的新角色。请求正文
必填
请求正文(JSON)示例
{ "memberReferences": ["group:default/test"], "name": "role:default/test_admin" }
{ "memberReferences": ["group:default/test"], "name": "role:default/test_admin" }
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 响应示例
201 Created
201 Created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - [PUT] /api/permission/roles/{kind}/{namespace}/{name}
为 Developer Hub
中的角色
更新memberReferences
、类型、命名空间或
名称
。请求参数
请求正文包含
oldRole
和newRole
对象:Expand Name 描述 类型 要求 正文(body)
memberReferences
、组
、namespace
,并命名
要创建的新角色。请求正文
必填
请求正文(JSON)示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 响应示例
200 OK
200 OK
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - [DELETE] /api/permission/roles/{kind}/{namespace}/{name}?memberReferences=<VALUE>
从 Developer Hub 中的角色中删除指定的用户或组。
Expand 表 5.5. 请求参数 名称 描述 类型 要求 kind
实体的类型
字符串
必填
namespace
实体的命名空间
字符串
必填
name
与实体相关的用户名
字符串
必填
memberReferences
关联的组信息
字符串
必填
响应示例
204
204
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - [DELETE] /api/permission/roles/{kind}/{namespace}/{name}
从 Developer Hub 中删除指定的角色。
Expand 表 5.6. 请求参数 名称 描述 类型 要求 kind
实体的类型
字符串
必填
namespace
实体的命名空间
字符串
必填
name
与实体相关的用户名
字符串
必填
响应示例
204
204
Copy to Clipboard Copied! Toggle word wrap Toggle overflow