ACL API - 参考¶
注意
此功能仅在 Barbican 用于经过身份验证的管道时适用,即与 Keystone 集成时。
注意
当前为容器定义的访问控制列表 (ACL) 设置不会传播到关联的密钥。
警告
此 ACL 文档仍在完善中,未来可能会发生变化。
密钥 ACL API¶
GET /v1/secrets/{uuid}/acl¶
检索给定密钥的 ACL 设置。
如果未为该密钥定义 ACL,则返回默认 ACL。
请求/响应(已定义 ACL):¶
Request:
GET /v1/secrets/{uuid}/acl
Headers:
X-Auth-Token: {token_id}
Response:
HTTP/1.1 200 OK
{
"read":{
"updated":"2015-05-12T20:08:47.644264",
"created":"2015-05-12T19:23:44.019168",
"users":[
{user_id1},
{user_id2},
.....
],
"project-access":{project-access-flag}
}
}
请求/响应(未定义 ACL):¶
Request:
GET /v1/secrets/{uuid}/acl
Headers:
X-Auth-Token: {token_id}
Response:
HTTP/1.1 200 OK
{
"read":{
"project-access": true
}
}
HTTP 状态码¶
代码 |
描述 |
|---|---|
200 |
成功请求。 |
401 |
缺少或无效的 X-Auth-Token。需要身份验证。 |
403 |
用户没有权限访问此资源。 |
404 |
未找到给定 UUID 的密钥。 |
PUT /v1/secrets/{uuid}/acl¶
为给定密钥创建新的或替换现有的 ACL。
此调用用于为密钥添加新的 ACL。如果 ACL 已经设置为密钥,则此方法将使用请求的 ACL 设置替换它。在创建(第一个新的显式 ACL)或替换现有 ACL 的情况下,两种情况下都返回 200。要删除 ACL 定义中的现有用户,请将空列表 [] 传递给 users。
成功时返回 ACL 引用。
属性¶
此页面中详细描述的 ACL 资源允许控制对单个密钥的访问。通过对这些密钥进行操作来配置此访问。当前仅支持“读取”操作(包括 GET REST 操作)。
属性名称 |
类型 |
描述 |
默认值 |
|---|---|---|---|
读取 |
父元素 |
读取操作的 ACL 数据。 |
无 |
users |
[string] |
(可选)用户 ID 列表。这需要是 Keystone 返回的用户 ID。 |
[] |
project-access |
布尔值 |
(可选)标记密钥为私有的标志,以便创建密钥的用户和上述列表中指定的 |
true |
请求/响应(设置或替换 ACL):¶
Request:
PUT /v1/secrets/{uuid}/acl
Headers:
Content-Type: application/json
X-Auth-Token: {token_id}
Body:
{
"read":{
"users":[
{user_id1},
{user_id2},
.....
],
"project-access":{project-access-flag}
}
}
Response:
HTTP/1.1 200 OK
{"acl_ref": "https://{barbican_host}/v1/secrets/{uuid}/acl"}
HTTP 状态码¶
代码 |
描述 |
|---|---|
200 |
成功设置/替换密钥 ACL。 |
400 |
错误请求。 |
401 |
缺少或无效的 X-Auth-Token。需要身份验证。 |
403 |
用户没有权限访问此资源。 |
404 |
未找到给定 UUID 的密钥。 |
415 |
不支持的媒体类型。 |
PATCH /v1/secrets/{uuid}/acl¶
更新给定密钥的现有 ACL。此方法可用于对现有的 ACL 设置应用部分更改。客户端可以更新 users 列表并启用或禁用现有 ACL 的 project-access 标志。提供的用户列表替换现有的用户(如果有)。对于 ACL 定义中提供的现有用户列表,请将空列表 [] 传递给 users。
成功时返回 ACL 引用。
注意
PATCH API 支持将在不久的将来发生变化。
属性¶
属性名称 |
类型 |
描述 |
默认值 |
|---|---|---|---|
读取 |
父元素 |
读取操作的 ACL 数据。 |
无 |
users |
[string] |
(可选)用户 ID 列表。这需要是 Keystone 返回的用户 ID。 |
无 |
project-access |
布尔值 |
(可选)标记密钥为私有的标志,以便创建密钥的用户和上述列表中指定的 |
无 |
请求/响应(更新 project-access 标志):¶
PATCH /v1/secrets/{uuid}/acl
Headers:
Content-Type: application/json
X-Auth-Token: {token_id}
Body:
{
"read":
{
"project-access":false
}
}
Response:
HTTP/1.1 200 OK
{"acl_ref": "https://{barbican_host}/v1/secrets/{uuid}/acl"}
请求/响应(从 ACL 中删除所有用户):¶
PATCH /v1/secrets/{uuid}/acl
Headers:
Content-Type: application/json
X-Auth-Token: {token_id}
Body:
{
"read":
{
"users":[]
}
}
Response:
HTTP/1.1 200 OK
{"acl_ref": "https://{barbican_host}/v1/secrets/{uuid}/acl"}
HTTP 状态码¶
代码 |
描述 |
|---|---|
200 |
成功更新密钥 ACL。 |
400 |
错误请求。 |
401 |
缺少或无效的 X-Auth-Token。需要身份验证。 |
403 |
用户没有权限访问此资源。 |
404 |
未找到给定 UUID 的密钥。 |
415 |
不支持的媒体类型。 |
DELETE /v1/secrets/{uuid}/acl¶
删除给定密钥的 ACL。成功删除后不会返回任何内容。
请求/响应:¶
DELETE /v1/secrets/{uuid}/acl
Headers:
X-Auth-Token: {token_id}
Response:
HTTP/1.1 200 OK
HTTP 状态码¶
代码 |
描述 |
|---|---|
200 |
成功删除密钥 ACL。 |
401 |
缺少或无效的 X-Auth-Token。需要身份验证。 |
403 |
用户没有权限访问此资源。 |
404 |
未找到给定 UUID 的密钥。 |
容器 ACL API¶
GET /v1/containers/{uuid}/acl¶
检索给定容器的 ACL 设置。
如果未为该容器定义 ACL,则返回默认 ACL。
请求/响应(已定义 ACL):¶
Request:
GET /v1/containers/{uuid}/acl
Headers:
X-Auth-Token: {token_id}
Response:
HTTP/1.1 200 OK
{
"read":{
"updated":"2015-05-12T20:08:47.644264",
"created":"2015-05-12T19:23:44.019168",
"users":[
{user_id1},
{user_id2},
.....
],
"project-access":{project-access-flag}
}
}
请求/响应(未定义 ACL):¶
Request:
GET /v1/containers/{uuid}/acl
Headers:
X-Auth-Token: {token_id}
Response:
HTTP/1.1 200 OK
{
"read":{
"project-access": true
}
}
HTTP 状态码¶
代码 |
描述 |
|---|---|
200 |
成功请求。 |
401 |
缺少或无效的 X-Auth-Token。需要身份验证。 |
403 |
用户没有权限访问此资源。 |
404 |
未找到给定 UUID 的容器。 |
PUT /v1/containers/{uuid}/acl¶
为给定容器创建新的或替换现有的 ACL。
此调用用于为容器添加新的 ACL。如果 ACL 已经设置为容器,则此方法将使用请求的 ACL 设置替换它。在创建(第一个新的显式 ACL)或替换现有 ACL 的情况下,两种情况下都返回 200。要删除 ACL 定义中的现有用户,请将空列表 [] 传递给 users。
成功时返回 ACL 引用。
属性¶
此页面中详细描述的 ACL 资源允许控制对单个容器的访问。通过对这些容器进行操作来配置此访问。当前仅支持“读取”操作(包括 GET REST 操作)。
属性名称 |
类型 |
描述 |
默认值 |
|---|---|---|---|
读取 |
父元素 |
读取操作的 ACL 数据。 |
无 |
users |
[string] |
(可选)用户 ID 列表。这需要是 Keystone 返回的用户 ID。 |
[] |
project-access |
布尔值 |
(可选)标记容器为私有的标志,以便创建容器的用户和上述列表中指定的 |
true |
请求/响应(设置或替换 ACL):¶
PUT /v1/containers/{uuid}/acl
Headers:
Content-Type: application/json
X-Auth-Token: {token_id}
Body:
{
"read":{
"users":[
{user_id1},
{user_id2},
.....
],
"project-access":{project-access-flag}
}
}
Response:
HTTP/1.1 200 OK
{"acl_ref": "https://{barbican_host}/v1/containers/{uuid}/acl"}
HTTP 状态码¶
代码 |
描述 |
|---|---|
200 |
成功设置/替换容器 ACL。 |
400 |
错误请求。 |
401 |
缺少或无效的 X-Auth-Token。需要身份验证。 |
403 |
用户没有权限访问此资源。 |
404 |
未找到给定 UUID 的容器。 |
415 |
不支持的媒体类型。 |
PATCH /v1/containers/{uuid}/acl¶
更新给定容器的现有 ACL。此方法可用于对现有的 ACL 设置应用部分更改。客户端可以更新 users 列表并启用或禁用现有 ACL 的 project-access 标志。提供的用户列表替换现有的用户(如果有)。对于 ACL 定义中提供的现有用户列表,请将空列表 [] 传递给 users。
成功时返回 ACL 引用。
注意
PATCH API 支持将在不久的将来发生变化。
属性¶
属性名称 |
类型 |
描述 |
默认值 |
|---|---|---|---|
读取 |
父元素 |
读取操作的 ACL 数据。 |
无 |
users |
[string] |
(可选)用户 ID 列表。这需要是 Keystone 返回的用户 ID。 |
无 |
project-access |
布尔值 |
(可选)标记容器为私有的标志,以便创建容器的用户和上述列表中指定的 |
无 |
请求/响应(更新 project-access 标志):¶
PATCH /v1/containers/{uuid}/acl
Headers:
Content-Type: application/json
X-Auth-Token: {token_id}
Body:
{
"read":
{
"project-access":false
}
}
Response:
HTTP/1.1 200 OK
{"acl_ref": "https://{barbican_host}/v1/containers/{uuid}/acl"}
请求/响应(从 ACL 中删除所有用户):¶
PATCH /v1/containers/{uuid}/acl
Headers:
Content-Type: application/json
X-Auth-Token: {token_id}
Body:
{
"read":
{
"users":[]
}
}
Response:
HTTP/1.1 200 OK
{"acl_ref": "https://{barbican_host}/v1/containers/{uuid}/acl"}
HTTP 状态码¶
代码 |
描述 |
|---|---|
200 |
成功更新容器 ACL。 |
400 |
错误请求。 |
401 |
缺少或无效的 X-Auth-Token。需要身份验证。 |
403 |
用户没有权限访问此资源。 |
404 |
未找到给定 UUID 的容器。 |
415 |
不支持的媒体类型。 |
DELETE /v1/containers/{uuid}/acl¶
删除给定容器的 ACL。成功删除后不会返回任何内容。
请求/响应:¶
DELETE /v1/containers/{uuid}/acl
Headers:
X-Auth-Token: {token_id}
Response:
HTTP/1.1 200 OK
HTTP 状态码¶
代码 |
描述 |
|---|---|
200 |
成功删除容器 ACL。 |
401 |
缺少或无效的 X-Auth-Token。需要身份验证。 |
403 |
用户没有权限访问此资源。 |
404 |
未找到给定 UUID 的容器。 |