统一身份认证服务 IAM统一身份认证服务 IAM

计算
弹性云服务器 ECS
云耀云服务器 HECS
裸金属服务器 BMS
弹性伸缩 AS
镜像服务 IMS
专属主机 DeH
函数工作流 FunctionGraph
云手机 CPH
VR云渲游平台 CVR
特惠算力专区
存储
对象存储服务 OBS
云硬盘 EVS
云备份 CBR
内容分发网络 CDN
存储容灾服务 SDRS
弹性文件服务 SFS
云服务器备份 CSBS
云硬盘备份 VBS
数据快递服务 DES
专属企业存储服务
智能边缘
智能边缘云 IEC
EI 企业智能
EI安视服务
AI开发平台ModelArts
数据湖治理中心 DGC
数据仓库服务 GaussDB(DWS)
企业级AI应用开发专业套件 ModelArts Pro
数据湖探索 DLI
华为HiLens
云搜索服务 CSS
数据接入服务 DIS
表格存储服务 CloudTable
数据湖工厂 DLF
图引擎服务 GES
推荐系统 RES
文字识别 OCR
内容审核 Moderation
图像识别 Image
图像搜索 ImageSearch
人脸识别服务 FRS
对话机器人服务 CBS
视频分析服务 VAS
数据可视化 DLV
视频接入服务 VIS
自然语言处理 NLP
语音交互服务 SIS
知识图谱 KG
医疗智能体 EIHealth
可信智能计算服务 TICS
园区智能体 CampusGo
实时流计算服务 CS
人证核身服务 IVS
IoT物联网
设备接入 IoTDA
IoT物联网
全球SIM联接 GSL
设备发放 IoTDP
IoT开发者服务
IoT边缘 IoTEdge
IoT数据分析
路网数字化服务 DRIS
开发与运维
项目管理 ProjectMan
代码托管 CodeHub
流水线 CloudPipeline
代码检查 CodeCheck
编译构建 CloudBuild
部署 CloudDeploy
云测 CloudTest
发布 CloudRelease
移动应用测试 MobileAPPTest
CloudIDE
Classroom
软件开发平台 DevCloud
开源镜像站 Mirrors
视频
媒体处理 MPC
视频点播 VOD
视频直播 Live
实时音视频 SparkRTC
管理与部署
统一身份认证服务 IAM
云监控服务 CES
应用运维管理 AOM
应用性能管理 APM
云审计服务 CTS
云日志服务 LTS
标签管理服务 TMS
资源管理服务 RMS
应用身份管理服务 OneAccess
专属云
专属计算集群 DCC
专属分布式存储服务 DSS
域名与网站
域名注册服务 Domains
云速建站 CloudSite
企业协同
华为云WeLink
会议
ISDP
解决方案
全栈专属服务
高性能计算 HPC
SAP
游戏云
混合云灾备
快视频
华为工业云平台 IMC
价格
价格原则
成本优化最佳实践
昇腾
昇腾MindX SDK (20.3)
其他
管理控制台
消息中心
产品价格详情
系统权限
我的凭证
客户关联华为云合作伙伴须知
公共问题
宽限期保留期
奖励推广计划
活动
容器
云容器引擎 CCE
云容器实例 CCI
容器镜像服务 SWR
应用编排服务 AOS
容器交付流水线 ContainerOps
应用服务网格 ASM
多云容器平台 MCP
基因容器 GCS
容器洞察引擎 CIE
容器批量计算 BCE
云原生服务中心 OSC
网络
虚拟私有云 VPC
弹性公网IP EIP
弹性负载均衡 ELB
NAT网关 NAT
云专线 DC
虚拟专用网络 VPN
云连接 CC
VPC终端节点 VPCEP
数据库
云数据库 RDS
文档数据库服务 DDS
分布式数据库中间件 DDM
数据复制服务 DRS
数据管理服务 DAS
云数据库 GaussDB(for MySQL)
云数据库 GaussDB NoSQL
云数据库 GaussDB (for openGauss)
数据库和应用迁移 UGO
大数据
MapReduce服务 MRS
应用中间件
应用管理与运维平台 ServiceStage
分布式缓存服务 DCS
分布式消息服务Kafka版
分布式消息服务RabbitMQ版
消息通知服务 SMN
微服务引擎 CSE
云性能测试服务 CPTS
区块链服务 BCS
API网关 APIG
应用魔方 AppCube
分布式消息服务RocketMQ版
多云高可用服务 MAS
可信跨链数据链接服务 TCDAS
企业应用
云桌面 Workspace
云解析服务 DNS
应用与数据集成平台 ROMA Connect
ROMA资产中心 ROMAExchange
ROMA API
鸿源云道
华为乾坤
安全与合规
Web应用防火墙 WAF
漏洞扫描服务 VSS
企业主机安全 HSS
容器安全服务 CGS
数据加密服务 DEW
数据库安全服务 DBSS
态势感知 SA
云堡垒机 CBH
SSL证书管理 SCM
云证书管理服务 CCM
管理检测与响应 MDR
数据安全中心 DSC
威胁检测服务 MTD
DDoS防护 ADS
云防火墙 CFW
应用信任中心 ATC
安全技术与应用
迁移
主机迁移服务 SMS
对象存储迁移服务 OMS
云数据迁移 CDM
智能协作
IdeaHub
企业网络
云管理网络
SD-WAN 云服务
边缘数据中心管理 EDCM
废弃-华为乾坤安全云服务
云通信
语音通话 VoiceCall
消息&短信 MSGSMS
隐私保护通话 PrivateNumber
开发者工具
SDK开发指南
API签名指南
DevStar
HCloud CLI
Terraform
Ansible
云生态
云市场
鲲鹏
昇腾
合作伙伴中心
华为云培训中心
用户服务
帐号中心
费用中心
成本中心
资源中心
企业管理
工单管理
客户运营能力
国际站常见问题
网站备案
支持计划
专业服务
合作伙伴支持计划
文档首页> 统一身份认证服务 IAM> API参考> API> Token管理> 获取IAM用户Token(使用密码)
更新时间:2021/10/11 GMT+08:00
分享

