华为云用户手册

  • 响应示例 状态码为200时: 请求成功。 { "role_assignments":{ "group":{ "id":"07609e7eb200250a3f7dc003cb7a4e2d" }, "is_inherited":true, "role":{ "id":"11e5c42d20cc349a2b9e2f8afd253f50c" }, "scope":{ "domain":{ "id":"d78cbac186b744899480f25bd022f468" } } }, "total_num":1 }
  • 响应参数 表3 响应Body参数 参数 参数类型 描述 total_num Long 返回授权记录的总条数。 role_assignments Array of RoleAssignmentBody objects 授权信息。 表4 role_assignments 名称 类型 描述 user RoleUserAssignmentId object 授权用户信息。仅在授权主体,取值为user时返回此字段。 role RoleAssignmentId object 授权策略信息。 group RoleGroupAssignmentId object 授权用户组信息。仅在授权主体,取值为group时返回此字段。 agency RoleAgencyAssignmentId object 授权委托信息。仅在授权主体,取值为agency时返回此字段。 scope RoleAssignmentScope object 授权作用的范围。 is_inherited Boolean 是否基于所有项目授权。 表5 role_assignments.user 参数 参数类型 描述 id String IAM 用户ID。 表6 role_assignments.role 名称 类型 描述 id String 权限ID。 表7 role_assignments.group 名称 类型 描述 id String 用户组ID。 表8 role_assignments.agency 名称 类型 描述 id String 委托ID。 表9 role_assignments.scope 名称 类型 描述 project RoleProjectAssignmentId object 基于IAM项目授权的信息。仅授权范围选择project时返回此字段。 domain RoleDomainAssignmentId object 基于全局服务或所有项目授权的信息。仅授权范围选择domain时返回此字段。 enterprise_project RoleEnterpriseProjectAssignmentId object 基于企业项目授权的信息。仅授权范围选择enterprise_project时返回此字段。 表10 role_assignments.scope.project 名称 类型 描述 id String IAM项目ID。 表11 role_assignments.scope.domain 名称 类型 描述 id String 全局服务ID。 表12 role_assignments.scope.enterprise_project 名称 类型 描述 id String 企业项目ID。
  • URI GET /v3.0/OS-PERMISSION/role-assignments 表1 Query参数 参数 是否必选 参数类型 描述 domain_id 是 String 待查询账号ID,获取方式请参见:获取账号、IAM用户、项目、用户组、区域、委托的名称和ID。 role_id 否 String 策略ID。 subject 否 String 授权主体,取值范围:user、group、agency。该参数与subject.user_id、subject.group_id、subject.agency_id只能选择一个。 subject.user_id 否 String 授权的IAM用户ID,获取方式请参见:获取账号、IAM用户、项目、用户组、区域、委托的名称和ID。 subject.group_id 否 String 授权的用户组ID,获取方式请参见:获取账号、IAM用户、项目、用户组、区域、委托的名称和ID。 subject.agency_id 否 String 授权的委托ID,获取方式请参见:获取账号、IAM用户、项目、用户组、区域、委托的名称和ID。 scope 否 String 授权范围,取值范围:project、domain、enterprise_project。该参数与scope.project_id、scope.domain_id、scope.enterprise_projects_id只能选择一个。 说明: 如需查看全局服务授权记录,scope取值domain或填写scope.domain_id。 如需查看基于所有资源的授权记录,scope取值为domain,且is_inherited取值为true。 如需查看基于项目的授权记录,scope取值为project或填写scope.project_id。 如需查看基于企业项目的授权记录,scope取值为enterprise_project或填写scope.enterprise_project_id。 scope.project_id 否 String 授权的项目ID,获取方式请参见:获取账号、IAM用户、项目、用户组、区域、委托的名称和ID。 scope.domain_id 否 String 待查询账号ID,获取方式请参见:获取账号、IAM用户、项目、用户组、区域、委托的名称和ID。 scope.enterprise_projects_id 否 String 授权的企业项目ID,获取方式请参见:如何获取企业项目ID。 is_inherited 否 Boolean 是否包含基于所有项目授权的记录,默认为false。当参数scope=domain或者scope.domain_id存在时生效。true:查询基于所有项目授权的记录。 false:查询基于全局服务授权的记录。 include_group 否 Boolean 是否包含基于IAM用户所属用户组授权的记录,默认为true。当参数subject=user或者subject.user_id存在时生效。true:查询基于IAM用户授权、IAM用户所属用户组授权的记录。 false:仅查询基于IAM用户授权的记录。 page 否 Integer 分页查询时数据的页数,查询值最小为1。需要与per_page同时存在。 per_page 否 Integer 分页查询时每页的数据个数,取值范围为[1,50],需要与page同时存在。
  • 响应示例 状态码为 201 时: 创建成功。 响应Header参数: X-Subject-Token:MIIatAYJKoZIhvcNAQcCoIIapTCCGqECAQExDTALB... 响应Body参数: { "token": { "expires_at": "2020-02-13T14:21:34.042000Z", "methods": [ "mapped" ], "issued_at": "2020-02-12T14:21:34.042000Z", "user": { "OS-FEDERATION": { "identity_provider": { "id": "ACME" }, "protocol": { "id": "saml" }, "groups": [ { "id": "06aa22601502cec4a23ac0084a74038f", "name": "admin" } ] }, "domain": { "name": "IAMDomain", "id": "06ba0970a097acc0f36c0086bb6cfe0" }, "name": "FederationUser", "id": "LdUTYSC7zmJVIic3yaCbLBXDxPAdDxLg" } } }
  • 响应参数 表3 响应Header参数 参数 参数类型 描述 X-Subject-Token String 签名后的unscoped token。 表4 响应Body参数 参数 参数类型 描述 token Object 联邦认证的unscoped token信息。 表5 token 参数 参数类型 描述 issued_at String token产生时间。 说明: UTC时间,格式为YYYY-MM-DDTHH:mm:ss.ssssssZ,日期和时间戳格式参照ISO-8601,如:2023-06-28T08:56:33.710000Z。 expires_at String token到期时间。 说明: UTC时间,格式为YYYY-MM-DDTHH:mm:ss.ssssssZ,日期和时间戳格式参照ISO-8601,如:2023-06-28T08:56:33.710000Z。 methods Array of strings 获取token的方式。 user Object 获取token的用户信息。 表6 token.user 参数 参数类型 描述 domain Object 用户所属账号信息。 id String 用户ID。 name String 用户名称。 OS-FEDERATION Object 联邦身份认证信息。 表7 token.user.domain 参数 参数类型 描述 name String 用户所属账号名。 id String 用户所属账号ID。 表8 token.user.OS-FEDERATION 参数 参数类型 描述 groups Array of objects 用户组信息列表。 identity_provider Object 身份提供商信息。 protocol Object 协议信息。 表9 token.user.OS-FEDERATION.groups 参数 参数类型 描述 id String 用户组ID。 name String 用户组名称。 表10 token.user.OS-FEDERATION.identity_provider 参数 参数类型 描述 id String 身份提供商ID。 表11 token.user.OS-FEDERATION.protocol 参数 参数类型 描述 id String 协议ID。
  • 功能介绍 该接口可以用于通过IdP initiated的联邦认证方式获取unscoped token。 Unscoped token不能用来鉴权,若联邦用户需要使用token进行鉴权,请参考获取联邦认证scoped token获取scoped token。 该接口可以使用全局区域的Endpoint和其他区域的Endpoint调用。IAM的Endpoint请参见:地区和终端节点。 该接口支持在命令行侧调用,需要客户端使用IdP initiated的联邦认证方式获取SAMLResponse,并采用浏览器提交表单数据的方式,获取unscoped token。
  • 请求参数 表1 请求Header参数 参数 是否必选 参数类型 描述 Content-Type 是 String 客户端必须使用浏览器提交表单数据的方式向服务端传SAMLResponse参数,故该字段需取值如下:application/x-www-form-urlencoded X-Idp-Id 是 String 身份提供商ID。 表2 请求formData参数 参数 是否必选 参数类型 描述 SAMLResponse 是 String 在IdP认证成功后返回的响应体。 SAMLResponse获取方式: 在浏览器的地址栏输入并跳转链接:https://idp.example.org/idp/profile/SAML2/Unsolicited/SSO?providerId=iam.example.com。 idp.example.org :IDPmetadata中的entityID; iam.example.com :SPmetadata中获取的entityID。 该链接可打开身份提供商登录页面,根据需要输入映射规则中的用户名(支持免密登录),单击登录,跳入认证页面后按F12,单击认证页面的accept。从下图所示的POST中获取SAMLResponse。 图1 获取SAMLResponse
  • 响应示例 状态码为 200 时: 请求成功。 { "user": { "pwd_status": false, "description": "IAMDescription", "name": "IAMUser", "enabled": true, "links": { "self": "https://iam.myhuaweicloud.com/v3/users/07609fb9358010e21f7bc003751c7..." }, "id": "07609fb9358010e21f7bc003751c7...", "domain_id": "d78cbac186b744899480f25bd02..." } }
  • 响应参数 表5 响应Body参数 参数 参数类型 描述 user Object IAM用户信息。 表6 user 参数 参数类型 描述 name String IAM用户名。 domain_id String IAM用户所属账号ID。 enabled Boolean IAM用户是否启用。true表示启用,false表示停用,默认为true。 id String IAM用户ID。 password_expires_at String 密码过期时间,“null”表示密码不过期。 说明: UTC时间,格式为YYYY-MM-DDTHH:mm:ss.ssssss,日期和时间戳格式如:2023-06-28T08:56:33.710000。 description String IAM用户描述信息,如果无描述信息,此字段可能不返回。 pwd_status Boolean IAM用户密码状态。true:需要修改密码,false:正常。如果密码未设置,此字段可能不返回。 last_project_id String IAM用户退出华为云前,在控制台最后访问的项目ID,如果用户无访问记录,此字段可能不返回。 links Object IAM用户的资源链接信息。 表7 user.links 参数 参数类型 描述 self String 资源链接地址。
  • 请求示例 管理员修改名为“IAMUser”的IAM用户的密码为“IAMPassword@”。 PATCH https://iam.myhuaweicloud.com/v3/users/{user_id} { "user": { "domain_id": "d78cbac186b744899480f25bd02...", "name": "IAMUser", "password": "IAMPassword@", "enabled": true, "pwd_status": false, "description": "IAMDescription" } }
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 Content-Type 是 String 该字段内容填为“application/json;charset=utf8”。 X-Auth-Token 是 String 访问令牌,承载用户的身份、权限等信息。 token所需权限请参见授权项。 表3 请求Body参数 参数 是否必选 参数类型 描述 user 是 Object IAM用户信息。 表4 user 参数 是否必选 参数类型 描述 domain_id 否 String IAM用户所属账号ID。 name 否 String IAM用户新用户名,长度1~32之间,只能包含如下字符:大小写字母、空格、数字或特殊字符(-_.)且不能以数字或空格开头。 password 否 String IAM用户密码。 系统默认密码最小长度为8位字符,在8-32位之间支持用户自定义密码长度。 至少包含以下四种字符中的两种: 大写字母、小写字母、数字和特殊字符。 不能包含手机号和邮箱。 必须满足账户设置中密码策略的要求。 新密码不能与当前密码相同。 enabled 否 Boolean 是否启用IAM用户。true为启用,false为停用,默认为true。 description 否 String IAM用户新描述信息。 pwd_status 否 Boolean IAM用户密码状态。true:需要修改密码,false:正常。
  • 请求示例 创建支持编程访问配置的OpenID Connect身份提供商。 POST /v3.0/OS-FEDERATION/identity-providers/{idp_id}/openid-connect-config { "openid_connect_config" : { "access_mode" : "program", "idp_url" : "https://accounts.example.com", "client_id" : "client_id_example", "signing_key" : "{\"keys\":[{\"kty\":\"RSA\",\"e\":\"AQAB\",\"use\":\"sig\",\"n\":\"example\",\"kid\":\"kid_example\",\"alg\":\"RS256\"}]}" } } 创建支持编程访问和管理控制台访问配置的OpenID Connect身份提供商。 POST /v3.0/OS-FEDERATION/identity-providers/{idp_id}/openid-connect-config { "openid_connect_config" : { "access_mode" : "program_console", "idp_url" : "https://accounts.example.com", "client_id" : "client_id_example", "authorization_endpoint" : "https://accounts.example.com/o/oauth2/v2/auth", "scope" : "openid", "response_type" : "id_token", "response_mode" : "form_post", "signing_key" : "{\"keys\":[{\"kty\":\"RSA\",\"e\":\"AQAB\",\"use\":\"sig\",\"n\":\"example\",\"kid\":\"kid_example\",\"alg\":\"RS256\"}]}" } }
  • 响应示例 状态码为 201 时: 创建成功。 示例 1 { "openid_connect_config" : { "access_mode" : "program", "idp_url" : "https://accounts.example.com", "client_id" : "client_id_example", "signing_key" : "{\"keys\":[{\"kty\":\"RSA\",\"e\":\"AQAB\",\"use\":\"sig\",\"n\":\"example\",\"kid\":\"kid_example\",\"alg\":\"RS256\"}]}" } } 示例 2 { "openid_connect_config" : { "access_mode" : "program_console", "idp_url" : "https://accounts.example.com", "client_id" : "client_id_example", "authorization_endpoint" : "https://accounts.example.com/o/oauth2/v2/auth", "scope" : "openid", "response_type" : "id_token", "response_mode" : "form_post", "signing_key" : "{\"keys\":[{\"kty\":\"RSA\",\"e\":\"AQAB\",\"use\":\"sig\",\"n\":\"example\",\"kid\":\"kid_example\",\"alg\":\"RS256\"}]}" } }
  • 响应参数 状态码为 201 时: 表5 响应Body参数 参数 参数类型 描述 openid_connect_config object OpenID Connect配置详情。 表6 openid_connect_config 参数 参数类型 描述 access_mode String 访问方式。 program_console: 支持编程访问和管理控制台访问方式。 program: 支持编程访问方式。 idp_url String OpenID Connect身份提供商标识。对应ID token中iss字段。 client_id String 在OpenID Connect身份提供商注册的客户端ID。 authorization_endpoint String OpenID Connect身份提供商授权地址。 访问方式为program方式时返回null。 scope String 授权请求信息范围。 访问方式为program方式时返回null。 枚举值: openid email profile 说明: 此字段必选值“openid”。 最少1个值,最多10个值,之间使用空格分割。 例如: "openid" 、"openid email"、 "openid profile"、 "openid email profile"。 response_type String 授权请求返回的类型。 访问方式为program方式时返回null。 枚举值: id_token response_mode String 授权请求返回方式。 访问方式为program方式时返回null。 枚举值: fragment form_post signing_key String OpenID Connect身份提供商ID Token签名的公钥。
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 Content-Type 是 String 该字段内容填为“application/json;charset=utf8”。 X-Auth-Token 是 String 访问令牌,承载用户的身份、权限等信息。 token所需权限请参见授权项。 表3 请求Body参数 参数 是否必选 参数类型 描述 openid_connect_config 是 object OpenID Connect配置详情。 表4 CreateOpenIDConnectConfig 参数 是否必选 参数类型 描述 access_mode 是 String 访问方式。 program_console: 支持编程访问和管理控制台访问方式。 program: 支持编程访问方式 idp_url 是 String OpenID Connect身份提供商标识,对应ID token中iss字段。 最小长度:10。最大长度:255。 client_id 是 String 在OpenID Connect身份提供商注册的客户端ID。 最小长度:5。最大长度:255。 authorization_endpoint 否 String OpenID Connect身份提供商授权地址。 访问方式为program_console必选。 最小长度:10。最大长度:255。 scope 否 String 授权请求信息范围。 访问方式为program_console必选。 枚举值: openid email profile 说明: 此字段必选值“openid”。 最少1个值,最多10个值,之间使用空格分割。 例如: "openid" 、"openid email"、 "openid profile"、 "openid email profile"。 response_type 否 String 授权请求返回的类型。 访问方式为program_console必选。 枚举值: id_token response_mode 否 String 授权请求返回方式。 访问方式为program_console必选。 枚举值: fragment form_post signing_key 是 String OpenID Connect身份提供商ID Token签名的公钥。 最小长度:10。最大长度:30000。 格式示例: { "keys":[ { "kid":"d05ef20c4512645vv1..." , "n":"cws_cnjiwsbvweolwn_-vnl...", "e":"AQAB", "kty":"RSA", "use":"sig", "alg":"RS256" } ] }
  • 错误码 当您调用API时,如果遇到“APIGW”开头的错误码,请参见API网关错误码进行处理。 更多服务错误码请参见API错误中心。 状态码 错误码 错误信息 描述 处理措施 400 1100 缺失必选参数。 缺失必选参数。 请检查请求参数。 400 1101 用户名校验失败。 用户名校验失败。 请检查用户名。 400 1102 邮箱校验失败。 邮箱校验失败。 请检查邮箱。 400 1103 密码校验失败。 密码校验失败。 请检查密码。 400 1104 手机号校验失败。 手机号校验失败。 请检查手机号。 400 1105 xuser_type必须与xdomain_type相同。 xuser_type必须与xdomain_type相同。 请确认xuser_type与xdomain_type是否相同。 400 1106 国家码、手机号必须同时存在。 国家码、手机号必须同时存在。 请检查国家码和手机号是否同时存在。 400 1107 账号管理员不能被删除。 账号管理员不能被删除。 不允许此操作。 400 1108 新密码不能与原密码相同。 新密码不能与原密码相同。 请修改新密码。 400 1109 用户名已存在。 用户名已存在。 请修改用户名。 400 1110 邮箱已存在。 邮箱已存在。 请修改邮箱。 400 1111 手机号已存在。 手机号已存在。 请修改手机号。 400 1113 xuser_id、xuser_type已存在。 xuser_id、xuser_type已存在。 请修改xuser_id和xuser_type。 400 1115 IAM用户数量达到最大限制。 IAM用户数量达到最大限制。 请修改用户配额或联系技术支持。 400 1117 用户描述校验失败。 用户描述校验失败。 请修改用户描述。 400 1118 密码是弱密码。 密码是弱密码。 重新选择密码。 400 IAM.0007 Request parameter %(key)s is invalid. 请求参数校验失败。 请检查请求参数。 400 IAM.0008 Please scan the QR code first. 请先扫描二维码。 请先扫描二维码。 400 IAM.0009 X-Subject-Token is invalid in the request. 请求中的X-Subject-Token校验失败。 请检查请求参数。 400 IAM.0010 The QR code has already been scanned by another user. 此二维码已经被其他人扫描。 无需处理。 400 IAM.0011 Request body is invalid. 请求体校验失败。 请检查请求体。 400 IAM.0072 '%(key)s' is a required property. 请求校验异常。举例:%(key)s为必填属性 请联系技术支持。 400 IAM.0073 Invalid input for field '%(key)s'. The value is '%(value)s'. 输入字段无效。 请联系技术支持。 400 IAM.0077 Invalid policy type. 策略类型错误。 请联系技术支持。 400 IAM.1000 The role must be a JSONObject. 缺少role对象。 检查请求体中是否有role对象。 400 IAM.1001 The display_name must be a string and cannot be left blank or contain spaces. 策略display_name为空或包含空格。 检查display_name字段的值是否正确。 400 IAM.1002 The length [input length] of the display name exceeds 64 characters. 策略display_name不能超过64个字符。 检查display_name字段的长度。 400 IAM.1003 The display_name contains invalid characters. 策略display_name包含非法字符。 检查display_name字段的值是否正确。 400 IAM.1004 The type must be a string and cannot be left blank or contain spaces. type为空。 检查type字段的值是否正确。 400 IAM.1005 Invalid type [input type]. 非法的type字段。 检查type字段的值是否正确。 400 IAM.1006 The custom policy does not need a catalog. 自定义策略不需要catalog。 删除catalog字段。 400 IAM.1007 The custom policy does not need a flag. 自定义策略不需要flag。 删除flag字段。 400 IAM.1008 The custom policy does not need a name. 自定义策略不需要name。 删除name字段。 400 IAM.1009 The type of a custom policy must be 'AX' or 'XA'. 自定义策略的type只能为'AX'或'XA'。 根据需求修改type字段为'AX'或'XA'。 400 IAM.1010 The catalog must be a string. catalog字段必须为字符串。 检查catalog字段的值是否正确。 400 IAM.1011 The length [input length] of the catalog exceeds 64 characters. catalog字段不能超过64个字符。 检查catalog字段的长度。 400 IAM.1012 Invalid catalog. 非法的catalog字段。 检查catalog字段的值是否正确。 400 IAM.1013 The flag must be a string. flag字段必须为字符串。 检查flag字段的值是否正确。 400 IAM.1014 The value of the flag must be 'fine_grained'. flag字段的值应为"fine_grained"。 将flag字段的值修改为"fine_grained"。 400 IAM.1015 The name must be a string and cannot be left blank or contain spaces. name字段不能为空。 系统角色的name字段必须填写。 400 IAM.1016 The length of the name [input name] cannot exceed 64 characters. name字段长度不能超过64字符。 检查name字段的值是否正确。 400 IAM.1017 Invalid name. 非法的name字段。 检查name字段的值是否正确。 400 IAM.1018 Invalid description. 非法的description字段。 检查description字段的值是否正确。 400 IAM.1019 Invalid description_cn. 非法的description_cn字段。 检查description_cn字段的值是否正确。 400 IAM.1020 The policy must be a JSONObject. 缺少policy对象。 检查请求体中是否有policy对象。 400 IAM.1021 The size [input policySize] of the policy exceeds 6,144 characters. policy对象大小超过6144字符。 检查policy对象的长度。 400 IAM.1022 The length [input id length] of the ID exceeds 128 characters. id字段大小超过128字符。 检查id字段的长度。 400 IAM.1023 Invalid ID '[input id]'. 策略id字段无效。 检查id字段的值是否正确。 400 IAM.1024 The version of a fine-grained policy must be '1.1'. 细粒度策略的version不为1.1。 细粒度策略version字段的值应改为1.1。 400 IAM.1025 Fine-grained policies do not need depends. 细粒度策略不需要depends字段。 删除depends字段。 400 IAM.1026 The version of an RBAC policy must be '1.0' or '1.1'. RBAC的verion只能为1.0和1.1。 version字段的值改为1.0或1.1。 400 IAM.1027 The Statement/Rules must be a JSONArray. statement字段不为JSONArray。 检查是否存在statement,类型为json数组。 400 IAM.1028 The number of statements [input statement size] must be greater than 0 and less than or equal to 8. statement字段长度不为1-8。 至少应填写一个statement,删除超过8个的statement。 400 IAM.1029 The value of Effect must be 'allow' or 'deny'. effect字段只能为allow或deny。 effect字段填写allow或deny。 400 IAM.1030 The Action or NotAction must be a JSONArray. action或notAction字段不合法。 检查action对象的值是否正确。 400 IAM.1031 The Action and NotAction cannot be set at the same time in a statement. action和notAction字段不能同时存在。 删除action或notAction字段。 400 IAM.1032 The OCP NotAction cannot be 'allow'. OCP的notAction不能为allow。 OCP策略如果使用notAction则只能为deny。 400 IAM.1033 The number of actions [input action size] exceeds 100. action的数量超过100。 检查action的数量,不能超过100。 400 IAM.1034 The length [input urn length] of an action URN exceeds 128 characters. action长度超过128。 检查每条action的长度,不能超过128字符。 400 IAM.1035 Action URN '[input urn]' contains invalid characters. action包含非法字符。 检查action的值是否正确。 400 IAM.1036 Action '[input action]' has not been registered. action未被注册。 通过注册中心的接口先注册action。 400 IAM.1037 The number of resource URIs [input Resource uri size ] must be greater than 0 and less than or equal to 20. resource数量只能为1-20。 检查resource的数量。 400 IAM.1038 Resource URI '[input resource uri]' is invalid. Old resources only support agencies. 非法的资源URI。 检查每条资源URI的值是否正确。 400 IAM.1039 Old policies do not support conditions. 旧格式策略不支持condition。 删除condition或使用新格式策略。 400 IAM.1040 The number of resources [input Resource size] must be greater than 0 and less than or equal to 10. 资源URI数量只能为1-10。 检查每个resource对象的URI数量。 400 IAM.1041 The resource URI cannot be left blank or contain spaces. 资源URI为空。 检查每条资源URI的值是否正确。 400 IAM.1042 The length [input uri length] of a resource URI exceeds 1,500 characters. 资源URI超过1500字符。 检查每条资源URI的长度。 400 IAM.1043 A region must be specified. 缺少资源region。 资源URI中填写region。 400 IAM.1044 Region '[input resource region ]' of resource '[input resource]' is invalid. Region字段不合法。 检查region字段的值是否正确。 400 IAM.1045 Resource URI '[input resource uri]' or service '[input resource split]' is invalid. 资源URI中服务名无效。 检查云服务名是否正确或先注册云服务。 400 IAM.1046 Resource URI '[input resource]' or resource type '[input resource split]' is invalid. 资源URI中类型无效。 检查资源类型是否正确或先注册资源类型。 400 IAM.1047 Resource URI '[input resource uri]' contains invalid characters. 资源URI不合法。 检查资源URI的值是否正确。 400 IAM.1048 Resource URI '[input resource uri]' is too long or contains invalid characters. 资源URI包含非法字符。 检查id值是否包含非法字符。 400 IAM.1049 The Resource must be a JSONObject or JSONArray. 缺少resource对象。 检查resource对象是否为json数组。 400 IAM.1050 The number of conditions [input condition size] must be greater than 0 and less than or equal to 10. 条件数量只能为1-10。 至少填写一个条件,或删除多余的条件。 400 IAM.1051 The values of Operator '[input operator]' cannot be null. 操作符为空。 填写正确的操作符。 400 IAM.1052 Invalid Attribute '[input attribute ]'. 非法的属性字段。 检查属性的值是否正确。 400 IAM.1053 Attribute '[input attribute]' must be a JSONArray. attribute不为json数组。 检查attribute对象是否为json数组。 400 IAM.1054 The number [input attribute size ] of attributes '[input attribute]' for operator '[input operator]' must be greater than 0 and less than or equal to 10. 每个操作符对应的属性数量只能为1-10。 检查每个操作符下的attribute数量是否正确。 400 IAM.1055 Attribute '[input attribute ]' does not match operator '[input operator]'. 属性与操作符不匹配。 检查attribute和操作符类型是否匹配。 400 IAM.1056 The length [condition length] of attribute '[input attribute]' for operator '[input operator]' must be greater than 0 and less than or equal to 1024 characters. condition长度只能为1-1024。 检查condition对象的总长度。 400 IAM.1057 Value [input condition] of attribute [input attributes] for operator [input operator] contains invalid characters. condition包含非法字符。 检查condtion中是否包括非法字符。 400 IAM.1058 The number of depends [input policyDepends size] exceeds 20. depends数量超过20。 删除多余的depends值。 400 IAM.1059 Invalid key '{}'. 策略包含非法的Key。 修改或删除策略请求体中非法的key。 400 IAM.1060 The value of key '{}' must be a string. 该字段必须为字符串。 display_name和name字段改为字符串类型。 400 IAM.1061 Invalid TOTP passcode. 非法的认证密钥。 请确认请求或联系技术支持。 400 IAM.1062 Login protection has been bound to mfa, the unbinding operation cannot be performed. 登录保护已经绑定MFA认证,解绑操作不能执行。 请确认请求或联系技术支持。 400 IAM.1101 The request body size %s is invalid. 请求体的大小不合规范。 请检查请求体是否为空或过大(大于32KB)。 400 IAM.1102 The %s in the request body is invalid. 请求体中的某个值错误。 请参照接口资料检查请求体中的属性值。 400 IAM.1103 The %s is required in the request body. 请求体中的必选值缺失。 请参照接口资料检查请求体。 400 IAM.1104 The access key %s is in the blacklist. 请求的AK已在黑名单中。 请确认AK是否存在。 400 IAM.1105 The access key %s has expired. 请求的AK已经过期。 请重新创建访问密钥。 400 IAM.1106 The user %s with access key %s cannot be found. 找不到AK所属用户信息。 请确认AK所属用户或委托是否存在。 400 IAM.1107 The access key %s is inactive. 请求的AK已被禁用。 重新启用AK。 400 IAM.1108 The securitytoken has expired. 临时访问密钥已过期。 请重新获取临时访问密钥。 400 IAM.1109 The project information cannot be found. 找不到project信息。 请检查请求体或者token中的project是否存在,如不能解决请联系技术支持。 401 IAM.0001 The request you have made requires authentication. 请求认证失败。 请补充或确认请求认证信息。 401 IAM.0061 Account locked. 用户被锁定。 请等待自动解锁。 401 IAM.0062 Incorrect password. 用户密码错误。 请输入正确的账号密码。 401 IAM.0063 Access token authentication failed. accesstoken认证失败。 请联系技术支持。 401 IAM.0064 The access token does not have permissions for the request. IAM用户没有权限请求。 请确认该IAM用户的权限信息。 401 IAM.0065 HUAWEI IDs registered in European countries cannot log in to HUAWEI CLOUD. 欧洲站点不允许登录。 请输入华为云支持的账号。 401 IAM.0066 The token has expired. token已过期。 传入有效期内的token。 401 IAM.0067 Invalid token. 错误的token。 传入正确的token。 403 IAM.0002 You are not authorized to perform the requested action. 请求未授权。 请确认是否授权成功。 403 IAM.0003 Policy doesn't allow %(actions)s to be performed. 策略未授权此操作。 请确认策略是否授权此操作。 403 IAM.0080 The user %s with access key %s is disabled. AK所属用户被禁用。 联系用户所属租户的安全管理员。 403 IAM.0081 This user only supports console access, not programmatic access. 用户仅支持控制台访问,不支持程序访问。 联系用户所属租户的安全管理员修改用户访问模式。 403 IAM.0082 The user %s is disabled. 用户被禁用。 请联系用户所属租户安全管理员。 403 IAM.0083 You do not have permission to access the private region %s. 你没有私有region的访问权限。 请使用其他region或者联系私有region管理员。 404 IAM.0004 Could not find %(target)s: %(target_id)s. 无法找到请求资源。 请确认请求或联系技术支持。 409 IAM.0005 Conflict occurred when attempting to store %(type)s - %(details)s. 保存请求资源时发生冲突。 请确认请求或联系技术支持。 410 IAM.0020 Original auth failover to other regions, please auth downgrade 源区域Auth服务故障转移至其他区域,系统将自动进行认证降级。 系统将自动进行认证降级。 429 IAM.0012 The throttling threshold has been reached. Threshold: %d times per %d seconds 已达到限流阈值。 请确认请求或联系技术支持。 500 IAM.0006 An unexpected error prevented the server from fulfilling your request. 系统错误。 请联系技术支持。 父主题: 附录
  • 响应示例 状态码为 200 时: 请求成功。 { "agency":{ "create_time":"2020-01-04T03:37:16.000000", "description":"", "domain_id":"d78cbac186b744899480f25bd...8", "duration":"FOREVER", "id":"0760a9e2a60026664f1fc0031f9f205e", "name":"IAMAgency", "agency_urn": "iam::d78cbac186b744899480f25b...8:agency:IAMAgency", "trust_domain_id":"a2cd82a33fb043dc9304bf72...", "trust_domain_name":"IAMDomainB" } }
  • 响应参数 表3 响应Body参数 参数 参数类型 描述 agency object 委托信息。 表4 agency 参数 参数类型 描述 create_time String 委托创建时间。 说明: UTC时间,格式为YYYY-MM-DDTHH:mm:ss.ssssss,日期和时间戳格式如:2023-06-28T08:56:33.710000。 description String 委托描述信息。 domain_id String 委托方账号ID。 duration String 委托的期限,单位为“小时”。 FOREVER/null:表示委托的期限为永久。 24:表示委托的期限为一天,即24小时。 XXX:表示委托的期限为有限时间,如480小时。 expire_time String 委托过期时间。“null”表示不过期。 说明: UTC时间,格式为YYYY-MM-DDTHH:mm:ss.ssssss,日期和时间戳格式如:2023-06-28T08:56:33.710000。 id String 委托ID。 name String 委托名。 agency_urn String 委托URN。 trust_domain_id String 被委托方账号ID。 trust_domain_name String 被委托方账号名。
  • 请求示例 获取自定义身份代理登录票据。 POST https://iam.myhuaweicloud.com/v3.0/OS-AUTH/securitytoken/logintokens { "auth": { "securitytoken": { "access": "LUJHNN4WB569PGAP...", "secret": "7qtrm2cku0XubixiVkBOcvMfpnu7H2mLN...", "id": "gQpjbi1ub3J0a...", "duration_seconds":"600" } } }
  • 响应示例 状态码为 201 时: 创建成功。 示例1:通过token获取临时访问密钥和securitytoken。 示例2:通过委托获取临时访问密钥和securitytoken且请求体中填写session_user.name参数。 示例 1 响应Header参数: X-Subject-LoginToken:MIIatAYJKoZIhvcNAQcCoIIapTCCGqECAQExDTALB... 响应Body参数: { "logintoken": { "domain_id": "05262121fb00d5c30fbec013bc1...", "expires_at": "2020-01-20T08:18:36.447000Z", "method": "token", "user_id": "0526213b8a80d38a1f31c013ed...", "user_name": "IAMUser", "session_user_id": "093f75808b8089ba1f6dc000c7cac...", "session_id": "40b328b6683a41b9bf8e7185e..." } } 示例 2 响应Header参数: X-Subject-LoginToken:MIIatAYJKoZIhvcNAQcCoIIapTCCGqECAQExDTALB... 响应Body参数: { "logintoken": { "domain_id": "05262121fb00d5c30fbec01...", "expires_at": "2020-01-23T03:27:26.728000Z", "method": "federation_proxy", "user_id": "07826f367b80d2474ff9c013a...", "user_name": "IAMDomainA/IAMAgency", "session_id": "0012c8e6adda4ce787e90585d...", "session_user_id": "093f75808b8089ba1f6dc000c7cac...", "session_name": "SessionUserName", "assumed_by": { "user": { "domain": { "name": "IAMDomainB", "id": "0659ef9c9c80d4560f14c009ac..." }, "name": "IAMUserB", "password_expires_at": "2020-02-16T02:44:57.000000Z", "id": "0659ef9d4d00d3b81f26c009fe..." } } } }
  • 响应参数 表5 响应Header参数 参数 参数类型 描述 X-Subject-LoginToken String 签名后的logintoken。 表6 响应Body参数 参数 参数类型 描述 logintoken Object 自定义身份代理登录票据信息。 表7 logintoken 参数 参数类型 描述 domain_id String 账号ID。 expires_at String logintoken的过期时间。 method String 认证方法。当认证用户为华为云用户时,该字段内容为“token”,当认证用户为自定义身份代理用户时,该字段内容为“federation_proxy”。 user_id String 用户ID。 user_name String 用户名。 session_id String 会话ID。 session_user_id String 自定义身份代理用户ID。 说明: 通过委托获取临时访问密钥和securitytoken且请求体中填写session_user.name参数时,会返回该字段。该字段的值即为session_user.name所填写的值。 session_name String 自定义身份代理用户名。 说明: 通过委托获取临时访问密钥和securitytoken且请求体中填写session_user.name参数时,会返回该字段。该字段的值即为session_user.name所填写的值。 assumed_by Object 被委托方用户信息。 说明: 通过委托获取临时访问密钥和securitytoken且请求体中填写session_user.name参数时,会返回该字段。 表8 logintoken.assumed_by 参数 参数类型 描述 user Object 被委托方用户信息。 表9 logintoken.assumed_by.user 参数 参数类型 描述 domain Object 被委托方用户所属账号信息。 name String 被委托方用户名。 password_expires_at String 被委托方用户的密码过期时间。 说明: UTC时间,格式为YYYY-MM-DDTHH:mm:ss.ssssssZ,日期和时间戳格式参照ISO-8601,如:2023-06-28T08:56:33.710000Z。 id String 被委托方用户ID。 表10 logintoken.assumed_by.user.domain 参数 参数类型 描述 name String 被委托方用户所属账号名称。 id String 被委托方用户所属账号ID。
  • 请求参数 表1 请求Header参数 参数 是否必选 参数类型 描述 Content-Type 是 String 该字段内容填为“application/json;charset=utf8”。 表2 请求Body参数 参数 是否必选 参数类型 描述 auth 是 Object 认证信息。 表3 auth 参数 是否必选 参数类型 描述 securitytoken 是 Object 认证参数。 表4 auth.securitytoken 参数 是否必选 参数类型 描述 access 是 String AK。 secret 是 String SK。 id 是 String 即临时安全凭证securitytoken。 支持使用自定义身份代理用户或普通用户获取的securitytoken换取logintoken,详情请参见:通过token获取临时访问密钥和securitytoken。 支持委托的方式,但获取securitytoken时,请求体中必须填写session_user.name参数,详情请参见:通过委托获取临时访问密钥和securitytoken。 duration_seconds 否 Integer 自定义身份代理登录票据logintoken的有效时间,时间单位为秒。默认10分钟,即600秒,取值范围10分钟~12小时。 说明: 如果传入的值不在取值范围(10分钟~12小时)内,则取默认值10分钟。 logintoken有效时间为临时安全凭证securitytoken剩余有效时间与duration_seconds传参的最小值。 为避免duration_seconds传参无效,建议设置临时安全凭证securitytoken具有较长的有效期(15分钟~24小时),且duration_seconds传参小于临时安全凭证securitytoken剩余有效时间。 当临时安全凭证securitytoken剩余有效时间小于10分钟时,logintoken的有效时间将取默认值10分钟。
  • 功能介绍 该接口用于获取自定义身份代理登录票据logintoken。logintoken是系统颁发给自定义身份代理用户的登录票据,承载用户的身份、session等信息。调用自定义身份代理URL登录云服务控制台时,可以使用本接口获取的logintoken进行认证。 该接口可以使用全局区域的Endpoint和其他区域的Endpoint调用。IAM的Endpoint请参见:地区和终端节点。 自定义身份代理登录票据logintoken默认有效期为10分钟,可设置范围为10分钟~12小时。
  • 响应示例 状态码为 200 时: 请求成功。 { "mapping": { "rules": [ { "local": [ { "user": { "name": "LocalUser" } }, { "group": { "name": "LocalGroup" } } ], "remote": [ { "type": "UserName" }, { "type": "orgPersonType", "not_any_of": [ "Contractor", "Guest" ] } ] } ], "id": "ACME", "links": { "self": "https://iam.myhuaweicloud.com/v3/OS-FEDERATION/mappings/ACME" } } }
  • 响应示例 状态码为 201 时: 创建成功。 { "credential": { "access": "P83EVBZJMXCYTMUII...", "create_time": "2020-01-08T06:25:19.014028Z", "user_id": "07609fb9358010e21f7bc003751...", "description": "IAMDescription", "secret": "TTqAHPbhWorg9ozx8Dv9MUyzYnOKDppxzHt...", "status": "active" } } 状态码为 400 时: 参数无效。(包括密钥数量已达到上限。) { "error": { "message": "akSkNumExceed", "code": 400, "title": "Bad Request", "error_msg": null, "error_code": null } }
  • 请求示例 给IAM用户创建永久访问密钥(用户ID为:07609fb9358010e21f7bc003751c....) POST https://iam.myhuaweicloud.com/v3.0/OS-CREDENTIAL/credentials { "credential": { "description": "IAMDescription", "user_id": "07609fb9358010e21f7bc003751c...." } }
  • 功能介绍 该接口可以用于管理员给IAM用户创建永久访问密钥,或IAM用户给自己创建永久访问密钥。 访问密钥(Access Key ID/Secret Access Key,简称AK/SK),是您通过开发工具(API、CLI、SDK)访问华为云时的身份凭证,不用于登录控制台。系统通过AK识别访问用户的身份,通过SK进行签名验证,通过加密签名验证可以确保请求的机密性、完整性和请求者身份的正确性。在控制台创建访问密钥的方式请参见:访问密钥。 该接口可以使用全局区域的Endpoint和其他区域的Endpoint调用。IAM的Endpoint请参见:地区和终端节点。
  • 响应参数 表4 响应Body参数 参数 参数类型 描述 credential Object 认证结果信息。 表5 credential 参数 参数类型 描述 create_time String 创建访问密钥时间。 说明: UTC时间,格式为YYYY-MM-DDTHH:mm:ss.ssssssZ,日期和时间戳格式参照ISO-8601,如:2023-06-28T08:56:33.710000Z。 access String 创建的AK。 secret String 创建的SK。 status String 访问密钥状态。 取值范围: active:启用 inactive:停用 user_id String IAM用户ID。 description String 访问密钥描述信息。
  • 请求参数 表1 请求Header参数 参数 是否必选 参数类型 描述 Content-Type 是 String 该字段填为“application/json;charset=utf8”。 X-Auth-Token 是 String 管理员给IAM用户创建永久访问密钥:请参见授权项。IAM用户给自己创建永久访问密钥:请求体中user_id所对应IAM用户的token(无需特殊权限)。 表2 请求Body参数 参数 是否必选 参数类型 描述 credential 是 Object 认证信息。 表3 credential 参数 是否必选 参数类型 描述 user_id 是 String 待创建访问密钥(AK/SK)的IAM用户ID,获取方式请参见:获取账号、IAM用户、项目、用户组、区域、委托的名称和ID。 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 访问密钥描述信息。
共100000条