服务资源操作相关接口
获取服务列表
描述
- 获取所有IAM服务列表
URI
GET /auth/v1/services
请求参数
无
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
id | body | String | 是 | 服务ID |
name | body | String | 是 | 服务编码 |
displayName | body | String | 是 | 服务名称 |
description | body | String | 否 | 服务描述 |
isDisplay | body | Bool | 是 | 是否在页面展示 |
attributes | body | List | 否 | 服务拓展属性 |
示例
获取所有服务列表,请求url为:GET /auth/v1/services
响应示例
[
{
"id": "8ac834e5670af51a01670af5a10d0000",
"name": "cvm",
"displayName": "云服务器",
"description": "",
"isDisplay": true,
"attributes": null
},
{
"id": "8ac834e5670afe5c01670afecde40000",
"name": "oss",
"displayName": "对象存储服务",
"description": "",
"isDisplay": true,
"attributes": null
}
]
返回值
请参考通用请求返回值
错误码
请参考错误码
获取指定服务信息
描述
- 根据serviceId获取指定的服务信息
URI
GET /auth/v1/services/{serviceId}
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
serviceId | path | String | 是 | 服务ID |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
id | body | String | 是 | 服务ID |
name | body | String | 是 | 服务编码 |
displayName | body | String | 是 | 服务名称 |
description | body | String | 否 | 服务描述 |
isDisplay | body | Bool | 是 | 是否在页面展示 |
attributes | body | List | 否 | 服务拓展属性 |
示例
获取ID为8ac834e5670af51a01670af5a10d0000的服务,请求url为:GET /auth/v1/services/8ac834e5670af51a01670af5a10d0000
响应示例
{
"id": "8ac834e5670af51a01670af5a10d0000",
"name": "cvm",
"displayName": "云服务器",
"description": "",
"isDisplay": true,
"attributes": null
}
返回值
请参考通用请求返回值
错误码
获取指定服务的资源类型列表
描述
- 根据服务ID,获取指定服务下的资源类型列表
URI
GET /auth/v1/services/{serviceId}/resource-types
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
serviceId | path | String | 是 | 服务ID |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
id | body | String | 是 | 资源类型ID |
name | body | String | 是 | 资源类型编码 |
displayName | body | String | 是 | 资源类型名称 |
context | body | String | 否 | 资源类型个性化鉴权上下文 |
description | body | String | 否 | 资源类型描述 |
serviceId | body | String | 是 | 所属服务ID |
isDisplay | body | Bool | 是 | 是否在页面展示 |
attributes | body | List | 否 | 资源类型拓展属性 |
示例
假设需要获取服务ID为"8ac834e5670af51a01670af5a10d0000"的服务下的资源类型列表。
请求url为:GET /auth/v1/services/8ac834e5670af51a01670af5a10d0000/resource-types
响应示例
[
{
"id": "user",
"name": "user",
"displayName": "用户",
"context": "",
"description": "用户",
"serviceId": "8ac834e5670af51a01670af5a10d0000",
"isDisplay": true,
"attributes": null
},
{
"id": "role",
"name": "role",
"displayName": "角色",
"context": "",
"description": "角色",
"serviceId": "8ac834e5670af51a01670af5a10d0000",
"isDisplay": true,
"attributes": null
}
]
返回值
请参考通用请求返回值
错误码
请参考错误码
获取指定资源类型信息
描述
- 根据resourceTypeId获取指定的资源类型信息
URI
GET /auth/v1/services/{serviceId}/resource-types/{resourceTypeId}
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
serviceId | path | String | 是 | 所属服务ID |
resourceTypeId | path | String | 是 | 资源类型ID |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
id | body | String | 是 | 资源类型ID |
name | body | String | 是 | 资源类型编码 |
displayName | body | String | 是 | 资源类型名称 |
context | body | String | 否 | 资源类型个性化鉴权上下文 |
description | body | String | 否 | 资源类型描述 |
serviceId | body | String | 是 | 所属服务ID |
isDisplay | body | Bool | 是 | 是否在页面展示 |
attributes | body | List | 否 | 资源类型拓展属性 |
示例
获取ID为8ac834e5670af51a01670af5a10d0000的资源类型,请求url为:GET /auth/v1/services/iam/resource-types/8ac834e5670af51a01670af5a10d0000
响应示例
{
"id": "8ac834e5670af51a01670af5a10d0000",
"name": "user",
"displayName": "用户",
"context": "",
"description": "",
"serviceId": "iam",
"isDisplay": true,
"attributes": null
}
返回值
请参考通用请求返回值
错误码
请参考错误码
获取指定资源类型的操作列表
描述
- 根据资源类型ID,获取指定资源类型下的操作列表
URI
GET /auth/v1/services/{serviceId}/resource-types/{resourceTypeId}/actions
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
serviceId | path | String | 是 | 所属服务ID |
resourceTypeId | path | String | 是 | 资源类型ID |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
id | body | String | 是 | 操作ID |
name | body | String | 是 | 操作编码 |
displayName | body | String | 是 | 操作名称 |
description | body | String | 否 | 操作描述 |
resourceTypeId | body | String | 是 | 关联的资源类型ID |
serviceId | body | String | 是 | 关联的服务ID |
isDisplay | body | Bool | 是 | 是否在页面展示 |
isInstanceAction | body | Bool | 是 | 是否针对实例的操作 |
示例
假设需要获取服务ID为"iam"资源类型ID为"user"的资源类型下的操作列表。
请求url为:GET /auth/v1/services/iam/resource-types/user/actions
响应示例
[
{
"id": "iam_get_user",
"name": "GetUser",
"displayName": "查看用户",
"description": "查看用户",
"resourceTypeId": "user",
"serviceId": "iam",
"isDisplay": true,
"isInstanceAction": true
},
{
"id": "iam_create_user",
"name": "CreateUser",
"displayName": "创建用户",
"description": "创建用户",
"resourceTypeId": "user",
"serviceId": "iam",
"isDisplay": true,
"isInstanceAction": false
}
]
返回值
请参考通用请求返回值
错误码
请参考错误码
获取指定操作信息
描述
- 根据操作Id获取指定的操作信息
URI
GET /auth/v1/services/{serviceId}/resource-types/{resourceTypeId}/actions/{actionId}
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
serviceId | path | String | 是 | 所属服务ID |
resourceTypeId | path | String | 是 | 所属资源类型ID |
actionId | path | String | 是 | 操作ID |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
id | body | String | 是 | 操作ID |
name | body | String | 是 | 操作编码 |
displayName | body | String | 是 | 操作名称 |
description | body | String | 否 | 操作描述 |
resourceTypeId | body | String | 是 | 关联的策略类型ID |
serviceId | body | String | 是 | 关联的服务ID |
isDisplay | body | Bool | 是 | 是否在页面展示 |
isInstanceAction | body | Bool | 是 | 是否针对实例的操作 |
示例
获取ID为iam_get_user的操作,请求url为:GET /auth/v1/services/iam/resource-types/user/actions/iam_get_user
响应示例
{
"id": "iam_get_user",
"name": "GetUser",
"displayName": "查看用户",
"description": "",
"resourceTypeId": "user",
"serviceId": "iam",
"isDisplay": true,
"isInstanceAction": true
}
返回值
请参考通用请求返回值
错误码
请参考错误码
策略授权相关接口
分页获取策略列表
描述
- 分页获取所有IAM策略列表
- 根据编码、名称、内容、类型、服务ID查询
URI
GET /auth/v1/policies/{pageIndex}/{pageSize}
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
pageIndex | path | Integer | 是 | 页码 |
pageSize | path | Integer | 是 | 每页显示数据量 |
name | params | String | 否 | 策略编码,模糊匹配 |
displayName | params | String | 否 | 策略名称,模糊匹配 |
policyContent | params | String | 否 | 策略内容,模糊匹配 |
policyType | params | String | 否 | 策略类型,精确匹配 |
serviceId | params | String | 否 | 策略所属服务ID,精确匹配 |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
totalRows | body | Integer | 是 | 总记录数 |
nowPage | body | Integer | 是 | 当前显示页码 |
pageSize | body | Integer | 是 | 页大小 |
data | body | Array | 是 | 策略数据 |
id | data | String | 是 | 策略ID |
name | data | String | 是 | 策略编码 |
displayName | data | String | 是 | 策略名称 |
description | data | String | 否 | 策略描述 |
policyContent | data | String | 是 | 策略内容 |
policyType | data | String | 是 | 策略类型 |
accountId | data | String | 是 | 账户ID |
createdAt | data | String | 是 | 创建时间 |
updatedAt | data | String | 否 | 更新时间 |
deletedAt | data | String | 否 | 删除时间 |
isDeleted | data | String | 是 | 是否已删除 |
serviceId | data | String | 是 | 所属服务ID |
serviceName | data | String | 是 | 所属服务编码 |
serviceDisplayName | data | String | 是 | 所属服务名称 |
示例
获取策略列表,每页展示3条,展示第一页。查询策略名包含“云服务”的策略信息。请求url为:GET /auth/v1/policies/1/3?displayName=云服务
响应示例
{
"data": [
{
"displayName": "云服务器新增实例权限",
"isDeleted": "0",
"policyContent": "{\"effect\":\"allow\",\"description\":\"描述\",\"resources\":[\"iop:cvm:default:3d078441-aac8-402c-b0b8-b7fea3992a11:cloudServer\",\"iop:cvm:default:3d078441-aac8-402c-b0b8-b7fea3992a11:cloudServer\\/<.*>\"],\"conditions\":{\"account_resource\":{\"options\":{\"key\":\"account_user\"},\"type\":\"ContextEqualCondition\"}},\"actions\":[\"cvm:createCloudServer\"]}",
"updateAt": null,
"serviceDisplayName": "云服务器2",
"serviceName": "cvm",
"policyType": "custom",
"deletedAt": null,
"accountId": "55e0de8f-877c-49c2-9ad5-dd9257ca682e",
"name": "createCloudServer",
"createdAt": "2018-12-21T07:47:39Z",
"id": "8ac834e567c5cf330167cfbbedd80001",
"description": "该策略允许您对云服务器进行增加实例",
"serviceId": "8ac834e5670af51a01670af5a10d0000"
},
{
"isDeleted": "0",
"id": "8ac834e567e3424c0167e343a3880000",
"description": "该策略允许您对所有云服务器实例进行开机",
"updateAt": null,
"accountId": "c2f103b6-e78f-4fee-8c2f-1b765c6eb62e",
"serviceDisplayName": "云服务器2",
"serviceName": "cvm",
"policyType": "custom",
"deletedAt": null,
"displayName": "云服务器实例开机权限",
"createdAt": "2018-12-25T02:48:40Z",
"name": "startCloudServer",
"policyContent": "{\"effect\":\"allow\",\"description\":\"描述\",\"resources\":[\"iop:cvm:default:3d078441-aac8-402c-b0b8-b7fea3992a11:cloudServer/<.*>\"],\"conditions\":{\"account_resource\":{\"options\":{\"key\":\"account_user\"},\"type\":\"ContextEqualCondition\"}},\"actions\":[\"cvm:startCloudServer\"]}",
"serviceId": "8ac834e5670af51a01670af5a10d0000"
},
{
"isDeleted": "0",
"policyContent": "{\"effect\":\"allow\",\"description\":\"描述\",\"resources\":[\"iop:cvm:default:3d078441-aac8-402c-b0b8-b7fea3992a11:cloudServer/<.*>\"],\"conditions\":{\"account_resource\":{\"options\":{\"key\":\"account_user\"},\"type\":\"ContextEqualCondition\"}},\"actions\":[\"cvm:stopCloudServer\"]}",
"description": "该策略允许您对所有云服务器实例进行关机",
"updateAt": null,
"accountId": "c2f103b6-e78f-4fee-8c2f-1b765c6eb62e",
"serviceDisplayName": "云服务器2",
"serviceName": "cvm",
"id": "8ac834e567e3424c0167e345f5920001",
"policyType": "custom",
"deletedAt": null,
"createdAt": "2018-12-25T02:51:12Z",
"name": "stopCloudServer",
"serviceId": "8ac834e5670af51a01670af5a10d0000",
"displayName": "云服务器实例关机权限"
}
],
"pageSize": 3,
"totalRows": 16,
"nowPage": 1
}
返回值
请参考通用请求返回值
错误码
请参考错误码
获取自定义策略数量
描述
- 获取当前账户下的自定义策略数量
URI
GET /auth/v1/policies/count
请求参数
无
返回参数
位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|
body | Integer | 是 | 策略数量 |
示例
获取当前账户下的自定义策略数量。
请求url为:GET /auth/v1/policies/count
响应示例
6
返回值
请参考通用请求返回值
错误码
请参考错误码
创建策略
描述
- 创建一个IAM自定义策略
URI
POST /auth/v1/policies
请求参数
content-type:application/json;
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
name | body | String | 是 | 策略编码 |
description | body | String | 否 | 策略描述 |
policyContent | body | String | 是 | 策略内容 |
serviceId | body | String | 是 | 策略所属服务ID |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
error | body | String | 否 | 错误信息,当前支持"excess"即用户数量超额 |
id | body | String | 否 | 策略ID |
name | body | String | 否 | 策略编码 |
displayName | body | String | 否 | 策略名称 |
description | body | String | 否 | 策略描述 |
policyContent | body | String | 否 | 策略内容 |
policyType | body | String | 否 | 策略类型 |
accountId | body | String | 否 | 账户ID |
createdAt | body | String | 否 | 创建时间 |
updatedAt | body | String | 否 | 更新时间 |
deletedAt | body | String | 否 | 删除时间 |
isDeleted | body | String | 否 | 是否已删除 |
serviceId | body | String | 否 | 所属服务ID |
示例
在云服务器服务下创建允许新增云服务器权限的策略。
请求示例
content-type:application/json; 请求url为:POST /auth/v1/policies
{
"name": "createCloudServer",
"description": "该策略允许您对云服务器进行增加实例",
"policyContent": "{\"effect\":\"allow\",\"description\":\"描述\",\"resources\":[\"iop:cvm:default:3d078441-aac8-402c-b0b8-b7fea3992a11:cloudServer\\/<.*>\"],\"conditions\":{},\"actions\":[\"cvm:createCloudServer\"]}",
"serviceId": "8ac834e5670af51a01670af5a10d0000"
}
响应示例
{
"displayName": "云服务器新增实例权限",
"isDeleted": "0",
"policyContent": "{\"effect\":\"allow\",\"description\":\"描述\",\"resources\":[\"iop:cvm:default:3d078441-aac8-402c-b0b8-b7fea3992a11:cloudServer\",\"iop:cvm:default:3d078441-aac8-402c-b0b8-b7fea3992a11:cloudServer\\/<.*>\"],\"conditions\":{\"account_resource\":{\"options\":{\"key\":\"account_user\"},\"type\":\"ContextEqualCondition\"}},\"actions\":[\"cvm:createCloudServer\"]}",
"updateAt": null,
"policyType": "custom",
"deletedAt": null,
"accountId": "55e0de8f-877c-49c2-9ad5-dd9257ca682e",
"name": "createCloudServer",
"createdAt": "2018-12-21T07:47:39Z",
"id": "8ac834e567c5cf330167cfbbedd80001",
"description": "该策略允许您对云服务器进行增加实例",
"serviceId": "8ac834e5670af51a01670af5a10d0000"
}
超额响应示例
{
"error": "excess"
}
返回值
请参考通用请求返回值
错误码
请参考错误码
获取策略信息
描述
- 根据policyId获取指定的策略信息
URI
GET /auth/v1/policies/{policyId}
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
policyId | path | String | 是 | 策略ID |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
id | body | String | 是 | 策略ID |
name | body | String | 是 | 策略编码 |
displayName | body | String | 是 | 策略名称 |
description | body | String | 否 | 策略描述 |
policyContent | body | String | 是 | 策略内容 |
policyType | body | String | 是 | 策略类型 |
accountId | body | String | 是 | 账户ID |
createdAt | body | String | 是 | 创建时间 |
updatedAt | body | String | 否 | 更新时间 |
deletedAt | body | String | 否 | 删除时间 |
isDeleted | body | String | 是 | 是否已删除 |
serviceId | body | String | 是 | 所属服务ID |
示例
获取ID为8ac834e567c5cf330167cfbbedd80001的策略,请求url为:GET /auth/v1/policies/8ac834e567c5cf330167cfbbedd80001
响应示例
{
"displayName": "云服务器新增实例权限",
"isDeleted": "0",
"policyContent": "{\"effect\":\"allow\",\"description\":\"描述\",\"resources\":[\"iop:cvm:default:3d078441-aac8-402c-b0b8-b7fea3992a11:cloudServer\",\"iop:cvm:default:3d078441-aac8-402c-b0b8-b7fea3992a11:cloudServer\\/<.*>\"],\"conditions\":{\"account_resource\":{\"options\":{\"key\":\"account_user\"},\"type\":\"ContextEqualCondition\"}},\"actions\":[\"cvm:createCloudServer\"]}",
"updateAt": null,
"policyType": "custom",
"deletedAt": null,
"accountId": "55e0de8f-877c-49c2-9ad5-dd9257ca682e",
"name": "createCloudServer",
"createdAt": "2018-12-21T07:47:39Z",
"id": "8ac834e567c5cf330167cfbbedd80001",
"description": "该策略允许您对云服务器进行增加实例",
"serviceId": "8ac834e5670af51a01670af5a10d0000"
}
返回值
请参考通用请求返回值
错误码
请参考错误码
更新策略
描述
- 根据策略ID更新指定策略信息
- 只允许修改name、displayName、description、policyContent
URI
PATCH /auth/v1/policies/{policyId}
请求参数
content-type:application/json;
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
policyId | path | String | 是 | 策略ID |
name | body | String | 是 | 策略编码 |
displayName | body | String | 是 | 策略名称 |
description | body | String | 否 | 策略描述 |
policyContent | body | String | 是 | 策略内容 |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
id | body | String | 是 | 策略ID |
name | body | String | 是 | 策略编码 |
displayName | body | String | 是 | 策略名称 |
description | body | String | 否 | 策略描述 |
policyContent | body | String | 是 | 策略内容 |
policyType | body | String | 是 | 策略类型 |
accountId | body | String | 是 | 账户ID |
createdAt | body | String | 是 | 创建时间 |
updatedAt | body | String | 否 | 更新时间 |
deletedAt | body | String | 否 | 删除时间 |
isDeleted | body | String | 是 | 是否已删除 |
serviceId | body | String | 是 | 所属服务ID |
示例
假设需要更新ID为"8ac834e567c5cf330167cfbbedd80001"的策略名称为“云服务器新增实例权限2”。
请求示例
content-type:application/json; 请求url为:PATCH /auth/v1/policies/8ac834e567c5cf330167cfbbedd80001
{
"name": "",
"displayName": "云服务器新增实例权限2",
"description": "",
"policyContent": ""
}
响应示例
{
"displayName": "云服务器新增实例权限2",
"isDeleted": "0",
"policyContent": "{\"effect\":\"allow\",\"description\":\"描述\",\"resources\":[\"iop:cvm:default:3d078441-aac8-402c-b0b8-b7fea3992a11:cloudServer\",\"iop:cvm:default:3d078441-aac8-402c-b0b8-b7fea3992a11:cloudServer\\/<.*>\"],\"conditions\":{\"account_resource\":{\"options\":{\"key\":\"account_user\"},\"type\":\"ContextEqualCondition\"}},\"actions\":[\"cvm:createCloudServer\"]}",
"updateAt": null,
"policyType": "custom",
"deletedAt": null,
"accountId": "55e0de8f-877c-49c2-9ad5-dd9257ca682e",
"name": "createCloudServer",
"createdAt": "2018-12-21T07:47:39Z",
"id": "8ac834e567c5cf330167cfbbedd80001",
"description": "该策略允许您对云服务器进行增加实例",
"serviceId": "8ac834e5670af51a01670af5a10d0000"
}
返回值
请参考通用请求返回值
错误码
请参考错误码
删除策略
描述
- 根据策略ID,删除指定策略
URI
DELETE /auth/v1/policies/{policyId}
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
policyId | path | String | 是 | 策略ID |
返回参数
无
示例
假设需要删除ID为"8ac834e567c5cf330167cfbbedd80001"的策略。
请求url为:DELETE /auth/v1/policies/8ac834e567c5cf330167cfbbedd80001
返回值
请参考通用请求返回值
错误码
请参考错误码
查询指定策略可关联的用户
描述
- 当前账号下的子用户
- 未与当前策略直接关联
URI
GET /auth/v1/policies/{policyId}/available-users
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
policyId | path | String | 是 | 策略ID |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
id | body | String | 是 | 用户ID |
name | body | String | 是 | 用户名 |
body | String | 否 | 用户邮箱 | |
phone | body | String | 否 | 用户电话 |
description | body | String | 否 | 用户描述 |
accountId | body | String | 是 | 账户ID |
isRootUser | body | Boolean | 是 | 是否根用户 |
createdAt | body | LONG | 是 | 创建时间 |
示例
查询ID为"8ac834e5680d6cd801680de164ee0004"的策略可关联的用户。
请求url为:GET /auth/v1/policies/8ac834e5680d6cd801680de164ee0004/available-users
响应示例
[
{
"id": "fe026176-65f7-48f3-87a7-963f032de919",
"accountId": "6c60e590-5629-40b3-81fa-15ca04d9a8af",
"createdAt": 1548661485599,
"name": "lkx-05",
"email": "user05@inspur.com",
"phone": "110",
"description": "描述5",
"isRootUser": false
},
{
"id": "0591a6fa-7dda-40f2-955c-d8d7e0bf57b7",
"accountId": "6c60e590-5629-40b3-81fa-15ca04d9a8af",
"createdAt": 1548661485856,
"name": "lkx-06",
"email": "user06@inspur.com",
"phone": "110",
"description": "描述6",
"isRootUser": false
}
]
返回值
请参考通用请求返回值
错误码
请参考错误码
查询指定策略可关联的用户组
描述
- 当前账号下的用户组
- 未与当前策略直接关联
URI
GET /auth/v1/policies/{policyId}/available-user-groups
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
policyId | path | String | 是 | 策略ID |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
id | body | String | 是 | 用户组ID |
name | body | String | 是 | 用户组名 |
description | body | String | 否 | 用户组描述 |
accountId | body | String | 是 | 账户ID |
createdAt | body | LONG | 是 | 创建时间 |
示例
查询ID为"8ac834e5680d6cd801680de164ee0004"的策略可关联的用户组。
请求url为:GET /auth/v1/policies/8ac834e5680d6cd801680de164ee0004/available-user-groups
响应示例
[
{
"id": "438723e1-a974-4af7-b11a-4130c1948874",
"name": "glkx-02",
"description": "描述",
"createdAt": 1548661860782,
"accountId": "6c60e590-5629-40b3-81fa-15ca04d9a8af"
},
{
"id": "53f1f63b-472d-4167-9aae-9dd7dd92b49c",
"name": "glkx-03",
"description": "描述",
"createdAt": 1548661863905,
"accountId": "6c60e590-5629-40b3-81fa-15ca04d9a8af"
}
]
返回值
请参考通用请求返回值
错误码
请参考错误码
查询指定策略已关联的用户
描述
- 当前账号下的子用户
- 与当前策略直接关联
URI
GET /auth/v1/policies/{policyId}/users
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
policyId | path | String | 是 | 策略ID |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
id | body | String | 是 | 用户ID |
name | body | String | 是 | 用户名 |
body | String | 否 | 用户邮箱 | |
phone | body | String | 否 | 用户电话 |
description | body | String | 否 | 用户描述 |
accountId | body | String | 是 | 账户ID |
isRootUser | body | Boolean | 是 | 是否根用户 |
createdAt | body | LONG | 是 | 创建时间 |
refrenceId | body | String | 是 | 关联ID |
示例
查询ID为"8ac834e5680d6cd801680de164ee0004"的策略已关联的用户。
请求url为:GET /auth/v1/policies/8ac834e5680d6cd801680de164ee0004/users
响应示例
[
{
"id": "56ad2c65-bcfc-4050-875f-db8dfdf1df2e",
"accountId": "6c60e590-5629-40b3-81fa-15ca04d9a8af",
"createdAt": 1548663892895,
"name": "lkx-01",
"email": "user01@inspur.com",
"phone": "110",
"description": "描述1",
"refrenceId": "8ac834e568e62b050168e62d9c030000",
"isRootUser": false
}
]
返回值
请参考通用请求返回值
错误码
请参考错误码
查询指定策略已关联的用户组
描述
- 当前账号下的用户组
- 与当前策略直接关联
URI
GET /auth/v1/policies/{policyId}/user-groups
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
policyId | path | String | 是 | 策略ID |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
id | body | String | 是 | 用户组ID |
name | body | String | 是 | 用户组名 |
description | body | String | 否 | 用户组描述 |
accountId | body | String | 是 | 账户ID |
createdAt | body | LONG | 是 | 创建时间 |
refrenceId | body | String | 是 | 关联ID |
示例
查询ID为"8ac834e5680d6cd801680de164ee0004"的策略已关联的用户组。
请求url为:GET /auth/v1/policies/8ac834e5680d6cd801680de164ee0004/user-groups
响应示例
[
{
"id": "438723e1-a974-4af7-b11a-4130c1948874",
"name": "glkx-04",
"description": "描述",
"createdAt": 1548661860782,
"accountId": "6c60e590-5629-40b3-81fa-15ca04d9a8af",
"refrenceId": "8ac834e568e62b050168e62d9c030000"
},
{
"id": "53f1f63b-472d-4167-9aae-9dd7dd92b49c",
"name": "glkx-05",
"description": "描述",
"createdAt": 1548661863905,
"accountId": "6c60e590-5629-40b3-81fa-15ca04d9a8af",
"refrenceId": "8ac834e568e62b050168e62d9c030000"
}
]
返回值
请参考通用请求返回值
错误码
请参考错误码
为指定策略关联用户/组
描述
- 将用户或用户组与给定策略关联,即授权
URI
POST /auth/v1/policies/{policyId}/action/attach-objects
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
policyId | path | String | 是 | 策略ID |
userIds | body | Array | 否 | 用户ID数组 |
userGroupIds | body | Array | 否 | 用户组ID数组 |
返回参数
无
示例
为ID为"8ac834e5680d6cd801680de164ee0004"的策略关联的用户/组。
请求url为:POST /auth/v1/policies/8ac834e5680d6cd801680de164ee0004/action/attach-objects
请求示例
{
"userIds": [
"userId01",
"userId02"
],
"userGroupIds": [
"groupId01",
"groupId02"
]
}
返回值
请参考通用请求返回值
错误码
请参考错误码
统一授权
描述
- 为用户、用户组授权统一接口,可授权多个策略
URI
POST /auth/v1/authorizations
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
userIds | body | Array | 否 | 要授权的用户ID列表 |
groupIds | body | Array | 否 | 要授权的用户组ID列表 |
policyIds | body | Array | 是 | 要授权的策略ID列表 |
返回参数
无
示例
将ID为"8ac834e56ad40e53016ad4124aa80000"和"8a8186d76abeea4b016ac4bee39c001f"的策略授权给ID为"a98806cf-dcd4-4caf-ab4c-f0e67f85cf6a"和"fe026176-65f7-48f3-87a7-963f032de919"的用户和ID为"638331ce-e64c-4d62-a4f0-8b11252378aa"和"c3e42d41-d38d-45b4-8630-a09412c542eb"的用户组。
请求url为:POST /auth/v1/authorizations
请求示例
content-type:application/json;
{
"policyIds": [
"8a8186d76abeea4b016ac4bee39c001f",
"8ac834e56ad40e53016ad4124aa80000"
],
"userIds":[
"a98806cf-dcd4-4caf-ab4c-f0e67f85cf6a",
"fe026176-65f7-48f3-87a7-963f032de919"
],
"groupIds":[
"638331ce-e64c-4d62-a4f0-8b11252378aa", "c3e42d41-d38d-45b4-8630-a09412c542eb"
]
}
返回值
请参考通用请求返回值
错误码
请参考错误码
权限回收
描述
- 回收权限,即解除策略与用户/组的关联
- 直接关联,回收时,直接删除关联关系
- 间接关联(用户通过用户组关联),解除用户与用户组的关系(不通过此接口实现)
URI
DELETE /auth/v1/policies/action/detach/{policySubjectId}
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
policySubjectId | path | String | 是 | 策略ID |
返回参数
无
示例
解除为ID为"8ac834e5680d6cd801680de164ee0004"的关联关系。
请求url为:DELETE /auth/v1/policies/action/detach/8ac834e5680d6cd801680de164ee0004
返回值
请参考通用请求返回值
错误码
请参考错误码
用户相关接口
获取用户列表
描述
- 获取当前账户下所有子用户列表
URI
GET /auth/v1/users
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
name | param | String | 否 | 用户名,模糊查询 |
phone | param | String | 否 | 手机号,精确查询 |
param | String | 否 | 邮箱,精确查询 |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
id | body | String | 是 | 用户ID |
name | body | String | 是 | 用户名 |
body | String | 否 | 用户邮箱 | |
phone | body | String | 否 | 用户电话 |
description | body | String | 否 | 用户描述 |
accountId | body | String | 是 | 账户ID |
accountName | body | String | 是 | 账户名 |
isRootUser | body | Boolean | 是 | 是否根用户 |
createdAt | body | LONG | 是 | 创建时间 |
apiAccess | body | String | 是 | 是否允许编程访问 |
consoleAccess | body | String | 是 | 是否允许控制台访问 |
thisLoginTime | body | LONG | 否 | 当前登录时间 |
lastLoginTime | body | LONG | 否 | 上次登录时间 |
isMsgReciever | body | String | 是 | 是否消息接收人 |
resetPwd | body | String | 否 | 用户下次登录是否需要重置密码 |
changePwd | body | String | 否 | 是否允许子用户修改密码 |
示例
查询用户名包含"cloud"的子用户列表,请求url为:GET /auth/v1/users?name=cloud
响应示例
[
{
"id": "56ad2c65-bcfc-4050-875f-db8dfdf1df2e",
"accountId": "6c60e590-5629-40b3-81fa-15ca04d9a8af",
"accountName": "cloud",
"createdAt": 1548663892895,
"name": "cloud-01",
"email": "user01@inspur.com",
"phone": "110",
"description": "描述1",
"apiAccess": "0",
"consoleAccess": "1",
"thisLoginTime": 1550040274357,
"lastLoginTime": 1550040245040,
"isMsgReciever": "1",
"resetPwd": "1",
"changePwd": "1",
"isRootUser": false
},
{
"id": "bdb98a35-5f31-41c4-b3f0-eed4d5c98028",
"accountId": "6c60e590-5629-40b3-81fa-15ca04d9a8af",
"accountName": "cloud",
"createdAt": 1548663893136,
"name": "cloud-02",
"email": "user02@inspur.com",
"phone": "110",
"description": "描述2",
"apiAccess": "1",
"consoleAccess": "1",
"thisLoginTime": 0,
"lastLoginTime": 0,
"isMsgReciever": "1",
"resetPwd": "1",
"changePwd": "1",
"isRootUser": false
}
]
返回值
请参考通用请求返回值
错误码
请参考错误码
获取用户数量
描述
- 获取当前账户下的子用户数量
URI
GET /auth/v1/users/count
请求参数
无
返回参数
位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|
body | Integer | 是 | 策略数量 |
示例
获取当前账户下的子用户数量
请求url为:GET /auth/v1/users/count
响应示例
6
返回值
请参考通用请求返回值
错误码
请参考错误码
创建用户
描述
- 在当前账户下创建子用户,可批量
URI
POST /auth/v1/users
请求参数
content-type:application/json;
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
name | body | String | 是 | 用户名 |
password | body | String | 是 | 密码 |
receiveEmail | body | String | 否 | 用户邮箱 |
receivePhone | body | String | 否 | 用户电话 |
description | body | String | 否 | 用户描述 |
apiAccess | body | String | 是 | 是否允许编程访问 |
consoleAccess | body | String | 是 | 是否允许控制台访问 |
isMsgReciever | body | String | 是 | 是否消息接收人 |
resetPwd | body | String | 否 | 用户下次登录是否需要重置密码 |
changePwd | body | String | 否 | 是否允许子用户修改密码 |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
error | body | String | 否 | 错误信息,当前支持"excess"即用户数量超额 |
result | body | Boolean | 否 | 创建结果,所有用户均新建成功为true,否则为false(未超额时返回) |
results | body | JSONArray | 否 | 各用户创建结果集(未超额时返回) |
result | results | Boolean | 是 | 创建结果 |
userId | results | String | 是 | 用户ID |
name | results | String | 是 | 用户名 |
password | results | String | 是 | 密码 |
error | results | String | 否 | 失败原因,创建失败时返回 |
secretId | results | String | 否 | 密钥ID,允许编程访问时返回 |
secretKey | results | String | 否 | 密钥KEY,允许编程访问时返回 |
示例
在当前账户下创建用户名为cloud-01和cloud-02的子用户。
请求示例
content-type:application/json; 请求url为:POST /auth/v1/users
[
{
"name": "cloud-01",
"password": "123456a?",
"receiveEmail": "user01@inspur.com",
"receivePhone": "110",
"description": "描述",
"apiAccess": "1",
"consoleAccess": "1",
"isMsgReciever": "1",
"resetPwd": "1",
"changePwd": "1"
},
{
"name": "cloud-02",
"password": "123456a?",
"receiveEmail": "user02@inspur.com",
"receivePhone": "110",
"description": "描述",
"apiAccess": "1",
"consoleAccess": "1",
"isMsgReciever": "1",
"resetPwd": "1",
"changePwd": "1"
}
]
响应示例
{
"result": true,
"results": [
{
"result": true,
"password": "123456a?",
"secretKey": "ODUzNWU3N2QtYWY0Ny00MDc4LTgzMGYtYWNkMjFiMDY1MThl",
"userId": "b80083f4-9e84-458b-8cab-d860e23539a0",
"name": "cloud-01",
"secretId": "ODI3NTNlNTUtZmVkZS00MDZkLTk0YjUtYzQ3YjA4ZGMyYmJi"
},
{
"result": true,
"password": "123456a?",
"secretKey": "OTdlY2I4NjMtNGE0MC00NzA1LTllYTEtOTBhYTFhZmNmYzY1",
"userId": "b80083f4-9e84-458b-8cab-d860e23539a0",
"name": "cloud-02",
"secretId": "OGFiY2IzYzEtMzdiMS00NWM5LWJkMTgtYWViNzcwYzBmZGVk"
}
]
}
超额响应示例
{
"error": "excess"
}
返回值
请参考通用请求返回值
错误码
请参考错误码
获取用户信息
描述
- 根据用户Id获取指定的用户信息
URI
GET /auth/v1/users/{userId}
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
userId | path | String | 是 | 用户ID |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
id | body | String | 是 | 用户ID |
name | body | String | 是 | 用户名 |
body | String | 否 | 用户邮箱 | |
phone | body | String | 否 | 用户电话 |
description | body | String | 否 | 用户描述 |
accountId | body | String | 是 | 账户ID |
accountName | body | String | 是 | 账户名 |
isRootUser | body | Boolean | 是 | 是否根用户 |
createdAt | body | LONG | 是 | 创建时间 |
apiAccess | body | String | 是 | 是否允许编程访问 |
consoleAccess | body | String | 是 | 是否允许控制台访问 |
thisLoginTime | body | LONG | 否 | 当前登录时间 |
lastLoginTime | body | LONG | 否 | 上次登录时间 |
isMsgReciever | body | String | 是 | 是否消息接收人 |
resetPwd | body | String | 否 | 用户下次登录是否需要重置密码 |
changePwd | body | String | 否 | 是否允许子用户修改密码 |
示例
获取ID为a98806cf-dcd4-4caf-ab4c-f0e67f85cf6a的用户,请求url为:GET /auth/v1/users/a98806cf-dcd4-4caf-ab4c-f0e67f85cf6a
响应示例
{
"id": "a98806cf-dcd4-4caf-ab4c-f0e67f85cf6a",
"accountId": "6c60e590-5629-40b3-81fa-15ca04d9a8af",
"accountName": "lkx",
"createdAt": 1548663934200,
"name": "cloud-04",
"email": "user04@inspur.com",
"phone": "110",
"description": "描述4",
"apiAccess": "1",
"consoleAccess": "1",
"thisLoginTime": 0,
"lastLoginTime": 0,
"isMsgReciever": "1",
"resetPwd": "1",
"changePwd": "1",
"isRootUser": false
}
返回值
请参考通用请求返回值
错误码
请参考错误码
更新用户
描述
- 根据用户ID更新指定用户信息
URI
PUT /auth/v1/users/{userId}
请求参数
content-type:application/json;
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
userId | path | String | 是 | 用户ID |
body | String | 否 | 用户邮箱 | |
phone | body | String | 否 | 用户电话 |
description | body | String | 否 | 用户描述 |
apiAccess | body | String | 否 | 是否允许编程访问 |
consoleAccess | body | String | 否 | 是否允许控制台访问 |
isMsgReciever | body | String | 否 | 是否消息接收人 |
resetPwd | body | String | 否 | 用户下次登录是否需要重置密码 |
changePwd | body | String | 否 | 是否允许子用户修改密码 |
返回参数
无
示例
更新ID为"a98806cf-dcd4-4caf-ab4c-f0e67f85cf6a"的用户信息。 请求url为:PUT /auth/v1/users/a98806cf-dcd4-4caf-ab4c-f0e67f85cf6a
请求示例
content-type:application/json;
{
"email": "user03@inspur.com",
"phone": "110",
"description": "描述3",
"apiAccess": "",
"consoleAccess": "1",
"password": "123456",
"isMsgReciever": "1",
"resetPwd": "1",
"changePwd": "0"
}
返回值
请参考通用请求返回值
错误码
请参考错误码
修改密码
描述
- 根据用户ID修改用户密码
URI
PUT /auth/v1/users/{userId}/action/changePwd
请求参数
content-type:application/json;
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
userId | path | String | 是 | 用户ID |
accountName | body | String | 是 | 主账户名 |
userName | body | String | 是 | 子用户名 |
oldPwd | body | String | 是 | 旧密码 |
newPwd | body | String | 是 | 新密码 |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
error | body | String | 否 | 错误信息 |
示例
将ID为"a98806cf-dcd4-4caf-ab4c-f0e67f85cf6a"的用户的密码由123456修改为123456a?。 请求url为:PUT /auth/v1/users/a98806cf-dcd4-4caf-ab4c-f0e67f85cf6a/action/changePwd
请求示例
content-type:application/json;
{
"accountName": "lkx",
"userName": "lkx-08",
"oldPwd": "123456",
"newPwd": "123456a?"
}
响应示例
{
"error": "unauthorized"
}
返回值
请参考通用请求返回值
错误码
请参考错误码
删除用户
描述
- 根据用户ID,删除指定用户
- 可批量,多个用逗号分隔
URI
DELETE /auth/v1/users/{userIds}
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
userIds | path | String | 是 | 用户ID,多个用逗号分隔 |
返回参数
无
示例
假设需要删除ID为"a98806cf-dcd4-4caf-ab4c-f0e67f85cf6a"和"0591a6fa-7dda-40f2-955c-d8d7e0bf57b7"的用户。
请求url为:DELETE /auth/v1/users/a98806cf-dcd4-4caf-ab4c-f0e67f85cf6a,0591a6fa-7dda-40f2-955c-d8d7e0bf57b7
返回值
请参考通用请求返回值
错误码
请参考错误码
查询指定用户可授权的策略
描述
- 所有策略排除掉已授权的策略
URI
GET /auth/v1/users/{userId}/available-policies
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
userId | path | String | 是 | 用户ID |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
id | body | String | 是 | 策略ID |
name | body | String | 是 | 策略编码 |
displayName | body | String | 是 | 策略名称 |
description | body | String | 否 | 策略描述 |
policyContent | body | String | 是 | 策略内容 |
policyType | body | String | 是 | 策略类型 |
accountId | body | String | 是 | 账户ID |
createdAt | body | String | 是 | 创建时间 |
updatedAt | body | String | 否 | 更新时间 |
deletedAt | body | String | 否 | 删除时间 |
isDeleted | body | String | 是 | 是否已删除 |
示例
查询ID为"a98806cf-dcd4-4caf-ab4c-f0e67f85cf6a"的用户可授权的策略。
请求url为:GET /auth/v1/users/a98806cf-dcd4-4caf-ab4c-f0e67f85cf6a/available-policies
响应示例
[
{
"id": "8ac834e567c5cf330167cfbbedd80001",
"name": "createCloudServer",
"displayName": "云服务器新增实例权限",
"description": "该策略允许您对云服务器进行增加实例",
"policyContent": "{\"effect\":\"allow\",\"description\":\"描述\",\"resources\":[\"iop:cvm:default:3d078441-aac8-402c-b0b8-b7fea3992a11:cloudServer\",\"iop:cvm:default:3d078441-aac8-402c-b0b8-b7fea3992a11:cloudServer\\/<.*>\"],\"conditions\":{\"account_resource\":{\"options\":{\"key\":\"account_user\"},\"type\":\"ContextEqualCondition\"}},\"actions\":[\"cvm:createCloudServer\"]}",
"policyType": "custom",
"isDeleted": "0",
"createdAt": "2018-12-21 15:47:39.0",
"updatedAt": null,
"deletedAt": null,
"accountId": "55e0de8f-877c-49c2-9ad5-dd9257ca682e"
},
{
"id": "8ac834e567e3424c0167e343a3880000",
"name": "startCloudServer",
"displayName": "云服务器实例开机权限",
"description": "该策略允许您对所有云服务器实例进行开机",
"policyContent": "{\"effect\":\"allow\",\"description\":\"描述\",\"resources\":[\"iop:cvm:default:3d078441-aac8-402c-b0b8-b7fea3992a11:cloudServer/<.*>\"],\"conditions\":{\"account_resource\":{\"options\":{\"key\":\"account_user\"},\"type\":\"ContextEqualCondition\"}},\"actions\":[\"cvm:startCloudServer\"]}",
"policyType": "custom",
"isDeleted": "0",
"createdAt": "2018-12-25 10:48:40.0",
"updatedAt": null,
"deletedAt": null,
"accountId": "c2f103b6-e78f-4fee-8c2f-1b765c6eb62e",
}
]
返回值
请参考通用请求返回值
错误码
请参考错误码
查询指定用户已授权的策略
描述
- 已与用户关联的策略列表
- 包含直接关联和间接关联的策略
URI
GET /auth/v1/users/{userId}/policies
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
userId | path | String | 是 | 用户ID |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
id | body | String | 是 | 策略ID |
name | body | String | 是 | 策略编码 |
displayName | body | String | 是 | 策略名称 |
description | body | String | 否 | 策略描述 |
policyContent | body | String | 是 | 策略内容 |
policyType | body | String | 是 | 策略类型 |
accountId | body | String | 是 | 账户ID |
createdAt | body | String | 是 | 创建时间 |
updatedAt | body | String | 否 | 更新时间 |
deletedAt | body | String | 否 | 删除时间 |
isDeleted | body | String | 是 | 是否已删除 |
from | body | String | 是 | 关联信息 |
type | from | String | 是 | 关联方式:直接关联、间接关联 |
refrenceId | from | String | 否 | 关联ID |
subjectCreatedAt | from | String | 否 | 关联时间 |
groups | from | Array | 否 | 通过组间接关联时返回 |
id | groups | String | 否 | 组ID |
name | groups | String | 否 | 组名 |
示例
查询ID为"a98806cf-dcd4-4caf-ab4c-f0e67f85cf6a"的用户已授权的策略。
请求url为:GET /auth/v1/users/a98806cf-dcd4-4caf-ab4c-f0e67f85cf6a/policies
响应示例
[
{
"id": "8ac834e567c5cf330167cfbbedd80001",
"name": "createCloudServer",
"displayName": "云服务器新增实例权限",
"description": "该策略允许您对云服务器进行增加实例",
"policyContent": "{\"effect\":\"allow\",\"description\":\"描述\",\"resources\":[\"iop:cvm:default:3d078441-aac8-402c-b0b8-b7fea3992a11:cloudServer\",\"iop:cvm:default:3d078441-aac8-402c-b0b8-b7fea3992a11:cloudServer\\/<.*>\"],\"conditions\":{\"account_resource\":{\"options\":{\"key\":\"account_user\"},\"type\":\"ContextEqualCondition\"}},\"actions\":[\"cvm:createCloudServer\"]}",
"policyType": "custom",
"isDeleted": "0",
"createdAt": "2018-12-21 15:47:39.0",
"updatedAt": null,
"deletedAt": null,
"accountId": "55e0de8f-877c-49c2-9ad5-dd9257ca682e",
"from": {
"type": "direct",
"refrenceId": "8ac834e568e62b050168e62d9c030000",
"subjectCreatedAt": "2019-02-13 17:26:15.0"
}
},
{
"id": "8ac834e567e3424c0167e343a3880000",
"name": "startCloudServer",
"displayName": "云服务器实例开机权限",
"description": "该策略允许您对所有云服务器实例进行开机",
"policyContent": "{\"effect\":\"allow\",\"description\":\"描述\",\"resources\":[\"iop:cvm:default:3d078441-aac8-402c-b0b8-b7fea3992a11:cloudServer/<.*>\"],\"conditions\":{\"account_resource\":{\"options\":{\"key\":\"account_user\"},\"type\":\"ContextEqualCondition\"}},\"actions\":[\"cvm:startCloudServer\"]}",
"policyType": "custom",
"isDeleted": "0",
"createdAt": "2018-12-25 10:48:40.0",
"updatedAt": null,
"deletedAt": null,
"accountId": "c2f103b6-e78f-4fee-8c2f-1b765c6eb62e",,
"from": {
"type": "direct",
"subjectCreatedAt": "2019-02-13 17:26:15.0",
"groups": [
{
"id": "8ac834e568e62b050168e62d9c030000",
"name": "group-01"
}
]
}
}
]
返回值
请参考通用请求返回值
错误码
请参考错误码
查询指定用户可加入的用户组
描述
- 当前账户下所有的用户组,排除掉已经加入的用户组
URI
GET /auth/v1/users/{userId}/available-user-groups
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
userId | path | String | 是 | 用户ID |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
id | body | String | 是 | 用户组ID |
name | body | String | 是 | 用户组名 |
description | body | String | 否 | 用户组描述 |
示例
查询ID为"a98806cf-dcd4-4caf-ab4c-f0e67f85cf6a"的用户可加入的用户组。
请求url为:GET /auth/v1/users/a98806cf-dcd4-4caf-ab4c-f0e67f85cf6a/available-user-groups
响应示例
[
{
"name": "glkx-01",
"description": "描述",
"id": "1384c942-36f7-4c73-b002-f1bfdd85c4b5"
},
{
"name": "glkx-02",
"description": "描述",
"id": "438723e1-a974-4af7-b11a-4130c1948874"
}
]
返回值
请参考通用请求返回值
错误码
请参考错误码
查询指定用户已加入的用户组
描述
- 查看指定用户已加入的用户组
URI
GET /auth/v1/users/{userId}/user-groups
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
userId | path | String | 是 | 用户ID |
includePolicies | params | String | 是 | 用户ID |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
id | body | String | 是 | 用户组ID |
name | body | String | 是 | 用户组名 |
description | body | String | 否 | 用户组描述 |
policies | body | Array | 否 | 通过用户组关联的策略 |
id | policies | String | 否 | 策略ID |
name | policies | String | 否 | 策略名称 |
示例
查询ID为"a98806cf-dcd4-4caf-ab4c-f0e67f85cf6a"的用户已加入的用户组。
请求url为:GET /auth/v1/users/a98806cf-dcd4-4caf-ab4c-f0e67f85cf6a/user-groups?includePolicies=true
响应示例
[
{
"name": "glkx-01",
"description": "描述",
"id": "1384c942-36f7-4c73-b002-f1bfdd85c4b5",
"policies": [
{
"name": "createCloudServer",
"id": "8ac834e567c5cf330167cfbbedd80001"
},
{
"name": "startCloudServer",
"id": "8ac834e567e3424c0167e343a3880000"
}
]
},
{
"name": "glkx-02",
"description": "描述",
"id": "438723e1-a974-4af7-b11a-4130c1948874"
}
]
返回值
请参考通用请求返回值
错误码
请参考错误码
获取MFA注册用信息
描述
- 获取MFA注册用信息
URI
GET /auth/v1/users/{userId}/action/get-totp-register-info
请求参数
content-type:application/json;
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
userId | path | String | 是 | 用户ID |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
totpSecret | body | String | 是 | 密钥 |
totpSecretEncoded | body | String | 是 | 密钥,用于绑定TOTP时手工输入 |
totpSecretQrCode | body | String | 是 | 密钥,用于二维码展示 |
示例
请求url为:GET /auth/v1/users/5506f164-59c0-4233-ab3b-42658419b6bc/action/get-totp-register-info
响应示例
{
"totpSecret": "nwfP8v57ocD8lGWNRKni",
"totpSecretEncoded": "NZ3W MUBY OY2T O33D IQ4G YR2X JZJE W3TJ",
"totpSecretQrCode": "iVBORw0KGgoAAAANSUhEUgAAAPYAAAD2AQAAAADNaUdlAAACiUlEQVR42u2ZTa6jQAyEjViw5Ah9k3AxpEbKxchN+ghZsojwVFXzAi8jzW7UXiSLiPCxMG27/BPzf35e9uVf/n/508w6X8xu1hez8e7DbjNuWo7Bs/vj2RdfbU424fFtes5JIASfbXi4g4/usHo238dXsi4Sf/YO03v6fIH9Ho3j/tbhJ4JgToNOOgyX/zOOdjwewuv8FR8NOfMHN3T3/fWRXw35oTRJ+aPU0XF/6FM7DvvhcITmapZw0rR8vJftNsbgTBhcU39ysRtTG0Fqw/v9GnNk9Vb1e1xgv98L/J+Lh+FGr/dFIomr7DS9XsXgrH9Oh6P0MQjkegVpBM6jpa1IctTnCTfg/6xDjsJdCb3b8RDCAUo5nfY35dTqHfktg1lVisrhmf/t+WbMahhchhVJJNOv9rfllgYVwZWqs/4E6bCPQbgKypLYtbI/xPnW/PYgHFq4w2pnV711td152en/9nxjr4ADXVLVn8nvTk0KwjmQWJJSsv/SSdtw6c+achY8RGXh/KSiV4wP+Vu/G3M6HPrDIIDX63xiH/NTY/7uGtBpaz7B1dZF4aasdgYp5+Ojk7UpCFeusKAYiwxfZ+uu9aU1Z31B11pHOw5RRUr5q/405er/5XqWlhH+50Ma92Jw2rqwCPZFqmi3+hI5Bs9suFBf2DpQeo6Z73HR96ZcCxna77XJcTURl/hszFGf1b/SfkgjisyNM2gUrg+7ml36gyTXasYmj8Hr/iOrv1GnWPN78ChcqV23RiYRV+tw2t+aH/tBFumj/nU/mhSJ19aVmxpKd123BuIMTdMkUPerpz625tpfmnF/5GoNFZqX/G/MlT9SnVzrn3ET8vv/kYb8+//Vl4flfwA26ZKUg1Dl7QAAAABJRU5ErkJggg=="
}
返回值
请参考通用请求返回值
错误码
请参考错误码
为用户绑定MFA
描述
- 为用户绑定MFA
URI
POST /auth/v1/users/{userId}/action/bind-totp
请求参数
content-type:application/json;
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
userId | path | String | 是 | 用户ID |
totpSecret | body | String | 是 | 密钥,从get-totp-register-info接口获取 |
totp | path | String | 是 | 鉴权码 |
返回参数
无
示例
请求url为:POST /auth/v1/users/5506f164-59c0-4233-ab3b-42658419b6bc/action/bind-totp
请求示例
{
"totpSecret":"gAuSkeJcaq5hyTb39Wql",
"totp":"971601"
}
返回值
请参考通用请求返回值
错误码
请参考错误码
为用户解除MFA
描述
- 为用户解除MFA
URI
PUT /auth/v1/users/{userId}/action/remove-totp?totp={totp}
请求参数
content-type:application/json;
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
userId | path | String | 是 | 用户ID |
totp | param | String | 是 | 鉴权码 |
返回参数
无
示例
请求url为:POST /auth/v1/users/5506f164-59c0-4233-ab3b-42658419b6bc/action/remove-totp?totp=162796
返回值
请参考通用请求返回值
错误码
请参考错误码
判断用户是否有绑定了MFA
描述
- 判断用户是否有绑定了MFA
URI
GET /auth/v1/users/{userId}/action/has-totp
请求参数
content-type:application/json;
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
userId | path | String | 是 | 用户ID |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
hasTotp | body | Boolean | 是 | 是否绑定了MFA |
示例
请求url为:GET /auth/v1/users/5506f164-59c0-4233-ab3b-42658419b6bc/action/has-totp
响应示例
{
"hasTotp": false
}
返回值
请参考通用请求返回值
错误码
请参考错误码
用户组相关接口
获取用户组列表
描述
- 获取当前账户下所有用户组列表
URI
GET /auth/v1/user-groups
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
name | path | String | 否 | 用户组名,模糊查询 |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
id | body | String | 是 | 用户组ID |
name | body | String | 是 | 用户组名 |
description | body | String | 否 | 用户组描述 |
accountId | body | String | 是 | 账户ID |
createdAt | body | LONG | 是 | 创建时间 |
示例
查询用户名包含"cloud"的用户组列表,请求url为:GET /auth/v1/user-groups?name=cloud
响应示例
[
{
"id": "56ad2c65-bcfc-4050-875f-db8dfdf1df2e",
"accountId": "6c60e590-5629-40b3-81fa-15ca04d9a8af",
"createdAt": 1548663892895,
"name": "cloud-g01",
"description": "描述1"
},
{
"id": "bdb98a35-5f31-41c4-b3f0-eed4d5c98028",
"accountId": "6c60e590-5629-40b3-81fa-15ca04d9a8af",
"createdAt": 1548663893136,
"name": "cloud-g02",
"description": "描述2"
}
]
返回值
请参考通用请求返回值
错误码
请参考错误码
获取用户组数量
描述
- 获取当前账户下的用户组数量
URI
GET /auth/v1/user-groups/count
请求参数
无
返回参数
位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|
body | Integer | 是 | 策略数量 |
示例
获取当前账户下的用户组数量
请求url为:GET /auth/v1/user-groups/count
响应示例
6
返回值
请参考通用请求返回值
错误码
请参考错误码
新建用户组
描述
- 在当前账户下创建一个用户组
URI
POST /auth/v1/user-groups
请求参数
content-type:application/json;
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
name | body | String | 是 | 用户组名 |
description | body | String | 否 | 用户组描述 |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
error | body | String | 否 | 错误信息,当前支持"excess"即用户数量超额 |
id | body | String | 否 | 用户组ID |
name | body | String | 否 | 用户组名 |
description | body | String | 否 | 用户组描述 |
accountId | body | String | 否 | 账户ID |
createdAt | body | LONG | 否 | 创建时间 |
示例
在当前账户下创建用户组cloud-g01。
请求示例
content-type:application/json; 请求url为:POST /auth/v1/user-groups
{
"name": "cloud-g01",
"description": "描述1"
}
响应示例
{
"id": "56ad2c65-bcfc-4050-875f-db8dfdf1df2e",
"accountId": "6c60e590-5629-40b3-81fa-15ca04d9a8af",
"createdAt": 1548663892895,
"name": "cloud-g01",
"description": "描述1"
}
超额响应示例
{
"error": "excess"
}
返回值
请参考通用请求返回值
错误码
请参考错误码
用户组明细
描述
- 根据用户组Id获取指定的用户组信息
URI
GET /auth/v1/user-groups/{groupId}
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
groupId | path | String | 是 | 用户组ID |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
id | body | String | 是 | 用户组ID |
name | body | String | 是 | 用户组名 |
description | body | String | 否 | 用户组描述 |
accountId | body | String | 是 | 账户ID |
createdAt | body | LONG | 是 | 创建时间 |
示例
获取ID为438723e1-a974-4af7-b11a-4130c1948874的用户组明细。
请求url为:GET /auth/v1/user-groups/438723e1-a974-4af7-b11a-4130c1948874
响应示例
{
"id": "438723e1-a974-4af7-b11a-4130c1948874",
"name": "cloud-g02",
"description": "描述",
"createdAt": 1548661860782,
"accountId": "6c60e590-5629-40b3-81fa-15ca04d9a8af"
}
返回值
请参考通用请求返回值
错误码
请参考错误码
更新用户组
描述
- 根据用户组ID更新指定用户组信息
URI
PUT /auth/v1/user-groups/{groupId}
请求参数
content-type:application/json;
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
groupId | path | String | 是 | 用户组ID |
name | body | String | 是 | 用户组名 |
description | body | String | 否 | 用户组描述 |
返回参数
无
示例
更新ID为"438723e1-a974-4af7-b11a-4130c1948874"的用户组的名称为"cloud-g03 请求url为:PUT /auth/v1/user-groups/438723e1-a974-4af7-b11a-4130c1948874
请求示例
content-type:application/json;
{
"name": "cloud-g03",
"description": ""
}
返回值
请参考通用请求返回值
错误码
请参考错误码
删除用户组
描述
- 根据用户组ID,删除用户组,多个用逗号分隔
URI
DELETE /auth/v1/user-groups/{groupIds}
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
groupIds | path | String | 是 | 用户组ID,多个用逗号分隔 |
返回参数
无
示例
删除ID为"3325e637-d383-438c-b16e-1b281e9ff5b5","8ebf7cd7-1c52-4acd-8282-e13a274860f6"的用户组。
请求url为:DELETE /auth/v1/user-groups/3325e637-d383-438c-b16e-1b281e9ff5b5,8ebf7cd7-1c52-4acd-8282-e13a274860f6
返回值
请参考通用请求返回值
错误码
请参考错误码
查询指定用户组已关联的用户
描述
- 查询指定用户组已关联的用户
URI
GET /auth/v1/user-groups/{groupId}/users
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
groupId | path | String | 是 | 用户组ID |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
id | body | String | 是 | 用户ID |
name | body | String | 是 | 用户名 |
body | String | 否 | 用户邮箱 | |
phone | body | String | 否 | 用户电话 |
description | body | String | 否 | 用户描述 |
accountId | body | String | 是 | 账户ID |
accountName | body | String | 是 | 账户名 |
isRootUser | body | Boolean | 是 | 是否根用户 |
createdAt | body | LONG | 是 | 创建时间 |
示例
查询ID为"438723e1-a974-4af7-b11a-4130c1948874"的用户组已关联的用户。
请求url为:GET /auth/v1/user-groups/438723e1-a974-4af7-b11a-4130c1948874/users
响应示例
[
{
"id": "56ad2c65-bcfc-4050-875f-db8dfdf1df2e",
"accountId": "6c60e590-5629-40b3-81fa-15ca04d9a8af",
"accountName": "cloud",
"creatorId": null,
"createdAt": 1548663892895,
"name": "cloud-01",
"email": "user01@inspur.com",
"phone": "110",
"description": "描述1",
"isRootUser": false
},
{
"id": "bdb98a35-5f31-41c4-b3f0-eed4d5c98028",
"accountId": "6c60e590-5629-40b3-81fa-15ca04d9a8af",
"accountName": "cloud",
"creatorId": null,
"createdAt": 1548663893136,
"name": "cloud-02",
"email": "user02@inspur.com",
"phone": "110",
"description": "描述2",
"isRootUser": false
}
]
返回值
请参考通用请求返回值
错误码
请参考错误码
查询指定用户组可关联的用户
描述
- 当前账户下的所有子用户,排除掉已关联的
URI
GET /auth/v1/user-groups/{groupId}/available-users
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
groupId | path | String | 是 | 用户组ID |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
id | body | String | 是 | 用户ID |
name | body | String | 是 | 用户名 |
body | String | 否 | 用户邮箱 | |
phone | body | String | 否 | 用户电话 |
description | body | String | 否 | 用户描述 |
accountId | body | String | 是 | 账户ID |
accountName | body | String | 是 | 账户名 |
isRootUser | body | Boolean | 是 | 是否根用户 |
createdAt | body | LONG | 是 | 创建时间 |
示例
查询ID为"438723e1-a974-4af7-b11a-4130c1948874"的用户组可关联的用户。
请求url为:GET /auth/v1/user-groups/438723e1-a974-4af7-b11a-4130c1948874/available-users
响应示例
[
{
"id": "56ad2c65-bcfc-4050-875f-db8dfdf1df2e",
"accountId": "6c60e590-5629-40b3-81fa-15ca04d9a8af",
"accountName": "cloud",
"creatorId": null,
"createdAt": 1548663892895,
"name": "cloud-03",
"email": "user03@inspur.com",
"phone": "110",
"description": "描述3",
"isRootUser": false
},
{
"id": "bdb98a35-5f31-41c4-b3f0-eed4d5c98028",
"accountId": "6c60e590-5629-40b3-81fa-15ca04d9a8af",
"accountName": "cloud",
"creatorId": null,
"createdAt": 1548663893136,
"name": "cloud-04",
"email": "user04@inspur.com",
"phone": "110",
"description": "描述4",
"isRootUser": false
}
]
返回值
请参考通用请求返回值
错误码
请参考错误码
查询指定用户组已关联的策略
描述
- 查询已与用户组关联的策略列表
URI
GET /auth/v1/user-groups/{groupId}/policies
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
groupId | path | String | 是 | 用户组ID |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
id | body | String | 是 | 策略ID |
name | body | String | 是 | 策略编码 |
displayName | body | String | 是 | 策略名称 |
description | body | String | 否 | 策略描述 |
policyContent | body | String | 是 | 策略内容 |
policyType | body | String | 是 | 策略类型 |
accountId | body | String | 是 | 账户ID |
createdAt | body | String | 是 | 创建时间 |
updatedAt | body | String | 否 | 更新时间 |
deletedAt | body | String | 否 | 删除时间 |
isDeleted | body | String | 是 | 是否已删除 |
from | body | String | 是 | 关联信息 |
type | from | String | 是 | 关联方式:直接关联、间接关联 |
refrenceId | from | String | 否 | 关联ID |
subjectCreatedAt | from | String | 否 | 关联时间 |
示例
查询ID为"438723e1-a974-4af7-b11a-4130c1948874"的用户组已关联的策略。
请求url为:GET /auth/v1/user-groups/438723e1-a974-4af7-b11a-4130c1948874/policies
响应示例
[
{
"id": "8ac834e567c5cf330167cfbbedd80001",
"name": "createCloudServer",
"displayName": "云服务器新增实例权限",
"description": "该策略允许您对云服务器进行增加实例",
"policyContent": "{\"effect\":\"allow\",\"description\":\"描述\",\"resources\":[\"iop:cvm:default:3d078441-aac8-402c-b0b8-b7fea3992a11:cloudServer\",\"iop:cvm:default:3d078441-aac8-402c-b0b8-b7fea3992a11:cloudServer\\/<.*>\"],\"conditions\":{\"account_resource\":{\"options\":{\"key\":\"account_user\"},\"type\":\"ContextEqualCondition\"}},\"actions\":[\"cvm:createCloudServer\"]}",
"policyType": "custom",
"isDeleted": "0",
"createdAt": "2018-12-21 15:47:39.0",
"updatedAt": null,
"deletedAt": null,
"accountId": "55e0de8f-877c-49c2-9ad5-dd9257ca682e",
"from": {
"type": "direct",
"refrenceId": "8ac834e568e62b050168e62d9c030000",
"subjectCreatedAt": "2019-02-13 17:26:15.0"
}
},
{
"id": "8ac834e567e3424c0167e343a3880000",
"name": "startCloudServer",
"displayName": "云服务器实例开机权限",
"description": "该策略允许您对所有云服务器实例进行开机",
"policyContent": "{\"effect\":\"allow\",\"description\":\"描述\",\"resources\":[\"iop:cvm:default:3d078441-aac8-402c-b0b8-b7fea3992a11:cloudServer/<.*>\"],\"conditions\":{\"account_resource\":{\"options\":{\"key\":\"account_user\"},\"type\":\"ContextEqualCondition\"}},\"actions\":[\"cvm:startCloudServer\"]}",
"policyType": "custom",
"isDeleted": "0",
"createdAt": "2018-12-25 10:48:40.0",
"updatedAt": null,
"deletedAt": null,
"accountId": "c2f103b6-e78f-4fee-8c2f-1b765c6eb62e",,
"from": {
"type": "direct",
"refrenceId": "8aee968d68f069f30168f07d9a9a0001",
"subjectCreatedAt": "2019-02-15 17:29:49.0"
}
}
]
返回值
请参考通用请求返回值
错误码
请参考错误码
查询指定用户组可关联的策略
描述
- 所有策略排除掉已关联的策略
URI
GET /auth/v1/groups/{groupId}/available-policies
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
groupId | path | String | 是 | 用户组ID |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
id | body | String | 是 | 策略ID |
name | body | String | 是 | 策略编码 |
displayName | body | String | 是 | 策略名称 |
description | body | String | 否 | 策略描述 |
policyContent | body | String | 是 | 策略内容 |
policyType | body | String | 是 | 策略类型 |
accountId | body | String | 是 | 账户ID |
createdAt | body | String | 是 | 创建时间 |
updatedAt | body | String | 否 | 更新时间 |
deletedAt | body | String | 否 | 删除时间 |
isDeleted | body | String | 是 | 是否已删除 |
示例
查询ID为"438723e1-a974-4af7-b11a-4130c1948874"的用户组可关联的策略。
请求url为:GET /auth/v1/groups/438723e1-a974-4af7-b11a-4130c1948874/available-policies
响应示例
[
{
"id": "8ac834e567c5cf330167cfbbedd80001",
"name": "createCloudServer",
"displayName": "云服务器新增实例权限",
"description": "该策略允许您对云服务器进行增加实例",
"policyContent": "{\"effect\":\"allow\",\"description\":\"描述\",\"resources\":[\"iop:cvm:default:3d078441-aac8-402c-b0b8-b7fea3992a11:cloudServer\",\"iop:cvm:default:3d078441-aac8-402c-b0b8-b7fea3992a11:cloudServer\\/<.*>\"],\"conditions\":{\"account_resource\":{\"options\":{\"key\":\"account_user\"},\"type\":\"ContextEqualCondition\"}},\"actions\":[\"cvm:createCloudServer\"]}",
"policyType": "custom",
"isDeleted": "0",
"createdAt": "2018-12-21 15:47:39.0",
"updatedAt": null,
"deletedAt": null,
"accountId": "55e0de8f-877c-49c2-9ad5-dd9257ca682e"
},
{
"id": "8ac834e567e3424c0167e343a3880000",
"name": "startCloudServer",
"displayName": "云服务器实例开机权限",
"description": "该策略允许您对所有云服务器实例进行开机",
"policyContent": "{\"effect\":\"allow\",\"description\":\"描述\",\"resources\":[\"iop:cvm:default:3d078441-aac8-402c-b0b8-b7fea3992a11:cloudServer/<.*>\"],\"conditions\":{\"account_resource\":{\"options\":{\"key\":\"account_user\"},\"type\":\"ContextEqualCondition\"}},\"actions\":[\"cvm:startCloudServer\"]}",
"policyType": "custom",
"isDeleted": "0",
"createdAt": "2018-12-25 10:48:40.0",
"updatedAt": null,
"deletedAt": null,
"accountId": "c2f103b6-e78f-4fee-8c2f-1b765c6eb62e",
}
]
返回值
请参考通用请求返回值
错误码
请参考错误码
添加用户至用户组
描述
- 将用户添加至用户组,可批量
URI
POST /auth/v1/user-group-relationships
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
users | body | Array | 是 | 用户ID列表 |
groups | body | Array | 是 | 用户组ID列表 |
返回参数
无
示例
将ID为"671559b1-e4dd-4723-a176-b9e59199aaad"和"a98806cf-dcd4-4caf-ab4c-f0e67f85cf6a"的用户加入到ID为"438723e1-a974-4af7-b11a-4130c1948874"和"53f1f63b-472d-4167-9aae-9dd7dd92b49c"的用户组中。
请求url为:POST /auth/v1/user-group-relationships
请求示例
{
"users":[
"671559b1-e4dd-4723-a176-b9e59199aaad",
"a98806cf-dcd4-4caf-ab4c-f0e67f85cf6a"
],
"groups":[
"438723e1-a974-4af7-b11a-4130c1948874",
"53f1f63b-472d-4167-9aae-9dd7dd92b49c"
]
}
返回值
请参考通用请求返回值
错误码
请参考错误码
将用户移出用户组
描述
- 将用户移出用户组,可批量
URI
POST /auth/v1/delete-user-group-relationships
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
users | body | Array | 是 | 用户ID列表 |
groups | body | Array | 是 | 用户组ID列表 |
返回参数
无
示例
将ID为"671559b1-e4dd-4723-a176-b9e59199aaad"和"a98806cf-dcd4-4caf-ab4c-f0e67f85cf6a"的用户从ID为"438723e1-a974-4af7-b11a-4130c1948874"和"53f1f63b-472d-4167-9aae-9dd7dd92b49c"的用户组中移除。
请求url为:POST /auth/v1/delete-user-group-relationships
请求示例
{
"users":[
"671559b1-e4dd-4723-a176-b9e59199aaad",
"a98806cf-dcd4-4caf-ab4c-f0e67f85cf6a"
],
"groups":[
"438723e1-a974-4af7-b11a-4130c1948874",
"53f1f63b-472d-4167-9aae-9dd7dd92b49c"
]
}
返回值
请参考通用请求返回值
错误码
请参考错误码
密钥相关接口
查询当前登录用户的密钥对列表
描述
- 查询拥有者为当前登录用户的密钥对列表
URI
GET /auth/v1/secrets
请求参数
无
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
id | body | String | 是 | 密钥对逻辑ID |
secretId | body | String | 是 | 密钥ID |
secretKey | body | String | 是 | 密钥KEY |
description | body | String | 否 | 密钥对描述 |
createdAt | body | LONG | 是 | 创建时间 |
accountId | body | String | 是 | 账户ID |
creator | body | String | 是 | 创建者 |
owner | body | String | 是 | 拥有者 |
enabled | body | String | 是 | 是否生效 |
示例
查询当前用户的密钥对列表,请求url为:GET /auth/v1/secrets
响应示例
[
{
"id": "8ac834e568977b0f0168977fdefc0000",
"secretId": "MjcwYTM4MzctNWZiNS00NmNhLWI3ZjEtYzQ1ODFmZGUxYjJm",
"secretKey": "MWMyM2Y4MWUtNmM2Ny00MDhiLWJiMTAtN2Y4MDBjYTlkZTg1",
"description": null,
"enabled": true,
"createdAt": "2019-01-29T02:46:05Z",
"accountId": "6c60e590-5629-40b3-81fa-15ca04d9a8af",
"creator": "4d891968-a181-46c6-a7cf-824ec0214eac",
"owner": "4d891968-a181-46c6-a7cf-824ec0214eac"
},
{
"id": "8ac834e568987fbe0168988030810000",
"secretId": "ZmFjOWI4MDktMDM1Zi00NTI3LTk0ZDQtNTMwNjQzYjM3YTU2",
"secretKey": "N2VjZDIxOTItNDQzYS00ZTc1LTk5YjAtMGFkZmE0MDVlODZi",
"description": null,
"enabled": true,
"createdAt": "2019-01-29T07:26:04Z",
"accountId": "6c60e590-5629-40b3-81fa-15ca04d9a8af",
"creator": "4d891968-a181-46c6-a7cf-824ec0214eac",
"owner": "4d891968-a181-46c6-a7cf-824ec0214eac"
}
]
返回值
请参考通用请求返回值
错误码
请参考错误码
查询指定用户的密钥对列表
描述
- 查询指定用户的密钥对列表
- 主账号查询子账号的密钥对
URI
GET /auth/v1/users/{userId}/secrets
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
userId | path | String | 是 | 用户ID |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
id | body | String | 是 | 密钥对逻辑ID |
secretId | body | String | 是 | 密钥ID |
secretKey | body | String | 是 | 密钥KEY |
description | body | String | 否 | 密钥对描述 |
createdAt | body | LONG | 是 | 创建时间 |
accountId | body | String | 是 | 账户ID |
creator | body | String | 是 | 创建者 |
owner | body | String | 是 | 拥有者 |
enabled | body | String | 是 | 是否生效 |
示例
获取ID为"2f7d45c1-c53e-49aa-9c2b-61cc6e64cb09"用户的密钥对列表
请求url为:GET /auth/v1/users/2f7d45c1-c53e-49aa-9c2b-61cc6e64cb09/secrets
响应示例
[
{
"id": "8ac834e568977b0f0168977fdefc0000",
"secretId": "MjcwYTM4MzctNWZiNS00NmNhLWI3ZjEtYzQ1ODFmZGUxYjJm",
"secretKey": "MWMyM2Y4MWUtNmM2Ny00MDhiLWJiMTAtN2Y4MDBjYTlkZTg1",
"description": null,
"enabled": true,
"createdAt": "2019-01-29T02:46:05Z",
"accountId": "6c60e590-5629-40b3-81fa-15ca04d9a8af",
"creator": "6c60e590-5629-40b3-81fa-15ca04d9a8af",
"owner": "2f7d45c1-c53e-49aa-9c2b-61cc6e64cb09"
},
{
"id": "8ac834e568987fbe0168988030810000",
"secretId": "ZmFjOWI4MDktMDM1Zi00NTI3LTk0ZDQtNTMwNjQzYjM3YTU2",
"secretKey": "N2VjZDIxOTItNDQzYS00ZTc1LTk5YjAtMGFkZmE0MDVlODZi",
"description": null,
"enabled": true,
"createdAt": "2019-01-29T07:26:04Z",
"accountId": "6c60e590-5629-40b3-81fa-15ca04d9a8af",
"creator": "2f7d45c1-c53e-49aa-9c2b-61cc6e64cb09",
"owner": "2f7d45c1-c53e-49aa-9c2b-61cc6e64cb09"
}
]
返回值
请参考通用请求返回值
错误码
请参考错误码
查询主账号密钥对数量
描述
- 查询当前用户主账号的密钥对数量
URI
GET /auth/v1/secrets/count
请求参数
无
返回参数
位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|
body | Integer | 是 | 密钥对数量 |
示例
查询当前用户主账号的密钥对数量。
请求url为:GET /auth/v1/secrets/count
响应示例
3
返回值
请参考通用请求返回值
错误码
请参考错误码
新建密钥对
描述
- 为指定子用户创建一个密钥对
URI
POST /auth/v1/secrets
请求参数
content-type:application/json;
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
owner | body | String | 是 | 密钥对拥有者 |
description | body | String | 否 | 密钥对描述 |
返回参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
error | body | String | 否 | 错误信息,当前支持"excess"即用户数量超额 |
id | body | String | 否 | 密钥对逻辑ID |
secretId | body | String | 否 | 密钥ID |
secretKey | body | String | 否 | 密钥KEY |
description | body | String | 否 | 密钥对描述 |
createdAt | body | LONG | 否 | 创建时间 |
accountId | body | String | 否 | 账户ID |
creator | body | String | 否 | 创建者 |
owner | body | String | 否 | 拥有者 |
enabled | body | String | 否 | 是否生效 |
示例
为用户2f7d45c1-c53e-49aa-9c2b-61cc6e64cb09创建一个新的密钥对。
请求示例
content-type:application/json; 请求url为:POST /auth/v1/secrets
{
"owner": "2f7d45c1-c53e-49aa-9c2b-61cc6e64cb09",
"description": "描述"
}
响应示例
{
"id": "8ac834e568977b0f0168977fdefc0000",
"secretId": "MjcwYTM4MzctNWZiNS00NmNhLWI3ZjEtYzQ1ODFmZGUxYjJm",
"secretKey": "MWMyM2Y4MWUtNmM2Ny00MDhiLWJiMTAtN2Y4MDBjYTlkZTg1",
"description": "描述",
"enabled": true,
"createdAt": "2019-01-29T02:46:05Z",
"accountId": "6c60e590-5629-40b3-81fa-15ca04d9a8af",
"creator": "6c60e590-5629-40b3-81fa-15ca04d9a8af",
"owner": "2f7d45c1-c53e-49aa-9c2b-61cc6e64cb09"
}
超额响应示例
{
"error": "excess"
}
返回值
请参考通用请求返回值
错误码
请参考错误码
修改密钥对描述
描述
- 根据密钥对ID修改指定密钥对描述
URI
PUT /auth/v1/secrets/{secretId}
请求参数
content-type:application/json;
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
secretId | path | String | 是 | 密钥对ID |
description | body | String | 否 | 密钥对描述 |
返回参数
无
示例
更新ID为"8ac834e568977b0f0168977fdefc0000"的密钥对的描述为"新的描述
请求url为:PUT /auth/v1/secrets/8ac834e568977b0f0168977fdefc0000
请求示例
content-type:application/json;
{
"description": "新的描述"
}
返回值
请参考通用请求返回值
错误码
请参考错误码
启用密钥对
描述
- 将密钥对置为生效
URI
PATCH /auth/v1/secrets/{secretId}/action/enable
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
secretId | path | String | 是 | 密钥对ID |
返回参数
无
示例
启用ID为"8ac834e568977b0f0168977fdefc0000"的密钥对。
请求url为:PATCH /auth/v1/secrets/8ac834e568977b0f0168977fdefc0000/action/enable
返回值
请参考通用请求返回值
错误码
请参考错误码
禁用密钥对
描述
- 将密钥对置为失效
URI
PATCH /auth/v1/secrets/{secretId}/action/disable
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
secretId | path | String | 是 | 密钥对ID |
返回参数
无
示例
禁用ID为"8ac834e568977b0f0168977fdefc0000"的密钥对。
请求url为:PATCH /auth/v1/secrets/8ac834e568977b0f0168977fdefc0000/action/disable
返回值
请参考通用请求返回值
错误码
请参考错误码
删除密钥对
描述
- 根据密钥对ID,删除密钥对
URI
DELETE /auth/v1/secrets/{secretId}
请求参数
名称 | 位置 | 类型 | 是否必须 | 描述 |
---|---|---|---|---|
secretId | path | String | 是 | 密钥对ID |
返回参数
无
示例
删除ID为"8ac834e568977b0f0168977fdefc0000"的密钥对。
请求url为:DELETE /auth/v1/secrets/8ac834e568977b0f0168977fdefc0000
返回值
请参考通用请求返回值
错误码
请参考错误码