获取IAM用户Token(使用密码)

功能介绍

该接口可以用于通过用户名/密码的方式进行认证来获取IAM用户Token。

Token是系统颁发给IAM用户的访问令牌,承载用户的身份、权限等信息。调用IAM以及其他云服务的接口时,可以使用本接口获取的IAM用户Token进行鉴权。

该接口可以使用全局区域的Endpoint和其他区域的Endpoint调用。IAM的Endpoint请参见:地区和终端节点

Token的有效期为24小时,建议进行缓存,避免频繁调用。使用Token前请确保Token离过期有足够的时间,防止调用API的过程中Token过期导致调用API失败。重新获取Token,不影响已有Token有效性。在Token有效期内进行如下操作,当前Token将立即失效:

  • 删除/停用IAM用户
  • 修改IAM用户密码、访问密钥
  • IAM用户权限发生变化(如帐号欠费无法访问访问云服务、申请公测通过、IAM用户权限被修改等)
  • 如果您的华为云帐号已升级为华为帐号,将不支持获取帐号Token,建议您为自己创建一个IAM用户,授予该用户必要的权限,获取IAM用户Token。

调试

您可以在API Explorer中调试该接口。

URI

POST /v3/auth/tokens

表1 Query参数

参数

是否必选

参数类型

描述

nocatalog

String

如果设置该参数,返回的响应体中将不显示catalog信息。任何非空字符串都将解释为true,并使该字段生效。

请求参数

表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。
表5 auth.identity

参数

是否必选

参数类型

描述

methods

Array of strings

认证方法,该字段内容为["password"]。

password

Object

IAM用户密码认证信息。

说明:
表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。id和name,二选一即可。

name

String

IAM用户所属帐号名称,获取方式请参见:获取帐号、IAM用户、项目、用户组、区域、委托的名称和ID。id和name,二选一即可。

表11 auth.scope.project

参数

是否必选

参数类型

描述

id

String

IAM用户所属帐号的项目ID,获取方式请参见:获取帐号、IAM用户、项目、用户组、区域、委托的名称和ID。id和name,二选一即可。

name

String

IAM用户所属帐号的项目名称,获取方式请参见:获取帐号、IAM用户、项目、用户组、区域、委托的名称和ID。id和name,二选一即可。

请求示例

  • 获取IAM用户名为“IAMUser”,IAM用户密码为“IAMPassword”,所属帐号名为“IAMDomain”,作用范围为项目“cn-north-1”,且返回的响应体中将不显示catalog信息的Token。
    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。
    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用户所属帐号名
                }
            }
        }
    }

响应参数

表12 响应Header参数

参数

参数类型

描述

X-Subject-Token

string

签名后的Token。

表13 响应Body参数

参数

参数类型

描述

Token

Object

获取到的Token信息。

表14 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用户信息。

表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时间),“”表示密码不过期。

domain

Object

IAM用户所属的帐号信息。

表22 Token.user.domain

参数

参数类型

描述

name

String

IAM用户所属帐号名称。

id

String

IAM用户所属帐号ID。

响应示例

状态码为 201 时:

创建成功。

  • 获取IAM用户名为“IAMUser”,IAM用户密码为“IAMPassword”,所属帐号名为“IAMDomain”,作用范围为项目“cn-north-1”,且返回的响应体中将不显示catalog信息的Token。
    响应Header参数:
    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_OBS_file_protocol"
                },
                {
                    "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参数:
    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.myhuaweicloud.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 时:

参数无效。

{
    "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"
    }
}

返回值

返回值

描述

201

创建成功。

400

参数无效。

401

认证失败。

403

没有操作权限。

404

未找到相应的资源。

500

内部服务错误。

503

服务不可用。

错误码

分享:

    相关文档

    相关产品