华为云用户手册

  • 步骤4:导入metadata文件 URI:POST /v3-ext/OS-FEDERATION/identity_providers/{idp_id}/protocols/{protocol_id}/metadata API文档详情请参见:导入Metadata文件 API Explorer在线调试请参见:导入Metadata文件 请求示例 POST https://iam.myhuaweicloud.com/v3-ext/OS-FEDERATION/identity_providers/{idp_id}/protocols/{protocol_id}/metadata { "domain_id":"d78cbac186b744899480f25bd022....", "metadata":"$metadataContent", "xaccount_type":"" } 响应示例 { "message":"Import metadata successful" }
  • 步骤1:查询用户组列表 URI:GET /v3/groups API文档详情请参见:查询用户组列表 API Explorer在线调试请参见:查询用户组列表 请求示例 GET https://iam.myhuaweicloud.com/v3/groups 响应示例 { "groups":[ { "create_time":1536293929624, "description":"IAMDescription", "domain_id":"d78cbac186b744899480f25bd022....", "id":"5b050baea9db472c88cbae67e8d6....", "links":{ "self":"https://iam.myhuaweicloud.com/v3/groups/5b050baea9db472c88cbae67e8d6...." }, "name":"IAMGroupA" }, { "create_time":1578107542861, "description":"IAMDescription", "domain_id":"d78cbac186b744899480f25bd022....", "id":"07609e7eb200250a3f7dc003cb7a....", "links":{ "self":"https://iam.myhuaweicloud.com/v3/groups/07609e7eb200250a3f7dc003cb7a...." }, "name":"IAMGroupB" } ], "links":{ "self":"https://iam.myhuaweicloud.com/v3/groups" } }
  • 步骤3:查询项目服务中的用户组权限 URI:GET /v3/projects/{project_id}/groups/{group_id}/roles API文档详情请参见:查询项目服务中的用户组权限 API Explorer在线调试请参见:查询项目服务中的用户组权限 请求示例 GET https://iam.myhuaweicloud.com/v3/projects/{project_id}/groups/{group_id}/roles 响应示例 { "links":{ "self":"https://iam.myhuaweicloud.com/v3/projects/065a7c66da0010992ff7c0031e5a..../groups/077d71374b8025173f61c003ea0a..../roles" }, "roles":[ { "catalog":"AOM", "description":"AOM read only", "description_cn":"应用运维管理服务只读权限", "display_name":"AOM Viewer", "flag":"fine_grained", "id":"75cfe22af2b3498d82b655fbb39d....", "links":{ "self":"https://iam.myhuaweicloud.com/v3/roles/75cfe22af2b3498d82b655fbb39d...." }, "name":"system_all_30", "policy":{ "Statement":[ { "Action":[ "aom:*:list", "aom:*:get", "apm:*:list", "apm:*:get" ], "Effect":"Allow" } ], "Version":"1.1" }, "type":"XA" } ] }
  • 步骤1:注册身份提供商 URI:PUT /v3/OS-FEDERATION/identity_providers/{id} API文档详情请参见: 创建身份提供商 API Explorer在线调试请参见:注册身份提供商 请求示例 PUT https://iam.myhuaweicloud.com/v3/OS-FEDERATION/identity_providers/{id} { "identity_provider":{ "description":"Stores ACME identities.", "enabled":true } } 响应示例 { "identity_provider": { "remote_ids": [], "enabled": true, "id": "ACME", "links": { "self": "https://iam.myhuaweicloud.com/v3/OS-FEDERATION/identity_providers/ACME", "protocols": "https://iam.myhuaweicloud.com/v3/OS-FEDERATION/identity_providers/ACME/protocols" }, "description": "Stores ACME identities." }}
  • 步骤4:确定需要审计的权限,查询用户组中的IAM用户,进行安全审计 URI:GET /v3/groups/{group_id}/users API文档详情请参见:管理员查询用户组所包含的IAM用户 API Explorer在线调试请参见:管理员查询用户组所包含的IAM用户 请求示例 GET https://iam.myhuaweicloud.com/v3/groups/{group_id}/users 响应示例 { "links":{ "self":"https://iam.myhuaweicloud.com/v3/groups/07609e7eb200250a3f7dc003cb7a..../users" }, "users":[ { "description":"--", "domain_id":"d78cbac186b744899480f25bd022....", "enabled":true, "id":"07609fb9358010e21f7bc003751c....", "last_project_id":"065a7c66da0010992ff7c0031e5a....", "links":{ "self":"https://iam.myhuaweicloud.com/v3/users/07609fb9358010e21f7bc003751c...." }, "name":"IAMUserA", "pwd_status":true }, { "description":"", "domain_id":"d78cbac186b744899480f25bd022....", "enabled":true, "id":"076837351e80251c1f0fc003afe4....", "last_project_id":"065a7c66da0010992ff7c0031e5a....", "links":{ "self":"https://iam.myhuaweicloud.com/v3/users/076837351e80251c1f0fc003afe4...." }, "name":"IAMUserB", "pwd_status":true } ] }
  • 响应示例 状态码为 200 时: 请求成功。 { "api_acl_policy" : { "allow_ip_ranges" : [ { "ip_range" : "0.0.0.0-255.255.255.255", "description" : "" }, { "ip_range" : "0.0.0.0-255.255.255.255", "description" : "" } ], "allow_address_netmasks" : [ { "address_netmask" : "192.168.0.1/24", "description" : "" }, { "address_netmask" : "192.168.0.1/24", "description" : "" } ] } }
  • 响应参数 表3 响应Body参数 参数 参数类型 描述 api_acl_policy object 接口访问控制策略。 表4 api_acl_policy 参数 参数类型 描述 allow_address_netmasks Array of objects 允许访问的IP地址或网段。 allow_ip_ranges Array of objects 允许访问的IP地址区间。 表5 allow_address_netmasks 参数 参数类型 描述 address_netmask String IP地址或网段,例如:192.168.0.1/24。 description String 描述信息。 表6 allow_ip_ranges 参数 参数类型 描述 ip_range String IP地址区间,例如0.0.0.0-255.255.255.255。 description String 描述信息。
  • 修订记录 发布时间 修改记录 2022-06-20 第四十九次正式发布。 新增章节:查询租户授权信息 2021-11-15 第四十八次正式发布。 新增如下章节: 查询企业项目直接关联用户 查询企业项目直接关联用户的权限 基于用户为企业项目授权 删除企业项目直接关联用户的权限 2021-05-15 第四十七次正式发布。 本次变更说明如下: 新增章节:企业项目管理 2021-02-01 第四十六次正式发布。 以下章节新增参数“access_mode”。 查询IAM用户详情(推荐) 管理员创建IAM用户(推荐) 管理员修改IAM用户信息(推荐) 2021-01-30 第四十五次正式发布。 获取自定义身份代理登录票据新增请求参数“duration_seconds”。 2021-01-21 第四十四次正式发布。 以下章节新增请求参数“page”、“per_page”,新增响应参数“total_number”: 查询权限列表 查询自定义策略列表 2020-11-09 第四十三次正式发布。 优化如下章节: 查询IAM用户详情(推荐) 新增如下章节: 修改IAM用户的登录保护状态信息 绑定MFA设备 解绑MFA设备 创建MFA设备 删除MFA设备 查询用户组的所有项目权限列表 查询用户组是否拥有所有项目指定权限 移除用户组的所有项目服务权限 2020-11-05 第四十二次正式发布。 新增如下章节: 创建OpenID Connect身份提供商配置 修改OpenID Connect身份提供商配置 查询OpenID Connect身份提供商配置 获取联邦认证token(OpenID Connect ID token方式) 获取联邦认证unscoped token(OpenID Connect ID token方式) 2020-08-27 第四十一次正式发布。 优化章节:授权项 2020-08-18 第四十次正式发布。 本次变更说明如下: 优化如下章节: 查询IAM用户详情(推荐) 新增如下章节: 查询项目配额 查询帐号配额 查询IAM用户的MFA绑定信息列表 查询指定IAM用户的MFA绑定信息 查询IAM用户的登录保护状态信息列表 查询指定IAM用户的登录保护状态信息 查询委托下的所有项目服务权限列表 为委托授予所有项目服务权限 检查委托下是否具有所有项目服务权限 移除委托下的所有项目服务权限 安全设置 2020-07-15 第三十九次正式发布。 本次变更说明如下: 优化章节:授权项 2020-07-03 第三十八次正式发布。 本次变更说明如下: 优化章节:授权项 2020-06-19 第三十七次正式发布。 本次变更说明如下: 新增章节:错误码 2020-06-16 第三十六次正式发布。 本次变更说明如下: 优化章节:授权项 2020-06-08 第三十五次正式发布。 本次变更说明如下: 新增API Explorer跳转链接。 2020-05-30 第三十四次正式发布。 本次变更说明如下: 新增如下章节: 企业管理华为云上多租户的联邦认证 对IAM用户的权限进行安全审计 2020-05-21 第三十三次正式发布。 本次变更说明如下: 新增章节:密钥定期自动化轮换。 2020-02-24 第三十二次正式发布。 本次变更说明如下: 以下章节新增参数“policy”: 通过委托获取临时访问密钥和securitytoken 通过token获取临时访问密钥和securitytoken 2020-02-17 第三十一次正式发布。 本次变更说明如下: 优化以下章节内容: 联邦身份认证管理 2020-02-10 第三十次正式发布。 本次变更说明如下: 优化以下章节内容: 委托管理 2020-02-06 第二十九次正式发布。 本次变更说明如下: 优化以下章节内容: 权限管理 自定义策略管理 自定义身份代理 版本信息管理 服务和终端节点 2020-01-23 第二十八次正式发布。 本次变更说明如下: 优化以下章节内容: Token管理 访问密钥管理 区域管理 项目管理 帐号管理 IAM用户管理 用户组管理 2020-01-20 第二十七次正式发布。 本次变更说明如下: 新增如下章节: 为用户组授予所有项目服务权限 授权项 2019-11-01 第二十六次正式发布。 本次变更说明如下: 新增如下章节: 查询IAM用户详情 管理员创建IAM用户(推荐) 修改IAM用户信息(推荐) 管理员修改IAM用户信息(推荐) 2019-09-29 第二十五次正式发布。 本次变更说明如下: 新增如下章节: 自定义身份代理 2019-09-26 第二十四次正式发布。 本次变更说明如下: 获取帐号、IAM用户、项目、用户组、区域、委托的名称和ID中新增通过调用API获取项目ID。 2019-08-15 第二十三次正式发布。 本次变更说明如下: 新增章节:自定义策略管理 调整全文内容:所有接口可以使用全局区域的域名和其他区域的域名调用。 2019-07-12 第二十二次正式发布。 本次变更说明如下: 新增如下章节: 创建永久访问密钥 查询所有永久访问密钥 查询指定永久访问密钥 修改指定永久访问密钥 删除指定永久访问密钥 修改获取帐号、IAM用户、项目、用户组、区域、委托的名称和ID中的内容。 2019-05-07 第二十一次正式发布。 本次变更说明如下: 新增如下章节: 构造请求 认证鉴权 返回结果 2018-12-30 第二十次正式发布。 本次变更说明如下: 新增查询帐号密码强度策略章节。 新增按条件查询帐号密码强度策略章节。 管理员查询IAM用户列表请求体中新增“password_expires_at”查询条件。 查询IAM用户是否在用户组中请求体中新增“password_expires_at”查询条件。 2018-08-14 第十九次正式发布。 本次变更说明如下: 优化目录结构,方便用户查阅文档。 2018-06-29 第十八次正式发布。 本次变更说明如下: 将“相关参数信息获取”内容从“API说明”章节移到“环境准备”章节。 管理员查询IAM用户列表、查询IAM用户详情、查询IAM用户是否在用户组中、管理员创建IAM用户和管理员修改IAM用户信息响应体中新增“password_expires_at”(密码过期时间)字段。 2018-03-23 第十七次正式发布。 本次变更说明如下: 新增获取联邦认证unscoped token(IdP initiated)章节。 新增查询服务目录章节。 2018-02-28 第十六次正式发布。 新增通过token获取临时访问密钥和securitytoken章节。 2017-10-27 第十五次正式发布。 本次变更说明如下: 新增以下章节: 委托管理 获取委托Token 2017-09-24 第十四次正式发布。 本次变更说明如下: 删除查询终端节点列表章节中响应url中的tenant_id。 2017-08-28 第十三次正式发布。 本次变更说明如下: 新增设置项目状态章节。 2017-07-27 第十二次正式发布。 本次变更说明如下: 新增以下章节: 查询区域列表 查询区域详情 查询服务详情 查询终端节点详情 创建项目 修改项目信息 查询指定条件下的项目列表 2017-06-28 第十一次正式发布。 本次变更说明如下: 增加获取委托Token章节。 2017-06-09 第十次正式发布。 本次变更说明如下: 变更以下章节: 查询权限列表 查询权限详情 查询全局服务中的用户组权限 查询项目服务中的用户组权限 为用户组授予项目服务权限 获取IAM用户Token(使用密码) 查询身份提供商列表 查询身份提供商详情 修改SAML身份提供商配置 查询服务列表 2017-4-27 第九次正式发布。 本次变更说明如下: 增加以下章节: 管理员删除IAM用户 移除用户组中的IAM用户 查询用户组详情 查询用户组列表 创建用户组 添加IAM用户到用户组 更新用户组 删除用户组 查询IAM用户是否在用户组中 查询权限列表 查询权限详情 查询全局服务中的用户组权限 查询项目服务中的用户组权限 为用户组授予全局服务权限 为用户组授予项目服务权限 移除用户组的项目服务权限 移除用户组的全局服务权限 查询用户组是否拥有全局服务权限 查询用户组是否拥有项目服务权限 按照接口分类修改目录结构。 2017-03-28 第八次正式发布。 本次变更说明如下: 增加查询Keystone API的3.0版本信息 2017-01-20 第七次正式发布。 增加以下章节: 查询IAM用户可以访问的帐号详情 查询IAM用户可以访问的项目列表 查询Keystone的Metadata文件 获取联邦认证scoped token 查询联邦用户可以访问的帐号列表 2016-12-30 第六次正式发布 本次变更说明如下: GET /v3/projects接口的响应增加page字段(查询页面的数据)。 GET /v3/projects接口的响应增加per_page字段(页面数据个数)。 2016-10-29 第五次正式发布。 本次变更说明如下: 增加以下章节: 身份提供商 映射 协议 Metadata 2016-09-30 第四次正式发布。 本次变更说明如下: 增加以下章节: 管理员查询IAM用户列表 查询IAM用户详情 查询IAM用户是否在用户组中 管理员创建IAM用户 修改IAM用户密码 管理员删除IAM用户 查询项目服务中的用户组权限 2016-08-25 第三次正式发布。 本次变更说明如下: 增加token中各字段的含义。 2016-06-30 第二次正式发布。 本次变更说明如下: GET /v3/services接口的响应增加links字段(服务的链接)。 GET /v3/endpoints接口的响应增加links字段(终端地址的链接)。 2016-03-14 第一次正式发布。
  • 响应示例 状态码为 200 时: 请求成功。 响应Header参数:X-Subject-Token:MIIatAYJKoZIhvcNAQcCoIIapTCCGqECAQExDTALB... 响应Body参数:{ "token": { "expires_at": "2020-01-04T09:08:49.965000Z", "methods": [ "password" ], "catalog": [ { "endpoints": [ { "id": "33e1cbdd86d34e89a63cf8ad16a5f49f", "interface": "public", "region": "*", "region_id": "*", "url": "https://iam.myhuaweicloud.com/v3.0" } ], "id": "100a6a3477f1495286579b819d399e36", "name": "iam", "type": "iam" }, { "endpoints": [ { "id": "29319cf2052d4e94bcf438b55d143832", "interface": "public", "region": "*", "region_id": "*", "url": "https://bss.sample.domain.com/v1.0" } ], "id": "c6db69fabbd549908adcb861c7e47ca4", "name": "bssv1", "type": "bssv1" } ], "domain": { "id": "d78cbac186b744899480f25bd022f468", "name": "IAMDomain" }, "roles": [ { "id": "0", "name": "te_admin" }, { "id": "0", "name": "secu_admin" }, { "id": "0", "name": "te_agency" } ], "issued_at": "2020-01-03T09:08:49.965000Z", "user": { "domain": { "id": "d78cbac186b744899480f25bd022f468", "name": "IAMDomain" }, "id": "7116d09f88fa41908676fdd4b039e95b", "name": "IAMUser", "password_expires_at": "" } }} 状态码为 404 时: 未找到相应的资源。 { "error": { "code": 404, "message": "X-Subject-Token is invalid in the request", "title": "Not Found" }}
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 Content-Type 是 String 该字段内容填为“application/json;charset=utf8”。 X-Auth-Token 是 String 管理员校验本帐号中IAM用户的token的有效性:拥有Security Administrator权限的token。 IAM用户校验自己token的有效性:该IAM用户的token(无需特殊权限)。 X-Subject-Token 是 String 待校验的token。
  • 响应参数 表3 响应Header参数 参数 参数类型 描述 X-Subject-Token string 已校验的token。 表4 响应Body参数 参数 参数类型 描述 token Object 获取到的token信息。 表5 token 参数 参数类型 描述 catalog Array of objects 服务目录信息。 domain Object 被校验token的IAM用户所属的帐号信息。如果获取token时请求体中scope参数设置为domain,则返回该字段。 expires_at String token过期时间。 issued_at String token下发时间。 methods Array of strings 获取token的方式。 project Object 被校验token的IAM用户所属帐号的项目信息。如果获取token时请求体中scope参数设置为project,则返回该字段。 roles Array of objects token的权限信息。 user Object 获取token的IAM用户信息。 表6 token.catalog 参数 参数类型 描述 endpoints Array of objects 终端节点。 id String 服务ID。 name String 服务名称。 type String 该接口所属服务。 表7 token.catalog.endpoints 参数 参数类型 描述 id String 终端节点ID。 interface String 接口类型,描述接口在该终端节点的可见性。值为“public”,表示该接口为公开接口。 region String 终端节点所属区域。 region_id String 终端节点所属区域ID。 url String 终端节点的URL。 表8 token.domain 参数 参数类型 描述 name String 帐号名称。 id String 帐号ID。 表9 token.project 参数 参数类型 描述 domain Object 项目所属帐号信息。 id String 项目ID。 name String 项目名称。 表10 token.project.domain 参数 参数类型 描述 id String 帐号ID。 name String 帐号名称。 表11 token.roles 参数 参数类型 描述 name String 权限名称。 id String 权限ID。默认显示为0,非真实权限ID。 表12 token.user 参数 参数类型 描述 name String IAM用户名。 id String IAM用户ID。 password_expires_at String 密码过期时间(UTC时间),“”表示密码不过期。 domain Object IAM用户所属的帐号信息。 表13 token.user.domain 参数 参数类型 描述 name String IAM用户所属帐号名称。 id String IAM用户所属帐号ID,获取方式请参见:获取帐号、IAM用户、项目、用户组、区域、委托的名称和ID。
  • 响应参数 表5 响应Body参数 参数 参数类型 描述 credential Object 认证信息。 表6 credential 参数 参数类型 描述 user_id String IAM用户ID。 access String 修改的AK。 status String 访问密钥状态。 create_time String 访问密钥创建时间。 description String 访问密钥描述信息。
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 Content-Type 是 String 该字段填为“application/json;charset=utf8””。 X-Auth-Token 是 String 管理员修改IAM用户的指定永久访问密钥:请参见授权项。 IAM用户修改自己的指定永久访问密钥:URL中access_key所对应IAM用户的token(无需特殊权限)。 表3 请求Body参数 参数 是否必选 参数类型 描述 credential 是 Object 认证信息。 表4 credential 参数 是否必选 参数类型 描述 status 否 String 访问密钥状态。 取值范围: active:启用 inactive:停用 description 否 String 访问密钥描述信息。
  • 请求示例 IAM用户修改自己的指定永久访问密钥状态为“不启用”。 PUT https://iam.myhuaweicloud.com/v3.0/OS-CREDENTIAL/credentials/{access_key} { "credential": { "status": "inactive", "description": "IAMDescription" }}
  • 响应示例 状态码为 200 时: 请求成功。 { "credential": { "status": "inactive", "access": "LOSZM4YRVLKOY9...", "create_time": "2020-01-08T06:26:08.123059Z", "user_id": "07609fb9358010e21f7bc00375..." }}
  • URI DELETE /v3.0/OS-AGENCY/projects/{project_id}/agencies/{agency_id}/roles/{role_id} 表1 路径参数 参数 是否必选 参数类型 描述 agency_id 是 String 委托ID,获取方式请参见:获取帐号、IAM用户、项目、用户组、区域、委托的名称和ID。 project_id 是 String 委托方的项目ID,获取方式请参见:获取帐号、IAM用户、项目、用户组、区域、委托的名称和ID。 role_id 是 String 项目服务权限ID,获取方式请参见:获取权限ID。
  • URI HEAD /v3.0/OS-AGENCY/projects/{project_id}/agencies/{agency_id}/roles/{role_id} 表1 路径参数 参数 是否必选 参数类型 描述 agency_id 是 String 委托ID,获取方式请参见:获取帐号、IAM用户、项目、用户组、区域、委托的名称和ID。 project_id 是 String 委托方的项目ID,获取方式请参见:获取帐号、IAM用户、项目、用户组、区域、委托的名称和ID。 role_id 是 String 项目服务权限ID,获取方式请参见:获取权限ID。
  • URI GET /v3.0/OS-AGENCY/projects/{project_id}/agencies/{agency_id}/roles 表1 路径参数 参数 是否必选 参数类型 描述 agency_id 是 String 委托ID,获取方式请参见:获取帐号、IAM用户、项目、用户组、区域、委托的名称和ID。 project_id 是 String 委托方的项目ID,获取方式请参见:获取帐号、IAM用户、项目、用户组、区域、委托的名称和ID。
  • 响应示例 状态码为 200 时: 请求成功。 { "roles": [ { "domain_id": null, "flag": "fine_grained", "description_cn": "应用运维管理服务只读权限", "catalog": "AOM", "name": "system_all_30", "description": "AOM read only", "id": "75cfe22af2b3498d82b655fbb39de498", "display_name": "AOM Viewer", "type": "XA", "policy": { "Version": "1.1", "Statement": [ { "Action": [ "aom:*:list", "aom:*:get", "apm:*:list", "apm:*:get" ], "Effect": "Allow" } ] } } ]}
  • 响应示例 状态码为 201 时: 创建成功。 示例1:由被委托方B(帐号名为IAMDomainB)中的IAM用户B(用户名IAMUserB,请求头中的X-Auth-Token字段需要填写IAMUserB的用户token,且该token需要具有Agent Operator权限),获取委托方A(帐号名为IAMDomainA)创建的委托名为IAMAgency,作用范围为委托方A整个帐号的token。 示例2:由被委托方B(帐号名为IAMDomainB)中的IAM用户B(用户名IAMUserB,请求头中的X-Auth-Token字段需要填写IAMUserB的用户token,且该token需要具有Agent Operator权限),获取委托方A(帐号名为IAMDomainA)创建的委托名为IAMAgency,作用范围为委托方A的项目“cn-north-1”,且返回的响应体中将不显示catalog信息的token。 示例 1 响应Header参数:X-Subject-Token:MIIatAYJKoZIhvcNAQcCoIIapTCCGqECAQExDTALB... 响应Body参数:{ "token": { "expires_at": "2020-01-05T05:05:17.429000Z", "methods": [ "assume_role" ], "catalog": [ { "endpoints": [ { "id": "33e1cbdd86d34e89a63cf8ad16a5f49f", "interface": "public", "region": "*", "region_id": "*", "url": "https://iam.myhuaweicloud.com/v3.0" } ], "id": "100a6a3477f1495286579b819d399e36", "name": "iam", "type": "iam" } ], "domain": { "id": "d78cbac186b744899480f25bd022f468", "name": "IAMDomainA" }, "roles": [ { "id": "0", "name": "op_gated_eip_ipv6" }, { "id": "0", "name": "op_gated_rds_mcs" } ], "issued_at": "2020-01-04T05:05:17.429000Z", "user": { "domain": { "id": "d78cbac186b744899480f25bd022f468", "name": "IAMDomainA" }, "id": "0760a9e2a60026664f1fc0031f9f205e", "name": "IAMDomainA/IAMAgency" }, "assumed_by": { "user": { "domain": { "id": "a2cd82a33fb043dc9304bf72a0f38f00", "name": "IAMDomainB" }, "id": "0760a0bdee8026601f44c006524b17a9", "name": "IAMUserB", "password_expires_at": "" } } }} 示例 2 响应Header参数:X-Subject-Token:MIIatAYJKoZIhvcNAQcCoIIapTCCGqECAQExDTALB... 响应Body参数:{ "token": { "expires_at": "2020-01-05T06:49:28.094000Z", "methods": [ "assume_role" ], "catalog": [], "roles": [ { "id": "0", "name": "op_gated_eip_ipv6" }, { "id": "0", "name": "op_gated_rds_mcs" } ], "project": { "domain": { "id": "d78cbac186b744899480f25bd022f468", "name": "IAMDomainA" }, "id": "aa2d97d7e62c4b7da3ffdfc11551f878", "name": "cn-north-1" }, "issued_at": "2020-01-04T06:49:28.094000Z", "user": { "domain": { "id": "d78cbac186b744899480f25bd022f468", "name": "IAMDomainA" }, "id": "0760a9e2a60026664f1fc0031f9f205e", "name": "IAMDomainA/IAMAgency" }, "assumed_by": { "user": { "domain": { "id": "a2cd82a33fb043dc9304bf72a0f38f00", "name": "IAMDomainB" }, "id": "0760a0bdee8026601f44c006524b17a9", "name": "IAMUserB", "password_expires_at": "" } } }} 状态码为 400 时: 参数无效。 { "error": { "code": 400, "message": "The request body is invalid", "title": "Bad Request" }} 状态码为 401 时: 认证失败。 { "error": { "code": 401, "message": "The X-Auth-Token is invalid!", "title": "Unauthorized" }} 状态码为 403 时: 没有操作权限。 可能原因:被委托方B中用户B的用户token(即X-Auth-Token填写的token)缺少Agent Operator权限,请添加权限。 { "error": { "code": 403, "message": "You have no right to do this action", "title": "Forbidden" }}
  • 请求示例 由被委托方B(帐号名为IAMDomainB)中的IAM用户B(用户名IAMUserB,请求头中的X-Auth-Token字段需要填写IAMUserB的用户token,且该token需要具有Agent Operator权限),获取委托方A(帐号名为IAMDomainA)创建的委托名为IAMAgency,作用范围为委托方A的项目“cn-north-1”,且返回的响应体中将不显示catalog信息的token。 POST https://iam.myhuaweicloud.com/v3/auth/tokens?nocatalog=true { "auth": { "identity": { "methods": [ "assume_role" ], "assume_role": { "domain_name": "IAMDomainA", //委托方IAM用户A所属帐号名称 "agency_name": "IAMAgency" //委托方IAM用户A创建的委托名称 } }, "scope": { "project": { "name": "cn-north-1" //项目名称 } } }} 由被委托方B(帐号名为IAMDomainB)中的IAM用户B(用户名IAMUserB,请求头中的X-Auth-Token字段需要填写IAMUserB的用户token,且该token需要具有Agent Operator权限),获取委托方A(帐号名为IAMDomainA)创建的委托名为IAMAgency,作用范围为委托方A整个帐号的token。 POST https://iam.myhuaweicloud.com/v3/auth/tokens { "auth": { "identity": { "methods": [ "assume_role" ], "assume_role": { "domain_name": "IAMDomainA", //委托方IAM用户A所属帐号名称 "agency_name": "IAMAgency" //委托方IAM用户A创建的委托名称 } }, "scope": { "domain": { "name": "IAMDomainA" //委托方IAM用户A所属帐号名称 } } }}
  • 响应参数 表10 响应Header参数 参数 参数类型 描述 X-Subject-Token string 签名后的token。 表11 响应Body参数 参数 参数类型 描述 token Object token信息列表。 表12 token 参数 参数类型 描述 methods Array of strings 获取token的方式。 expires_at String token到期时间。格式为:YYYY-MM-DDTHH:mm:ss.ssssssZ。 issued_at String token下发时间。格式为:YYYY-MM-DDTHH:mm:ss.ssssssZ。 assumed_by Object 被委托方B的相关信息。 catalog Array of objects 服务目录信息。 domain Object 委托方A的帐号信息。如果获取token时请求体中scope参数设置为domain,则返回该字段。 project Object 委托方A的项目信息。如果获取token时请求体中scope参数设置为project,则返回该字段。 roles Array of objects 委托token的权限信息。 user Object 委托方A所创建的委托的信息。 表13 token.assumed_by 参数 参数类型 描述 user Object 被委托方B中IAM用户的用户信息。 表14 token.assumed_by.user 参数 参数类型 描述 name String 被委托方B中IAM用户的用户名。 id String 被委托方B中IAM用户的用户ID。 domain Object 被委托方B的帐号信息。 password_expires_at String 被委托方B中IAM用户的密码过期时间(UTC时间),“”表示密码不过期。 表15 token.assumed_by.user.domain 参数 参数类型 描述 name String 被委托方B的帐号名称。 id String 被委托方B的帐号ID。 表16 token.catalog 参数 参数类型 描述 endpoints Array of objects 终端节点。 id String 服务ID。 name String 服务名称。 type String 该接口所属服务。 表17 token.catalog.endpoints 参数 参数类型 描述 id String 终端节点ID。 interface String 接口类型,描述接口在该终端节点的可见性。值为“public”,表示该接口为公开接口。 region String 终端节点所属区域。 region_id String 终端节点所属区域ID。 url String 终端节点的URL。 表18 token.domain 参数 参数类型 描述 name String 委托方A的帐号名称。 id String 委托方A的帐号ID。 表19 token.project 参数 参数类型 描述 name String 委托方A的项目名称。 id String 委托方A的项目ID。 domain Object 委托方A的帐号信息。 表20 token.project.domain 参数 参数类型 描述 name String 委托方A的帐号名称。 id String 委托方A的帐号ID。 表21 token.roles 参数 参数类型 描述 name String 权限名称。 id String 权限ID。默认显示为0,非真实权限ID。 表22 token.user 参数 参数类型 描述 name String 委托方A帐号名/委托名。 id String 委托ID。 domain Object 委托方A的帐号信息。 表23 token.user.domain 参数 参数类型 描述 id String 委托方A的帐号ID。 name String 委托方A的帐号名称。
  • 功能介绍 该接口可以用于获取委托方的token。 例如:A帐号希望B帐号管理自己的某些资源,所以A帐号创建了委托给B帐号,则A帐号为委托方,B帐号为被委托方。那么B帐号可以通过该接口获取委托token。B帐号仅能使用该token管理A帐号的委托资源,不能管理自己帐号中的资源。如果B帐号需要管理自己帐号中的资源,则需要获取自己的用户token。详情请参考:委托其他帐号管理资源。 token是系统颁发给用户的访问令牌,承载用户的身份、权限等信息。调用IAM以及其他云服务的接口时,可以使用本接口获取的token进行鉴权。 该接口可以使用全局区域的Endpoint和其他区域的Endpoint调用。IAM的Endpoint请参见:地区和终端节点。 token的有效期为24小时,建议进行缓存,避免频繁调用。 使用Token前请确保Token离过期有足够的时间,防止调用API的过程中Token过期导致调用API失败。
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 Content-Type 是 String 该字段内容填为“application/json;charset=utf8”。 X-Auth-Token 是 String 被委托方B帐号中的IAM用户token,且该token具有Agent Operator权限。 表3 请求Body参数 参数 是否必选 参数类型 描述 auth 是 Object 认证信息。 表4 auth 参数 是否必选 参数类型 描述 identity 是 Object 认证参数。 scope 是 Object token的使用范围,需要填写委托方A的project或domain,填写其中任一即可。 说明: 如果您将scope设置为domain,该Token适用于全局级服务;如果将scope设置为project,该Token适用于项目级服务。 如果您将scope同时设置为project和domain,将以project参数为准,获取到项目级服务的Token。 如果您将scope置空,将获取到全局级服务的Token。建议您按需要填写Token使用范围。 表5 auth.identity 参数 是否必选 参数类型 描述 methods 是 Array of strings token的获取方式,该字段内容为["assume_role"]。 取值范围: assume_role assume_role 是 Object assume_role的具体信息。 表6 auth.identity.assume_role 参数 是否必选 参数类型 描述 domain_id 否 String 委托方A的帐号ID。“domain_id”与“domain_name”至少填写一个,建议选择“domain_id”。 委托方A可以参考获取帐号、IAM用户、项目、用户组、区域、委托的名称和ID获取帐号ID。 domain_name 否 String 委托方A的帐号名称。“domain_id”与“domain_name”至少填写一个,建议选择“domain_id”。 您可以在IAM控制台委托列表中查看委托方A的帐号名称。 agency_name 是 String 委托方A创建的委托名称,获取方式请参见:获取帐号、IAM用户、项目、用户组、区域、委托的名称和ID。 表7 auth.scope 参数 是否必选 参数类型 描述 domain 否 Object 取值为domain时,表示获取的Token可以作用于全局服务,全局服务不区分项目或区域,如OBS服务。如需了解服务作用范围,请参考系统权限。domain支持id和name,二选一即可,建议选择“domain_id”。 project 否 Object 取值为project时,表示获取的Token可以作用于项目级服务,仅能访问指定project下的资源,如ECS服务。如需了解服务作用范围,请参考系统权限。project支持id和name,二选一即可。 表8 auth.scope.domain 参数 是否必选 参数类型 描述 id 否 String 委托方A的帐号ID,获取方式请参见:获取帐号、IAM用户、项目、用户组、区域、委托的名称和ID。id和name,二选一即可。 name 否 String 委托方A的帐号名,获取方式请参见:获取帐号、IAM用户、项目、用户组、区域、委托的名称和ID。id和name,二选一即可。 表9 auth.scope.project 参数 是否必选 参数类型 描述 id 否 String 委托方A项目的ID,获取方式请参见:获取帐号、IAM用户、项目、用户组、区域、委托的名称和ID。id和name,二选一即可。 name 否 String 委托方A项目的名称,获取方式请参见:获取帐号、IAM用户、项目、用户组、区域、委托的名称和ID。id和name,二选一即可。
  • URI DELETE /v3.0/OS-AGENCY/domains/{domain_id}/agencies/{agency_id}/roles/{role_id} 表1 路径参数 参数 是否必选 参数类型 描述 agency_id 是 String 委托ID,获取方式请参见:获取帐号、IAM用户、项目、用户组、区域、委托的名称和ID。 domain_id 是 String 委托方帐号ID,获取方式请参见:获取帐号、IAM用户、项目、用户组、区域、委托的名称和ID。 role_id 是 String 全局服务权限ID,获取方式请参见:获取权限ID。
  • URI HEAD /v3.0/OS-AGENCY/domains/{domain_id}/agencies/{agency_id}/roles/{role_id} 表1 路径参数 参数 是否必选 参数类型 描述 agency_id 是 String 委托ID,获取方式请参见:获取帐号、IAM用户、项目、用户组、区域、委托的名称和ID。 domain_id 是 String 委托方帐号ID,获取方式请参见:获取帐号、IAM用户、项目、用户组、区域、委托的名称和ID。 role_id 是 String 全局服务权限ID。获取方式请参见:获取权限ID。
  • URI PUT /v3.0/OS-AGENCY/domains/{domain_id}/agencies/{agency_id}/roles/{role_id} 表1 路径参数 参数 是否必选 参数类型 描述 agency_id 是 String 委托ID,获取方式请参见:获取帐号、IAM用户、项目、用户组、区域、委托的名称和ID。 domain_id 是 String 委托方帐号ID,获取方式请参见:获取帐号、IAM用户、项目、用户组、区域、委托的名称和ID。 role_id 是 String 全局服务权限ID,获取方式请参见:获取权限ID。
  • URI PUT /v3.0/OS-AGENCY/projects/{project_id}/agencies/{agency_id}/roles/{role_id} 表1 路径参数 参数 是否必选 参数类型 描述 agency_id 是 String 委托ID,获取方式请参见:获取帐号、IAM用户、项目、用户组、区域、委托的名称和ID。 project_id 是 String 委托方的项目ID,获取方式请参见:获取帐号、IAM用户、项目、用户组、区域、委托的名称和ID。 role_id 是 String 项目服务权限ID,获取方式请参见:获取权限ID。
  • 联邦身份认证管理 权限 对应API接口 授权项 IAM项目 (Project) 企业项目 (Enterprise Project) 查询身份提供商列表 GET /v3/OS-FEDERATION/identity_providers iam:identityProviders:listIdentityProviders - - 查询身份提供商详情 GET /v3/OS-FEDERATION/identity_providers/{id} iam:identityProviders:getIdentityProvider - - 创建SAML身份提供商 PUT /v3/OS-FEDERATION/identity_providers/{id} iam:identityProviders:createIdentityProvider - - 修改SAML身份提供商配置 PATCH /v3/OS-FEDERATION/identity_providers/{id} iam:identityProviders:updateIdentityProvider - - 删除SAML身份提供商 DELETE /v3/OS-FEDERATION/identity_providers/{id} iam:identityProviders:deleteIdentityProvider - - 创建OIDC身份提供商 POST /v3.0/OS-FEDERATION/identity-providers/{idp_id}/openid-connect-config iam:identityProviders:createOpenIDConnectConfig - - 修改OIDC身份提供商配置 PUT /v3.0/OS-FEDERATION/identity-providers/{idp_id}/openid-connect-config iam:identityProviders:updateOpenIDConnectConfig - - 查询OIDC身份提供商 GET /v3.0/OS-FEDERATION/identity-providers/{idp_id}/openid-connect-config iam:identityProviders:getOpenIDConnectConfig - - 查询映射列表 GET /v3/OS-FEDERATION/mappings iam:identityProviders:listMappings - - 查询映射详情 GET /v3/OS-FEDERATION/mappings/{id} iam:identityProviders:getMapping - - 注册映射 PUT /v3/OS-FEDERATION/mappings/{id} iam:identityProviders:createMapping - - 更新映射 PATCH /v3/OS-FEDERATION/mappings/{id} iam:identityProviders:updateMapping - - 删除映射 DELETE /v3/OS-FEDERATION/mappings/{id} iam:identityProviders:deleteMapping - - 查询协议列表 GET /v3/OS-FEDERATION/identity_providers/{idp_id}/protocols iam:identityProviders:listProtocols - - 查询协议详情 GET /v3/OS-FEDERATION/identity_providers/{idp_id}/protocols/{protocol_id} iam:identityProviders:getProtocol - - 注册协议 PUT /v3/OS-FEDERATION/identity_providers/{idp_id}/protocols/{protocol_id} iam:identityProviders:createProtocol - - 更新协议 PATCH /v3/OS-FEDERATION/identity_providers/{idp_id}/protocols/{protocol_id} iam:identityProviders:updateProtocol - - 删除协议 DELETE /v3/OS-FEDERATION/identity_providers/{idp_id}/protocols/{protocol_id} iam:identityProviders:deleteProtocol - - 查询Metadata文件 GET /v3-ext/OS-FEDERATION/identity_providers/{idp_id}/protocols/{protocol_id}/metadata iam:identityProviders:getIDPMetadata - - 导入Metadata文件 POST /v3-ext/OS-FEDERATION/identity_providers/{idp_id}/protocols/{protocol_id}/metadata iam:identityProviders:createIDPMetadata - -
  • 安全设置 权限 对应API接口 授权项 IAM项目 (Project) 企业项目 (Enterprise Project) 修改帐号操作保护策略 PUT /v3.0/OS-SECURITYPOLICY/domains/{domain_id}/protect-policy iam:securitypolicies:updateProtectPolicy - - 查询帐号操作保护策略 GET /v3.0/OS-SECURITYPOLICY/domains/{domain_id}/protect-policy iam:securitypolicies:getProtectPolicy - - 修改帐号密码策略 PUT /v3.0/OS-SECURITYPOLICY/domains/{domain_id}/password-policy iam:securitypolicies:updatePasswordPolicy - - 查询帐号密码策略 GET /v3.0/OS-SECURITYPOLICY/domains/{domain_id}/password-policy iam:securitypolicies:getPasswordPolicy - - 修改帐号登录策略 PUT /v3.0/OS-SECURITYPOLICY/domains/{domain_id}/login-policy iam:securitypolicies:updateLoginPolicy - - 查询帐号登录策略 GET /v3.0/OS-SECURITYPOLICY/domains/{domain_id}/login-policy iam:securitypolicies:getLoginPolicy - - 修改帐号控制台访问策略 PUT /v3.0/OS-SECURITYPOLICY/domains/{domain_id}/console-acl-policy iam:securitypolicies:updateConsoleAclPolicy - - 查询帐号控制台访问策略 GET /v3.0/OS-SECURITYPOLICY/domains/{domain_id}/console-acl-policy iam:securitypolicies:getConsoleAclPolicy - - 修改帐号接口访问策略 PUT /v3.0/OS-SECURITYPOLICY/domains/{domain_id}/api-acl-policy iam:securitypolicies:updateApiAclPolicy - - 查询帐号接口访问策略 GET /v3.0/OS-SECURITYPOLICY/domains/{domain_id}/api-acl-policy iam:securitypolicies:getApiAclPolicy - -
共100000条