华为云用户手册

  • Exchange 表3 Exchange约束与限制 限制项 约束和限制 默认Exchange RabbitMQ 3.8.35版本在创建Vhost后会创建7个默认Exchange:(AMQP default)、amq.direct、amq.fanout、amq.headers、amq.match、amq.rabbitmq.trace、amq.topic。 绑定Exchange RabbitMQ 3.8.35版本中,名为“(AMQP default)”的Exchange不能绑定任何Exchange。 “Internal”为“是”的Exchange只能绑定Exchange,不能绑定Queue。 RabbitMQ AMQP-0-9-1版本的Exchange不支持绑定Exchange,只支持绑定Queue。 删除Exchange RabbitMQ 3.8.35版本中,默认Exchange不支持删除。
  • Queue 表4 Queue约束与限制 限制项 约束和限制 绑定Queue RabbitMQ 3.8.35版本中,名为“(AMQP default)”的Exchange不能绑定任何Queue。 “Internal”为“是”的Exchange只能绑定Exchange,不能绑定Queue。 惰性队列 仅RabbitMQ 3.8.35版本支持惰性队列。 仲裁队列 仅RabbitMQ 3.8.35版本支持仲裁队列。 单一活跃消费者 仅RabbitMQ 3.8.35版本支持单一活跃消费者特性。
  • RabbitMQ版本差异 RabbitMQ 3.8.35版本和AMQP-0-9-1版本有部分的功能差异,具体如表1所示。 表1 版本功能差异 功能项 3.8.35 AMQP-0-9-1 SSL √ × 公网访问 在RabbitMQ控制台开启公网 在ELB控制台绑定公网 仲裁队列 √ × 镜像队列 √ × 优先级队列 √ × 插件 √ × Web UI √ × 重置实例密码 √ × 变更实例规格 √ × 用户管理 在Web UI设置 在RabbitMQ控制台设置 消息查询 × √ IPv6内网连接 √ ×
  • 准备工作 建议在源端内网环境中准备一台用于安装Edge的Windows主机,并确保该Windows主机满足以下要求: 可以连接外网(公网),并检查是否能够访问MgC和IoTDA服务的 域名 ,具体需要检查的域名请查看域名列表。 PowerShell 版本在3.0及以上。 推荐规格不小于4U8G。 安全组的出方向规则中,需要包含8883端口。 关闭该主机上的杀毒、防护类软件,该类软件会拦截Edge的执行,导致迁移工作流执行失败。 不建议将Edge安装在源端待迁移的主机上,主要原因包括: 资源消耗:Edge在采集和迁移运行过程中会消耗CPU和内存资源。在迁移任务量大时,这可能会对源端的业务运行造成影响。 端口占用:Edge会占用源端主机上的一些端口,也可能会对源端业务产生影响。 已 注册华为账号 并开通华为云,并获取账号的AK/SK。 已在MgC控制台创建迁移项目。
  • 操作步骤 使用在源端内网环境准备好的Windows主机,登录迁移中心管理控制台。 在左侧导航栏单击“迁移工具”,进入迁移工具页面。 在Windows区域,单击“下载安装包”,将Edge安装程序下载到Windows主机。 将下载的Edge安装包解压,双击Edge安装程序,单击“下一步”。如果无法正常启动安装程序,请尝试以兼容性模式运行,方法请参见已兼容性模式运行程序。 在许可证协议界面,仔细阅读许可证协议,勾选我接受“许可证协议”中的条款,单击“下一步”。 选择安装目录(请选择C盘作为安装目录),单击“安装”。 当前仅支持安装在C盘目录下。若选择其他磁盘进行安装,可能导致Edge无法正常启动。 安装完成后,单击“完成”,打开Edge控制台,进入用户注册页面。
  • 认证方式 支持在Edge上添加凭证的资源类型包括:私有云、主机、容器。各资源类型包含的认证方式参见表1。 表1 各资源认证方式 资源类型 认证方式 说明 公有云 AK/SK 配置文件 ID/密钥 AK/SK适用于添加华为云、阿里云、AWS、腾讯云、七牛云和金山云等云平台凭证。 配置文件适用于添加谷歌云平台凭证。配置文件需要上传谷歌云服务账号凭据,该凭证必须为json格式文件,且大小不能超过4KB。 ID/密钥适用于添加Azure平台凭证。添加凭证所需的信息获取方法请参见如何获取添加Azure凭证所需的信息。 私有云 用户名/密码 输入源端私有云的登录用户名、密码。 数据库 用户名/密码 输入数据库的登录用户名、密码。 Windows主机 用户名/密码 输入源端主机的登录用户名、密码。网段限制填写网段地址,可以是单个IP地址或IP地址段。 例如: 单个IP地址:192.168.10.10/32 IP地址段:192.168.52.0/24 所有IP地址:0.0.0.0/0 Linux主机 用户名/密码 用户名/密钥 选择用户名和密码时,输入源端主机的登录用户名、密码。 选择用户名和密钥时,输入源端主机登录用户名、口令(密钥文件对应的密码)、上传.pem类型的密钥文件。 须知: 如果密钥文件未加密,则口令无需填写。 网段限制填写网段地址,可以是单个IP地址或IP地址段。例如: 单个IP地址:192.168.10.10/32 IP地址段:192.168.52.0/24 所有IP地址:0.0.0.0/0 容器 配置文件 配置文件格式必须为.json文件或.yml文件。
  • 响应示例 状态码为 201 时: 创建成功。 示例 1:获取 IAM 用户名为“IAMUser”,密码为“IAMPassword”,所属账号名为“IAMDomain”,作用范围为整个账号的Token。 响应Header参数(获取到的Token): X-Subject-Token:MIIatAYJKoZIhvcNAQcCoIIapTCCGqECAQExDTALB... 响应Body参数: { "token": { "expires_at": "2020-01-04T09:08:49.965000Z", "mfa_authn_at": "2020-01-03T09:08:49.965000Z", "methods": [ "password", "totp" ], "catalog": [ { "endpoints": [ { "id": "33e1cbdd86d34e89a63cf8ad16a5f...", "interface": "public", "region": "*", "region_id": "*", "url": "https://iam.myhuaweicloud.com/v3.0" } ], "id": "100a6a3477f1495286579b819d399...", "name": "iam", "type": "iam" }, { "endpoints": [ { "id": "29319cf2052d4e94bcf438b55d143...", "interface": "public", "region": "*", "region_id": "*", "url": "https://bss.sample.domain.com/v1.0" } ], "id": "c6db69fabbd549908adcb861c7e47...", "name": "bssv1", "type": "bssv1" } ], "domain": { "id": "d78cbac186b744899480f25bd022f...", "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": "d78cbac186b744899480f25bd022f...", "name": "IAMDomain" }, "id": "7116d09f88fa41908676fdd4b039e...", "name": "IAMUser", "password_expires_at": "" } } } 示例 2:获取IAM用户名为“IAMUser”,密码为“IAMPassword”,所属账号名为“IAMDomain”,作用范围为项目“cn-north-1”,且返回的响应体中将不显示catalog信息的Token。 响应Header参数(获取到的Token): X-Subject-Token:MIIatAYJKoZIhvcNAQcCoIIapTCCGqECAQExDTALB... 响应Body参数: { "token": { "expires_at": "2020-01-04T09:05:22.701000Z", "mfa_authn_at": "2020-01-03T09:05:22.701000Z", "methods": [ "password", "totp" ], "catalog": [], "roles": [ { "id": "0", "name": "te_admin" }, { "id": "0", "name": "op_gated_OBS_file_protocol" }, { "id": "0", "name": "op_gated_Video_Campus" } ], "project": { "domain": { "id": "d78cbac186b744899480f25bd022f...", "name": "IAMDomain" }, "id": "aa2d97d7e62c4b7da3ffdfc11551f...", "name": "cn-north-1" }, "issued_at": "2020-01-03T09:05:22.701000Z", "user": { "domain": { "id": "d78cbac186b744899480f25bd022f...", "name": "IAMDomain" }, "id": "7116d09f88fa41908676fdd4b039e...", "name": "IAMUser", "password_expires_at": "" } } } 状态码为 400 时: 参数无效。 { "error": { "code": 400, "message": "The request body is invalid", "title": "Bad Request" } } 状态码为 401 时: 认证失败。 如果您是第三方系统用户,直接使用联邦认证的用户名和密码 获取Token ,系统会提示密码错误。请在华为云的登录页面,通过“忘记密码”功能,设置华为云账号密码,并在password中输入新设置的密码。 如果您的华为云账号已升级为华为账号,直接使用华为账号名和密码获取Token,系统会提示密码错误。建议您为自己创建一个IAM用户,授予该用户必要的权限,获取IAM用户Token。 { "error": { "code": 401, "message": "The username or password is wrong.", "title": "Unauthorized" } }
  • 响应参数 表14 响应Header参数 参数 参数类型 描述 X-Subject-Token String 签名后的Token。 表15 响应Body参数 参数 参数类型 描述 token Object 获取到的Token信息。 表16 token 参数 参数类型 描述 catalog Array of objects 服务目录信息。 domain Object 获取Token的IAM用户所属的账号信息。如果获取Token时请求体中scope参数设置为domain,则返回该字段。 expires_at String Token过期时间。 说明: UTC时间,格式为YYYY-MM-DDTHH:mm:ss.ssssssZ,日期和时间戳格式参照ISO-8601,如:2023-06-28T08:56:33.710000Z。 mfa_authn_at String MFA验证时间。 说明: UTC时间,格式为YYYY-MM-DDTHH:mm:ss.ssssssZ,日期和时间戳格式参照ISO-8601,如:2023-06-28T08:56:33.710000Z。 issued_at String Token下发时间。 说明: UTC时间,格式为YYYY-MM-DDTHH:mm:ss.ssssssZ,日期和时间戳格式参照ISO-8601,如:2023-06-28T08:56:33.710000Z。 methods Array of strings 获取Token的方式。 project Object 获取Token的IAM用户所属账号的项目信息。如果获取Token时请求体中scope参数设置为project,则返回该字段。 roles Array of objects Token的权限信息。 user Object 获取Token的IAM用户信息。 表17 token.catalog 参数 参数类型 描述 endpoints Array of objects 终端节点。 id String 服务ID。 name String 服务名称。 type String 该接口所属服务。 表18 token.catalog.endpoints 参数 参数类型 描述 id String 终端节点ID。 interface String 接口类型,描述接口在该终端节点的可见性。值为“public”,表示该接口为公开接口。 region String 终端节点所属区域。 region_id String 终端节点所属区域ID。 url String 终端节点的URL。 表19 token.domain 参数 参数类型 描述 name String 账号名称。 id String 账号ID。 表20 token.project 参数 参数类型 描述 domain Object 项目所属账号信息。 id String 项目ID。 name String 项目名称。 表21 token.project.domain 参数 参数类型 描述 id String 账号ID。 name String 账号名称。 表22 token.roles 参数 参数类型 描述 name String 权限名称。 id String 权限ID。默认显示为0,非真实权限ID。 表23 token.user 参数 参数类型 描述 name String IAM用户名。 id String IAM用户ID。 password_expires_at String 密码过期时间,“”表示密码不过期。 说明: UTC时间,格式为YYYY-MM-DDTHH:mm:ss.ssssssZ,日期和时间戳格式参照ISO-8601,如:2023-06-28T08:56:33.710000Z。 domain Object IAM用户所属的账号信息。 表24 token.user.domain 参数 参数类型 描述 name String IAM用户所属账号名称。 id String IAM用户所属账号ID。
  • 请求示例 示例1:获取IAM用户名为“IAMUser”,密码为“IAMPassword”,所属账号名为“IAMDomain”,作用范围为整个账号的Token。IAM用户名、所属账号名可以在界面控制台“我的凭证”中查看,具体获取方法请参见:获取账号、IAM用户、项目、用户组、区域、委托的名称和ID。 POST https://iam.myhuaweicloud.com/v3/auth/tokens { "auth": { "identity": { "methods": [ "password", "totp" ], "password": { "user": { "name": "IAMUser", //IAM用户名 "password": "IAMPassword", //IAM用户密码 "domain": { "name": "IAMDomain" //IAM用户所属账号名 } } }, "totp": { "user": { "id": "7116d09f88fa41908676fdd4b039e...", //IAM用户ID "passcode": "******" //虚拟MFA验证码 } } }, "scope": { "domain": { "name": "IAMDomain" //IAM用户所属账号名 } } } } 示例2:获取IAM用户名为“IAMUser”,密码为“IAMPassword”,所属账号名为“IAMDomain”,作用范围为项目“cn-north-1”,且返回的响应体中将不显示catalog信息的Token。IAM用户名、所属账号名可以在界面控制台“我的凭证”中查看,具体获取方法请参见:获取账号、IAM用户、项目、用户组、区域、委托的名称和ID。 POST https://iam.myhuaweicloud.com/v3/auth/tokens?nocatalog=true { "auth": { "identity": { "methods": [ "password", "totp" ], "password": { "user": { "name": "IAMUser", //IAM用户名 "password": "IAMPassword", //IAM用户密码 "domain": { "name": "IAMDomain" //IAM用户所属账号名 } } }, "totp": { "user": { "id": "7116d09f88fa41908676fdd4b039e...", //IAM用户ID "passcode": "******" //虚拟MFA验证码 } } }, "scope": { "project": { "name": "cn-north-1" //项目名称 } } } }
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 Content-Type 是 String 该字段内容填为“application/json;charset=utf8”。 表3 请求Body参数 参数 是否必选 参数类型 描述 auth 是 Object 认证信息。 表4 auth 参数 是否必选 参数类型 描述 identity 是 Object 认证参数。 scope 是 Object Token的使用范围,取值为project或domain,二选一即可。 说明: 如果您将scope设置为domain,该Token适用于全局级服务;如果将scope设置为project,该Token适用于项目级服务。 如果您将scope同时设置为project和domain,将以project参数为准,获取到项目级服务的Token。 如果您将scope置空,将获取到全局级服务的Token。建议您按需要填写Token使用范围。 表5 auth.identity 参数 是否必选 参数类型 描述 methods 是 Array of strings 认证方法,该字段内容为["password", "totp"]。 取值范围: password totp password 是 Object 用户密码认证信息。 说明: user.name和user.domain.name可以在界面控制台“我的凭证”中查看,具体获取方法请参见:获取账号、IAM用户、项目、用户组、区域、委托的名称和ID。 该接口提供了锁定机制用于防止暴力破解,调用时,请确保用户名密码正确,输错一定次数(管理员可设置该规则,方法请参见:账号锁定策略)将被锁定。 totp 是 Object totp认证信息,仅在您已开启虚拟MFA方式的登录保护功能时需要填写该参数。 表6 auth.identity.password 参数 是否必选 参数类型 描述 user 是 Object 需要获取Token的IAM用户信息。 表7 auth.identity.password.user 参数 是否必选 参数类型 描述 domain 是 Object IAM用户所属账号信息。了解账号与IAM用户的关系。 name 是 String IAM用户名。 password 是 String IAM用户的登录密码。 说明: 务必保证密码输入正确,避免获取Token失败。 如果您是第三方系统用户,直接使用联邦认证的用户名和密码获取Token,系统会提示密码错误。请在华为云的登录页面,通过“忘记密码”功能,设置华为云账号密码,并在password中输入新设置的密码。 表8 auth.identity.password.user.domain 参数 是否必选 参数类型 描述 name 是 String IAM用户所属账号名称,获取方式请参见:获取账号、IAM用户、项目、用户组、区域、委托的名称和ID。 表9 auth.identity.totp 参数 是否必选 参数类型 描述 user 是 Object IAM用户信息。该IAM用户已开启登录保护,并选择以虚拟MFA方式进行身份验证,开启/关闭登录保护方法请参见:敏感操作。 表10 auth.identity.totp.user 参数 是否必选 参数类型 描述 id 是 String 已开启虚拟MFA方式的登录保护的IAM用户ID。 passcode 是 String 虚拟MFA验证码,在MFA应用程序中获取动态验证码,获取方法请参见:如何获取虚拟MFA验证码。 说明: 务必保证验证码输入正确,避免获取Token失败。 表11 auth.scope 参数 是否必选 参数类型 描述 domain 否 Object 取值为domain时,表示获取的Token可以作用于全局服务,全局服务不区分项目或区域,如OBS服务。如需了解服务作用范围,请参考系统权限。domain支持id和name,二选一即可,建议选择“domain.id”。 project 否 Object 取值为project时,表示获取的Token可以作用于项目级服务,仅能访问指定project下的资源,如E CS 服务。如需了解服务作用范围,请参考系统权限。project支持id和name,二选一即可。 表12 auth.scope.domain 参数 是否必选 参数类型 描述 id 否 String IAM用户所属账号ID,获取方式请参见:获取账号、IAM用户、项目、用户组、区域、委托的名称和ID。 name 否 String IAM用户所属账号名称,获取方式请参见:获取账号、IAM用户、项目、用户组、区域、委托的名称和ID。 表13 auth.scope.project 参数 是否必选 参数类型 描述 id 否 String IAM用户所属账号的项目id,获取方式请参见:获取账号、IAM用户、项目、用户组、区域、委托的名称和ID。 name 否 String IAM用户所属账号的项目名称,获取方式请参见:获取账号、IAM用户、项目、用户组、区域、委托的名称和ID。
  • 功能介绍 该接口可以用于通过用户名/密码+虚拟MFA的方式进行认证,在IAM用户开启了的登录保护功能,并选择通过虚拟MFA验证时获取IAM用户Token。Token是系统颁发给用户的访问令牌,承载用户的身份、权限等信息。调用IAM以及其他云服务的接口时,可以使用本接口获取的Token进行鉴权。 该接口可以使用全局区域的Endpoint和其他区域的Endpoint调用。IAM的Endpoint请参见:地区和终端节点。 接口使用导航: IAM用户获取Token 判断当前账号是华为账号还是华为云账号 华为账号获取Token 华为云账号获取Token 第三方系统用户获取Token Token有效期说明 获取Token常见问题 其他相关操作 IAM用户获取Token 无特殊要求,请按照请求参数说明获取Token。 判断当前账号是华为账号还是华为云账号 华为账号不支持直接获取账号Token,排查是否为华为账号请参见:怎么知道当前登录华为云使用的是“华为账号” 还是“华为云账号”? 华为账号获取Token 华为账号获取token请参见以下步骤:创建一个IAM用户,授予该用户必要的权限,使用创建的IAM用户,获取IAM用户Token。 华为云账号获取Token 无特殊要求,请按照请求参数说明获取Token。 第三方系统用户获取Token 如果您是第三方系统用户,直接使用联邦认证的用户名和密码获取Token,系统会提示密码错误。请先在华为云的登录页面,通过“忘记密码”功能,设置华为云账号密码。 Token有效期说明 Token的有效期为24小时。建议进行缓存,避免频繁调用。使用Token前请确保Token离过期有足够的时间,防止调用API的过程中Token过期导致调用API失败。重新获取Token,不影响已有Token有效性。 如果在Token有效期内进行如下操作,当前Token最长30分钟失效。 删除/停用IAM用户。 修改IAM用户密码、访问密钥。 IAM用户权限发生变化(如账号欠费无法访问云服务、申请公测通过、IAM用户权限被修改等)。 使用Token调用云服务API时, 返回“The token must be updated”,则Token过期,需要客户端重新获取Token。 获取Token常见问题 用户名或密码错误:请排查输入的用户名和密码是否正确。用户名密码正确但是仍旧报错,请排查当前获取Token的账号是否为华为账号,华为账号不支持直接获取Token,请新建IAM用户并授权,使用IAM用户获取Token。 没有API访问权限:调用API前,请确保已开启编程访问。 相关操作 如果需要获取具有Security Administrator权限的Token,请参见:如何获取Security Administrator权限的Token。 通过Postman获取用户Token示例请参见:如何通过Postman获取用户Token。
  • 请求示例 创建一个名为“IAMAgencyPolicy”的委托自定义策略。策略表示作用范围为全局服务,委托资源的URI是/iam/agencies/07805acaba800fdd4fbdc00b8f888c7c。 POST https://iam.myhuaweicloud.com/v3.0/OS-ROLE/roles { "role": { "display_name": "IAMAgencyPolicy", "type": "AX", "description": "IAMDescription", "description_cn": "中文描述", "policy": { "Version": "1.1", "Statement": [ { "Effect": "Allow", "Action": [ "iam:agencies:assume" ], "Resource": { "uri": [ "/iam/agencies/07805acaba800fdd4fbdc00b8f888c7c" ] } } ] } } }
  • 响应示例 状态码为 201 时: 创建成功。 { "role": { "catalog": "CUSTOMED", "display_name": "IAMAgencyPolicy", "description": "IAMDescription", "links": { "self": "https://iam.myhuaweicloud.com/v3/roles/f67224e84dc849ab954ce29fb4f47f8e" }, "policy": { "Version": "1.1", "Statement": [ { "Action": [ "iam:agencies:assume" ], "Resource": { "uri": [ "/iam/agencies/07805acaba800fdd4fbdc00b8f888c7c" ] }, "Effect": "Allow" } ] }, "description_cn": "中文描述", "domain_id": "d78cbac186b744899480f25bd02...", "type": "AX", "id": "f67224e84dc849ab954ce29fb4f47f8e", "name": "custom_d78cbac186b744899480f25bd022f468_0" } }
  • 请求参数 表1 请求Header参数 参数 是否必选 参数类型 描述 Content-Type 是 String 该字段内容填为“application/json;charset=utf8”。 X-Auth-Token 是 String 访问令牌,承载用户的身份、权限等信息。 token所需权限请参见授权项。 表2 请求Body参数 参数 是否必选 参数类型 描述 role 是 Object 自定义策略信息。 表3 role 参数 是否必选 参数类型 描述 display_name 是 String 自定义策略展示名,长度1~128字符之间。 type 是 String 自定义策略的显示模式。 说明: AX:全局服务。 XA:区域级项目。 自定义策略的显示模式只能为AX或者XA,不能同时在全局服务和区域级项目生效(AA),或者在全局服务和区域级项目都不生效(XX)。 description 是 String 自定义策略的描述信息。 description_cn 否 String 自定义策略的中文描述信息。 policy 是 Object 自定义策略的具体内容。 表4 role.policy 参数 是否必选 参数类型 描述 Version 是 String 权限版本号,创建自定义策略时,该字段值填为“1.1”。 说明: 1.0:系统预置的角色。以服务为粒度,提供有限的服务相关角色用于授权。 1.1:策略。IAM最新提供的一种细粒度授权的能力,可以精确到具体服务的操作、资源以及请求条件等。 Statement 是 Array of objects 授权语句,描述自定义策略的具体内容。 表5 role.policy.Statement 参数 是否必选 参数类型 描述 Action 是 Array of strings 授权项,指对资源的具体操作权限。支持的授权项请参考各云服务《API参考》中“权限和授权项”章节。 说明: 当自定义策略为委托自定义策略时,该字段值为: "Action": ["iam:agencies:assume"]。 取值范围: iam:agencies:assume Effect 是 String 作用。包含两种:允许(Allow)和拒绝(Deny),既有Allow又有Deny的授权语句时,遵循Deny优先的原则。 取值范围: Allow Deny Resource 否 Object 委托资源。在有其他账号与您创建了多个委托关系,即您是被委托方,需要将委托中的权限授权给不同的用户组,这些用户组中的IAM用户进行角色切换时,仅能切换到被授权的委托中,不能切换其他委托。例: "Resource": {"uri": ["/iam/agencies/07805acaba800fdd4fbdc00b8f888c7c"]} 表6 role.policy.Statement.Resource 参数 是否必选 参数类型 描述 uri 是 Array of strings 委托资源的URI,长度不超过128。格式为:/iam/agencies/委托ID。例: "uri": ["/iam/agencies/07805acaba800fdd4fbdc00b8f888c7c"]
  • 响应参数 表7 响应Body参数 参数 参数类型 描述 role Object 自定义策略信息。 表8 role 参数 参数类型 描述 catalog String 自定义策略所在目录。 display_name String 自定义策略展示名。 description String 自定义策略的描述信息。 links Object 自定义策略的资源链接信息。 policy Object 自定义策略的具体内容。 description_cn String 自定义策略的中文描述信息,仅在请求中传入了description_cn参数,响应体中才会返回此字段。 domain_id String 自定义策略所属账号ID。 type String 自定义策略的显示模式。 说明: AX:全局服务。 XA:区域级项目。 自定义策略的显示模式只能为AX或者XA,不能同时在全局服务和区域级项目生效(AA),或者在全局服务和区域级项目都不生效(XX)。 id String 自定义策略ID。 name String 自定义策略名。 updated_time String 自定义策略更新时间。 说明: UNIX时间戳格式,单位是毫秒,时间戳格式如:1687913793000。 created_time String 自定义策略创建时间。 说明: UNIX时间戳格式,单位是毫秒,时间戳格式如:1687913793000。 表9 role.links 参数 参数类型 描述 self String 资源链接地址。 表10 role.policy 参数 参数类型 描述 Version String 权限版本号。 说明: 1.0:系统预置的角色。以服务为粒度,提供有限的服务相关角色用于授权。 1.1:策略。IAM最新提供的一种细粒度授权的能力,可以精确到具体服务的操作、资源以及请求条件等。 Statement Array of objects 授权语句,描述自定义策略的具体内容。 表11 role.policy.Statement 参数 参数类型 描述 Action Array of strings 授权项,指对资源的具体操作权限。支持的授权项请参考各云服务《API参考》中“权限和授权项”章节。 说明: 当自定义策略为委托自定义策略时,该字段值为: "Action": ["iam:agencies:assume"]。 Effect String 作用。包含两种:允许(Allow)和拒绝(Deny),既有Allow又有Deny的授权语句时,遵循Deny优先的原则。 取值范围: Allow Deny Resource Object 委托资源,仅在创建请求中传递此字段,才会返回此对象。在有其他账号与您创建了多个委托关系,即您是被委托方,需要将委托中的权限授权给不同的用户组,这些用户组中的IAM用户进行角色切换时,仅能切换到被授权的委托中,不能切换其他委托。例: "Resource": {"uri": ["/iam/agencies/07805acaba800fdd4fbdc00b8f888c7c"]} 表12 role.policy.Statement.Resource 参数 参数类型 描述 uri Array of strings 委托资源的URI,长度不超过128。格式为:/iam/agencies/委托ID。例: "uri": ["/iam/agencies/07805acaba800fdd4fbdc00b8f888c7c"]
  • 请求示例 获取联邦认证project scoped token POST /v3.0/OS-AUTH/id-token/tokens { "auth" : { "id_token" : { "id" : "eyJhbGciOiJSU..." }, "scope" : { "project" : { "id" : "46419baef4324...", "name" : "cn-north-1" } } } } 获取联邦认证domain scoped token POST /v3.0/OS-AUTH/id-token/tokens { "auth" : { "id_token" : { "id" : "eyJhbGciOiJSU..." }, "scope" : { "domain" : { "id" : "063bb260a480...", "name" : "IAMDomain" } } } } 获取unscoped token POST /v3.0/OS-AUTH/id-token/tokens { "auth" : { "id_token" : { "id" : "eyJhbGciOiJSU..." } } }
  • 响应示例 状态码为 201 时: 创建成功。 { "token" : { "expires_at" : "2018-03-13T03:00:01.168000Z", "methods" : [ "mapped" ], "issued_at" : "2018-03-12T03:00:01.168000Z", "user" : { "OS-FEDERATION" : { "identity_provider" : { "id" : "idptest" }, "protocol" : { "id" : "oidc" }, "groups" : [ { "name" : "admin", "id" : "45a8c8f..." } ] }, "domain" : { "id" : "063bb260a480...", "name" : "IAMDomain" }, "name" : "FederationUser", "id" : "suvmgvUZc4PaCOEc..." } } } 状态码为 400 时: 参数无效。 { "error_msg" : "Request body is invalid.", "error_code" : "IAM.0011" } 状态码为 401 时: 认证失败。 { "error_msg" : "The request you have made requires authentication.", "error_code" : "IAM.0001" } 状态码为 403 时: 没有操作权限。 { "error_msg" : "Policy doesn't allow %(actions)s to be performed.", "error_code" : "IAM.0003" } 状态码为 404 时: 未找到相应的资源。 { "error_msg" : "Could not find %(target)s: %(target_id)s.", "error_code" : "IAM.0004" } 状态码为 500 时: 系统内部异常。 { "error_msg" : "An unexpected error prevented the server from fulfilling your request.", "error_code" : "IAM.0006" }
  • 响应参数 状态码为 201 时: 表7 响应Header参数 参数 参数类型 描述 X-Subject-Token String 签名后的Token。 表8 响应Body参数 参数 参数类型 描述 token object 获取的token详情。 表9 token 参数 参数类型 描述 expires_at String 过期时间。 说明: UTC时间,格式为YYYY-MM-DDTHH:mm:ss.ssssssZ,日期和时间戳格式参照ISO-8601,如:2023-06-28T08:56:33.710000Z。 methods Array of strings 获取token的方式,联邦用户默认为mapped。 issued_at String 生成时间。 说明: UTC时间,格式为YYYY-MM-DDTHH:mm:ss.ssssssZ,日期和时间戳格式参照ISO-8601,如:2023-06-28T08:56:33.710000Z。 user object 用户详情。 domain object 租户详情。 project object 项目详情,仅请求scope为project时,返回此对象。 roles Array of objects 角色/策略详情。 catalog Array of objects catalog详情。 表10 token.user 参数 参数类型 描述 OS-FEDERATION object 联邦用户user详情。 domain object 租户详情。 id String 用户id。 name String 用户名。 表11 token.user.OS-FEDERATION 参数 参数类型 描述 identity_provider object 身份提供商详情。 protocol object 协议详情。 groups Array of objects 用户组详情。 表12 token.user.OS-FEDERATION.identity_provider 参数 参数类型 描述 id String 身份提供商id。 表13 token.user.OS-FEDERATION.protocol 参数 参数类型 描述 id String 协议id。 表14 token.user.OS-FEDERATION.groups 参数 参数类型 描述 id String 用户组id。 name String 用户组名。 表15 token.user.domain 参数 参数类型 描述 id String 租户id。 name String 租户名。 表16 token.domain 参数 参数类型 描述 id String 租户id。 name String 租户名。 表17 token.project 参数 参数类型 描述 domain object 租户详情。 id String 项目id。 name String 项目名。 表18 token.project.domain 参数 参数类型 描述 id String 租户id。 name String 租户名。 表19 roles 参数 参数类型 描述 id String 权限id。 name String 权限名。 表20 token.catalog 参数 参数类型 描述 endpoints Array of objects 终端节点。 id String 服务ID。 name String 服务名称。 type String 该接口所属服务。 表21 token.catalog.endpoints 参数 参数类型 描述 id String 终端节点ID。 interface String 接口类型,描述接口在该终端节点的可见性。值为“public”,表示该接口为公开接口。 region String 终端节点所属区域。 region_id String 终端节点所属区域ID。 url String 终端节点的URL。 表22 CatalogInfo 参数 参数类型 描述 id String 终端节点ID。 interface String 接口类型,描述接口在该终端节点的可见性。值为“public”,表示该接口为公开接口。 region String 终端节点所属区域。 region_id String 终端节点所属区域ID。 url String 终端节点的URL。
  • 请求参数 表1 请求Header参数 参数 是否必选 参数类型 描述 X-Idp-Id 是 String 身份提供商ID。 表2 请求Body参数 参数 是否必选 参数类型 描述 auth 是 object 请求auth参数详情。 表3 GetIdTokenAuthParams 参数 是否必选 参数类型 描述 id_token 是 object 请求id token参数详情。 scope 否 object 请求scope参数详情,限制获取token的权限范围。不传此字段,获取unscoped toke。 表4 GetIdTokenIdTokenBody 参数 是否必选 参数类型 描述 id 是 String id_token的值。id_token由企业IdP构建,携带联邦用户身份信息。请参考企业IdP文档了解获取id_token的方法。 表5 GetIdTokenIdScopeBody 参数 是否必选 参数类型 描述 domain 否 object domain scope详情,与project二选一。 project 否 object project scope详情,与domain二选一。 表6 GetIdTokenScopeDomainOrProjectBody 参数 是否必选 参数类型 描述 id 否 String domain id或者project id,与name字段至少存在一个。 name 否 String domain name或者project name,与id字段至少存在一个。
  • 响应示例 状态码为 201 时: 创建成功。 获取IAM用户名为“IAMUser”,IAM用户密码为“IAMPassword”,所属账号名为“IAMDomain”,作用范围为项目“cn-north-1”,且返回的响应体中将不显示catalog信息的Token。 响应Header参数(获取到的Token): X-Subject-Token:MIIatAYJKoZIhvcNAQcCoIIapTCCGqECAQExDTALB... 响应Body参数: { "token": { "catalog": [], "expires_at": "2020-01-04T09:05:22.701000Z", "issued_at": "2020-01-03T09:05:22.701000Z", "methods": [ "password" ], "project": { "domain": { "id": "d78cbac186b744899480f25bd022f...", "name": "IAMDomain" }, "id": "aa2d97d7e62c4b7da3ffdfc11551f...", "name": "cn-north-1" }, "roles": [ { "id": "0", "name": "te_admin" }, { "id": "0", "name": "op_gated_Video_Campus" } ], "user": { "domain": { "id": "d78cbac186b744899480f25bd022f...", "name": "IAMDomain" }, "id": "7116d09f88fa41908676fdd4b039e...", "name": "IAMUser", "password_expires_at": "" } } } 获取IAM用户名为“IAMUser”,IAM用户密码为“IAMPassword”,所属账号名为“IAMDomain”,作用范围为整个账号的Token。 响应Header参数(获取到的Token): X-Subject-Token:MIIatAYJKoZIhvcNAQcCoIIapTCCGqECAQExDTALB... 响应Body参数: { "token": { "catalog": [ { "endpoints": [ { "id": "33e1cbdd86d34e89a63cf8ad16a5f...", "interface": "public", "region": "*", "region_id": "*", "url": "https://iam.myhuaweicloud.com/v3.0" } ], "id": "100a6a3477f1495286579b819d399...", "name": "iam", "type": "iam" }, { "endpoints": [ { "id": "29319cf2052d4e94bcf438b55d143...", "interface": "public", "region": "*", "region_id": "*", "url": "https://bss.sample.domain.com/v1.0" } ], "id": "c6db69fabbd549908adcb861c7e47...", "name": "bssv1", "type": "bssv1" } ], "domain": { "id": "d78cbac186b744899480f25bd022f...", "name": "IAMDomain" }, "expires_at": "2020-01-04T09:08:49.965000Z", "issued_at": "2020-01-03T09:08:49.965000Z", "methods": [ "password" ], "roles": [ { "id": "0", "name": "te_admin" }, { "id": "0", "name": "secu_admin" }, { "id": "0", "name": "te_agency" } ], "user": { "domain": { "id": "d78cbac186b744899480f25bd022f...", "name": "IAMDomain" }, "id": "7116d09f88fa41908676fdd4b039e...", "name": "IAMUser", "password_expires_at": "" } } } 状态码为 400 时: 参数无效。请排查body体是否符合json语法。 { "error": { "code": 400, "message": "The request body is invalid", "title": "Bad Request" } } 状态码为 401 时: 认证失败。 如果您是第三方系统用户,直接使用联邦认证的用户名和密码获取Token,系统会提示密码错误。请在华为云的登录页面,通过“忘记密码”功能,设置华为云账号密码,并在password中输入新设置的密码。 如果您的华为云账号已升级为华为账号,直接使用华为账号名和密码获取Token,系统会提示密码错误。建议您为自己创建一个IAM用户,授予该用户必要的权限,获取IAM用户Token。 { "error": { "code": 401, "message": "The username or password is wrong.", "title": "Unauthorized" } }
  • 响应参数 表12 响应Header参数 参数 参数类型 描述 X-Subject-Token String 签名后的Token,小于32KB。 表13 响应Body参数 参数 参数类型 描述 Token Object 获取到的Token信息。 表14 Token 参数 参数类型 描述 catalog Array of objects 服务目录信息。 domain Object 获取Token的IAM用户所属的账号信息。如果获取Token时请求体中scope参数设置为domain,则返回该字段。 expires_at String Token过期时间。 说明: UTC时间,格式为YYYY-MM-DDTHH:mm:ss.ssssssZ,日期和时间戳格式参照ISO-8601,如:2023-06-28T08:56:33.710000Z。 issued_at String Token下发时间。 说明: UTC时间,格式为YYYY-MM-DDTHH:mm:ss.ssssssZ,日期和时间戳格式参照ISO-8601,如:2023-06-28T08:56:33.710000Z。 methods Array of strings 获取Token的方式。 project Object 获取Token的IAM用户所属账号的项目信息。如果获取Token时请求体中scope参数设置为project,则返回该字段。 roles Array of objects Token的权限信息。 user Object 获取Token的IAM用户信息。 表15 Token.catalog 参数 参数类型 描述 endpoints Array of objects 终端节点。 id String 服务ID。 name String 服务名称。 type String 该接口所属服务。 表16 Token.catalog.endpoints 参数 参数类型 描述 id String 终端节点ID。 interface String 接口类型,描述接口在该终端节点的可见性。值为“public”,表示该接口为公开接口。 region String 终端节点所属区域。 region_id String 终端节点所属区域ID。 url String 终端节点的URL。 表17 Token.domain 参数 参数类型 描述 name String 账号名称。 id String 账号ID。 表18 Token.project 参数 参数类型 描述 domain Object 项目所属账号信息。 id String 项目ID。 name String 项目名称。 表19 Token.project.domain 参数 参数类型 描述 id String 账号ID。 name String 账号名称。 表20 Token.roles 参数 参数类型 描述 name String 权限名称。 id String 权限ID。默认显示为0,非真实权限ID。 表21 Token.user 参数 参数类型 描述 name String IAM用户名。 id String IAM用户ID。 password_expires_at String 密码过期时间,“”表示密码不过期。 说明: UTC时间,格式为YYYY-MM-DDTHH:mm:ss.ssssssZ,日期和时间戳格式参照ISO-8601,如:2023-06-28T08:56:33.710000Z。 domain Object IAM用户所属的账号信息。 表22 Token.user.domain 参数 参数类型 描述 name String IAM用户所属账号名称。 id String IAM用户所属账号ID。
  • 请求示例 获取IAM用户名为“IAMUser”,IAM用户密码为“IAMPassword”,所属租户名为“IAMDomain”,作用范围为项目“cn-north-1”,且返回的响应体中将不显示catalog信息的Token。IAM用户名、所属账号名可以在界面控制台“我的凭证”中查看,具体获取方法请参见:获取账号、IAM用户、项目、用户组、区域、委托的名称和ID。 POST https://iam.myhuaweicloud.com/v3/auth/tokens?nocatalog=true { "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "domain": { "name": "IAMDomain" //IAM用户所属账号名 }, "name": "IAMUser", //IAM用户名 "password": "IAMPassword" //IAM用户密码 } } }, "scope": { "project": { "name": "cn-north-1" //项目名称 } } } } 获取IAM用户名为“IAMUser”,IAM用户密码为“IAMPassword”,所属账号名为“IAMDomain”,作用范围为整个账号的Token。IAM用户名、所属账号名可以在界面控制台“我的凭证”中查看,具体获取方法请参见:获取账号、IAM用户、项目、用户组、区域、委托的名称和ID。 POST https://iam.myhuaweicloud.com/v3/auth/tokens { "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "domain": { "name": "IAMDomain" //IAM用户所属账号名 }, "name": "IAMUser", //IAM用户名 "password": "IAMPassword" //IAM用户密码 } } }, "scope": { "domain": { "name": "IAMDomain" //IAM用户所属账号名 } } } }
  • 功能介绍 该接口可以用于通过用户名/密码的方式进行认证来获取IAM用户的Token。Token是系统颁发给IAM用户的访问令牌,承载用户的身份、权限等信息。调用IAM以及其他云服务的接口时,可以使用本接口获取的IAM用户Token进行鉴权。但强烈推荐您使用AK/SK签名认证方式调用API,可以避免因缓存的Token失效导致的API调用失败的问题。 该接口可以使用全局区域的Endpoint和其他区域的Endpoint调用。IAM的Endpoint请参见:地区和终端节点。 接口使用导航: IAM用户获取Token 判断当前账号是华为账号还是华为云账号 华为账号获取Token 华为云账号获取Token 第三方系统用户获取Token Token有效期说明 获取Token常见问题 其他相关操作 IAM用户获取Token 无特殊要求,请按照请求参数说明获取Token。 判断当前账号是华为账号还是华为云账号 华为账号不支持直接获取账号Token,排查是否为华为账号请参见:怎么知道当前登录华为云使用的是“华为账号” 还是“华为云账号”? 华为账号获取Token 华为账号获取token请参见以下步骤:创建一个IAM用户,授予该用户必要的权限,使用创建的IAM用户,获取IAM用户Token。 华为云账号获取Token 无特殊要求,请按照请求参数说明获取Token。 第三方系统用户获取Token 如果您是第三方系统用户,直接使用联邦认证的用户名和密码获取Token,系统会提示密码错误。请先在华为云的登录页面,通过“忘记密码”功能,设置华为云账号密码。 Token有效期说明 Token的有效期为24小时。建议进行缓存,避免频繁调用。使用Token前请确保Token离过期有足够的时间,防止调用API的过程中Token过期导致调用API失败。重新获取Token,不影响已有Token有效性。 如果在Token有效期内进行如下操作,当前Token最长30分钟失效。 删除/停用IAM用户。 修改IAM用户密码、访问密钥。 IAM用户权限发生变化(如账号欠费无法访问云服务、申请公测通过、IAM用户权限被修改等)。 使用Token调用云服务API时, 返回“The token must be updated”,则Token过期,需要客户端重新获取Token。 获取Token常见问题 用户名或密码错误:请排查输入的用户名和密码是否正确。用户名密码正确但是仍旧报错,请排查当前获取Token的账号是否为华为账号,华为账号不支持直接获取Token,请新建IAM用户并授权,使用IAM用户获取Token。 没有API访问权限:调用API前,请确保已开启编程访问。 其他相关操作 如果您开启了登录保护并设置登录保护为MFA验证,请参考获取IAM用户Token(使用密码+虚拟MFA)获取IAM用户Token。 如果需要获取具有Security Administrator权限的Token,请参见:如何获取Security Administrator权限的Token。 通过Postman获取用户Token示例请参见:如何通过Postman获取用户Token。 您还可以通过视频教程了解如何使用Token认证:IAM视频帮助 。
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 Content-Type 是 String 该字段内容填为“application/json;charset=utf8”。 表3 请求Body参数 参数 是否必选 参数类型 描述 auth 是 Object 认证信息。 表4 auth 参数 是否必选 参数类型 描述 identity 是 Object 认证参数。 scope 是 Object Token的使用范围,取值为project或domain,二选一即可。 说明: 如果您将scope设置为domain,该Token适用于全局级服务;如果将scope设置为project,该Token适用于项目级服务。 如果您将scope同时设置为project和domain,将以project参数为准,获取到项目级服务的Token。 如果您将scope置空,将获取到全局级服务的Token。建议您按需要填写Token使用范围。 表5 auth.identity 参数 是否必选 参数类型 描述 methods 是 Array of strings 认证方法,该字段内容为["password"]。 password 是 Object IAM用户密码认证信息。 说明: user.name和user.domain.name可以在界面控制台“我的凭证”中查看,具体获取方法请参见:获取账号、IAM用户、项目、用户组、区域、委托的名称和ID。 该接口提供了锁定机制用于防止暴力破解,调用时,请确保用户名密码正确,输错一定次数(管理员可设置该规则,方法请参见:账号锁定策略)将被锁定。 表6 auth.identity.password 参数 是否必选 参数类型 描述 user 是 Object 需要获取Token的IAM用户信息。 表7 auth.identity.password.user 参数 是否必选 参数类型 描述 domain 是 Object IAM用户所属账号信息。了解账号与IAM用户的关系。 name 是 String IAM用户名。 password 是 String IAM用户的登录密码。 说明: 务必保证密码输入正确,避免获取Token失败。 如果您的华为云账号已升级为华为账号,将不支持获取账号Token,建议您为自己创建一个IAM用户,授予该用户必要的权限,获取IAM用户Token。 如果您是第三方系统用户,直接使用联邦认证的用户名和密码获取Token,系统会提示密码错误。请在华为云的登录页面,通过“忘记密码”功能,设置华为云账号密码,并在password中输入新设置的密码。 表8 auth.identity.password.user.domain 参数 是否必选 参数类型 描述 name 是 String IAM用户所属账号名称,获取方式请参见:获取账号、IAM用户、项目、用户组、区域、委托的名称和ID。 表9 auth.scope 参数 是否必选 参数类型 描述 domain 否 Object 取值为domain时,表示获取的Token可以作用于全局服务,全局服务不区分项目或区域,如OBS服务。如需了解服务作用范围,请参考系统权限。domain支持id和name,二选一即可,建议选择“domain_id”。 project 否 Object 取值为project时,表示获取的Token可以作用于项目级服务,仅能访问指定project下的资源,如ECS服务。如需了解服务作用范围,请参考系统权限。project支持id和name,二选一即可。 表10 auth.scope.domain 参数 是否必选 参数类型 描述 id 否 String IAM用户所属账号ID,获取方式请参见:获取账号、IAM用户、项目、用户组、区域、委托的名称和ID。当auth.scope选择了domain时,获取的Token可以作用于全局服务,id和name需要二选一。 name 否 String IAM用户所属账号名称,获取方式请参见:获取账号、IAM用户、项目、用户组、区域、委托的名称和ID。当auth.scope选择了domain时,获取的Token可以作用于全局服务,id和name需要二选一。 表11 auth.scope.project 参数 是否必选 参数类型 描述 id 否 String 表示IAM用户所属账号的项目ID,获取方式请参见:获取账号、IAM用户、项目、用户组、区域、委托的名称和ID。当auth.scope选择了project时,获取的Token可以作用于项目级服务,id和name需要二选一。每个区域的项目ID有所不同,需要根据业务所在的区域使用对应的项目ID。 name 否 String 表示IAM用户所属账号的项目名称,获取方式请参见:获取账号、IAM用户、项目、用户组、区域、委托的名称和ID。当auth.scope选择了project时,获取的Token可以作用于项目级服务,id和name需要二选一。
  • 响应参数 表10 响应Body参数 参数 参数类型 描述 mapping Object 映射信息。 表11 mapping 参数 参数类型 描述 id String 映射ID。 links Object 映射的资源链接信息。 rules Array of objects 将联邦用户映射为本地用户的规则列表。 表12 mapping.links 参数 参数类型 描述 self String 资源链接地址。 表13 mappings.rules 参数 参数类型 描述 local Array of objects 表示联邦用户在本系统中的用户信息。 user:联邦用户在本系统中的用户名称。group:联邦用户在本系统中所属用户组。 remote Array of objects 表示联邦用户在IdP中的用户信息。使用SAML协议时,由断言属性及运算符组成的表达式,取值由断言决定。使用OIDC协议时,取值由ID token决定。 表14 mappings.rules.local 参数 参数类型 描述 user user object 联邦用户在本系统中的用户名称 group group object 联邦用户在本系统中所属用户组 表15 mappings.rules.local.user 名称 类型 描述 name String 联邦用户在本系统中的用户名称 表16 mappings.rules.local.group 名称 类型 描述 name String 联邦用户在本系统中所属用户组 表17 mapping.rules.remote 参数 参数类型 描述 type String 表示IdP断言(SAML协议)或ID token(OIDC协议)中的属性。 any_one_of Array of strings 输入属性值中包含指定值才生效,并返回布尔值,返回值不能用于local块中的占位符。在同一个remote数组元素中,any_one_of与not_any_of互斥,两者至多填写一个,不能同时填写。 not_any_of Array of strings 输入属性值中不包含指定值才生效,并返回布尔值,返回值不能用于local块中的占位符。not_any_of与any_one_of互斥,两者至多填写一个,不能同时填写。
  • 请求示例 注册映射。 PUT https://iam.myhuaweicloud.com/v3/OS-FEDERATION/mappings/{id} { "mapping": { "rules": [ { "local": [ { "user": { "name": "LocalUser" } }, { "group": { "name": "LocalGroup" } } ], "remote": [ { "type": "UserName" }, { "type": "orgPersonType", "not_any_of": [ "Contractor", "Guest" ] } ] } ] } }
  • 响应示例 状态码为 201 时: 创建成功。 { "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" } } }
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 Content-Type 是 String 该字段内容填为“application/json;charset=utf8”。 X-Auth-Token 是 String 访问令牌,承载用户的身份、权限等信息。 token所需权限请参见授权项。 表3 请求Body参数 参数 是否必选 参数类型 描述 mapping 是 Object 映射信息。 表4 mapping 参数 是否必选 参数类型 描述 rules 是 Array of objects 将联邦用户映射为本地用户的规则列表。 表5 mapping.rules 参数 是否必选 参数类型 描述 local 是 Array of RulesLocal objects 表示联邦用户在本系统中的用户信息。 user:联邦用户在本系统中的用户名称。group:联邦用户在本系统中所属用户组。 remote 是 Array of objects 表示联邦用户在IdP中的用户信息。使用SAML协议时,由断言属性及运算符组成的表达式,取值由断言决定。使用OIDC协议时,取值由ID token决定。 表6 mappings.rules.local 参数 是否必选 参数类型 描述 user 否 user object 联邦用户在本系统中的用户名称 group 否 group object 联邦用户在本系统中所属用户组 表7 mappings.rules.local.user 名称 是否必选 类型 描述 name 是 String 联邦用户在本系统中的用户名称 表8 mappings.rules.local.group 名称 是否必选 类型 描述 name 是 String 联邦用户在本系统中所属用户组 表9 mapping.rules.remote 参数 是否必选 参数类型 描述 type 是 String 表示IdP断言(SAML协议)或ID token(OIDC协议)中的属性。 any_one_of 否 Array of strings 输入属性值中包含指定值才生效,并返回布尔值,返回值不能用于local块中的占位符。在同一个remote数中,any_one_of与not_any_of互斥,两者至多填写一个,不能同时填写。 not_any_of 否 Array of strings 输入属性值中不包含指定值才生效,并返回布尔值,返回值不能用于local块中的占位符。not_any_of与any_one_of互斥,两者至多填写一个,不能同时填写。
  • 响应示例 状态码: 200 请求成功。 { "groups" : [ { "createTime" : 1552093271000, "description" : null, "domainId" : "dc7f62ae236c47b8836014c16d64d...", "id" : "e6bde2403bda43e2813a1a6848963...", "name" : "auth" } ] }
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 Content-Type 是 String 该字段内容填为“application/json;charset=utf8”。 X-Auth-Token 是 String 已认证的拥有iam:permissions:listGroupsOnEnterpriseProject细粒度权限或Security Administrator权限的token。同时要求enterprise_project_id所属账号的domain_id与Token中的domain_id一致。
共100000条