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

文档首页> 统一身份认证服务 IAM> 常见问题> 其他问题> 如何通过Postman获取用户Token
更新时间:2021/07/27 GMT+08:00
分享

如何通过Postman获取用户Token

Postman是网页调试与辅助接口调用的工具,具有界面简洁清晰、操作方便快捷的特性,可以处理用户发送的HTTP请求,例如:GET,PUT、POST,DELETE等,支持用户修改HTTP请求中的参数并返回响应数据。

Token是用户的访问令牌,承载了用户的身份、权限等信息,用户调用API接口时,需要使用Token进行鉴权。

本章节指导用户如何通过Postman获取用户Token。更多参数说明请参见获取IAM用户Token

前提条件

已安装并注册Postman。

  • 如果您的华为云帐号已升级为华为帐号,将不支持获取帐号Token,建议您为自己创建一个IAM用户,授予该用户必要的权限,获取IAM用户Token。
  • 如果您是第三方系统用户,直接使用联邦认证的用户名和密码获取Token,系统会提示密码错误。请先在华为云的登录页面,通过“忘记密码”功能,设置华为云帐号密码
  • 如果您没有安装Postman,建议通过API Explorer获取用户Token
  • 如需安装,建议选择支持Header超过32K的Postman版本,否则可能会报Header溢出错误。

操作步骤

  1. 编辑获取用户Token接口的Request URL、Header、Body,进行具体的API调用。

    • Request URL
      格式为:https://IAM地区与终端节点地址/API接口URI
      1. 访问网址:地区与终端节点,获取IAM区域与终端节点地址。
        图1 IAM区域与终端节点

      2. 访问网址:获取用户Token,获取API接口的URI。

        以cn-north1为例,则Request URL为:https://iam.cn-north-1.myhuaweicloud.com/v3/auth/tokens

      3. 选择API接口获取方式,并将Request URL填写至postman中。
        图2 Request URL示例

    • Request Header

      key:Content-Type,value:application/json;charset=utf8

      图3 Headers参数示例

    • Request Body
      修改Request Body样例中参数。
      {
      	"auth": {
      		"identity": {
      			"methods": [
                                      "password"
                               ],
      			"password": {
      				"user": {
      					"domain": {
      						"name": "帐号名"
      					},
      					"name": "IAM用户名",
      					"password": "IAM用户密码"
      				}
      			}
      		},
      		"scope": {
      			"domain": {
      				"name": "帐号名"
      			}
      		}
      	}
        }
      • 获取帐号名、IAM用户名,请参见:获取帐号、IAM用户、项目名称和ID
      • 如果您的华为云帐号已升级为华为帐号,将不支持获取帐号Token,建议您为自己创建一个IAM用户,授予该用户必要的权限,获取IAM用户Token。
      • 如果您是第三方系统用户,直接使用联邦认证的用户名和密码获取Token,系统会提示密码错误。请在华为云的登录页面,通过“忘记密码”功能,设置华为云帐号密码,并在password中输入新设置的密码。

  2. 单击“Send”,发送API请求。

    图4 发送API请求

  3. 在返回的响应头中查看获取的用户Token,用户调用IAM其他API接口时,可以使用该Token进行鉴权。

    图5 获取Token
    • Token的有效期为24小时,需要使用一个Token鉴权时,可以先缓存起来,避免频繁调用。
    • 如果返回错误码,例如401,表示认证失败,请确认Request Body中请求参数填写正确后重新发送请求。
    • 如果您的调试结果异常,提示“Header Overflow”,可以参考故障处理解决Header溢出问题。

故障处理

目前发现v7.25.0、v7.26.0及以上版本Postman 由于配置问题,无法正常获取用户Token,会有Header Overflow异常报错。

  • 方法一:

    建议使用低版本Postman,经测试 V 5.xx 版本可以正常访问。

  • 方法二:

    使用curl命令获取Token,修改如下样例中的参数:

    curl -ik -X POST -H 'Content-Type=application/json;charset=utf8' -d '{"auth": {"identity": {"methods": ["password"],"password": {"user": {"domain": {"name": "帐号名"},"name": "IAM用户名","password": "IAM用户密码"}},},"scope": {"domain": {"name": "帐号名"}}}}' https://iam.cn-north-1.myhuaweicloud.com/v3/auth/tokens
  • 方法三:

    通过向Postman传递附加环境变量NODE_OPTIONS=--max-http-header-size=16384 (16KB),指定最大HTTP标头大小(以字节为单位)。

    以下分别是在不同操作系统进行操作的命令行:

    • macOS
      NODE_OPTIONS=--max-http-header-size=16384 /Applications/Postman.app/Contents/MacOS/Postman 
    • Linux
      NODE_OPTIONS=--max-http-header-size=16384 /path/to/Postman/Postman 
    • Windows
      set NODE_OPTIONS=--max-http-header-size=16384 
      C:\users\<username>\AppData\local\Postman\Postman.exe
分享:

其他问题 所有常见问题

more