更新时间:2024-04-29 GMT+08:00

执行App ID鉴权

描述

该接口使用App ID方式进行鉴权,鉴权通过后生成一个Access Token。App ID鉴权的原理介绍,请参考App ID鉴权介绍

  • 当clientType取值为72时,同一个userId,同时最多能创建64个Token。比如已经创建了64个Token,并且Token都在有效期内,再用同一个userId创建一个Token,前64个Token中最早创建的Token将失效。
  • 当clientType取值为非72时,同一个userId,同时最多能创建1个Token。
  • Token有效期是12~24小时。

调试

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

接口原型

表1 接口原型

请求方法

POST

请求地址

/v2/usg/acs/auth/appauth

传输协议

HTTPS

请求参数

表2 参数说明

参数

是否必须

类型

位置

描述

Authorization

String

Header

携带应用鉴权信息。

  • 规则:HMAC-SHA256 signature=HexEncode(HMAC256((appId + ":" + userId + ":" + expireTime + ":" + nonce), appKey))
  • 样例:HMAC-SHA256 signature=07f31aa9eafb06652c6899248b145c1a3264242e2ccf4c81b1b6eb99bb5c
说明:

如携带了userId信息,则Body中,也需填写对应的userId信息。

Content-Type

String

Header

Body的媒体格式。

  • 样例:application/json; charset=UTF-8

X-Request-ID

String

Header

请求requestId,用来标识一路请求,用于问题跟踪定位,建议使用UUID,若不携带,则后台自动生成。

Accept-Language

String

Header

语言参数,默认为中文zh-CN,英文为en-US。

appId

String

Body

App ID。如何获取App ID请参考“App ID的申请”。

clientType

Integer

Body

登录账号类型。

  • 72:API调用类型

corpId

String

Body

企业ID。

说明:
  • 当SP应用场景携带,如果corpId和userId字段未携带或值为空字符串时,当作SP默认管理员登录。
  • 仅在SP模式下需要填写,单企业模式不要填写,否则会鉴权失败。

expireTime

Long

Body

应用鉴权信息过期时间戳,单位秒。

说明:
  • 当收到App ID鉴权请求时服务端的Unix时间戳大于expireTime时,本次鉴权失败。
  • 样例:如果要求App ID鉴权信息10分钟后过期,expireTime = 当前Unix时间戳 + 60*10。
  • 如果要求应用鉴权信息始终不过期,expireTime = 0。

nonce

String

Body

随机字符串,用于计算应用鉴权信息。

minLength:32

maxLength:64

userEmail

String

Body

email地址。

userId

String

Body

第三方用户ID。

说明:

当userId字段未携带或值为空字符串时,当作企业默认管理员登录。

userName

String

Body

用户名称。

userPhone

String

Body

手机号,例如中国大陆手机+86xxxxxxx

deptCode

String

Body

部门编码。通过“查询部门及其一级子部门列表”接口获取。

状态码

表3 状态码说明

HTTP状态码

描述

200

操作成功。

400

参数异常。

401

鉴权失败。

403

没有权限。

412

账号被停用。

423

账号已被锁定。

500

服务端异常。

响应参数

表4 响应参数

参数

类型

描述

accessToken

String

Access Token字符串。

clientType

Integer

登录账号类型。

  • 72:API调用类型

createTime

Long

Access token的创建时间戳,单位:毫秒。

daysPwdAvailable

Integer

密码有效天数。

delayDelete

Boolean

是否延时删除状态。

expireTime

Long

Access Token的失效时间戳,单位:秒。

firstLogin

Boolean

是否首次登录。

说明:

首次登录表示尚未修改过密码。首次登录时,系统会提醒用户需要修改密码。

默认值:false。

forceLoginInd

Integer

抢占登录标识。

  • 0:非抢占
  • 1:抢占(未启用)

proxyToken

ProxyTokenDTO object

代理鉴权信息。

pwdExpired

Boolean

密码是否过期。

默认值:false。

refreshCreateTime

Long

Refresh Token的创建时间戳,单位:毫秒。

refreshExpireTime

Long

Refresh Token的失效时间戳,单位:秒。

refreshToken

String

Refresh Token字符串。

refreshValidPeriod

Long

Refresh Token有效时长,单位:秒。

tokenIp

String

用户IP。

tokenType

Integer

Token类型。

  • 0:用户ACCESS TOKEN
  • 1:会控TOKEN
  • 2:一次性TOKEN

user

UserInfo object

用户鉴权信息。

validPeriod

Long

Access Token的有效时长,单位:秒。

请求消息示例

POST /v2/usg/acs/auth/appauth
Connection: keep-alive
Content-Type: application/json
X-Request-ID: 5162fa32dc7e47afafeee39a72a2eec3
Accept-Language: zh-CN
Host: api.meeting.huaweicloud.com
Authorization: HMAC-SHA256 signature=3eca3f0f1e90ed55de38388066d02f1b7a86571a8ce30823af1df7c4edd7e086
User-Agent: Apache-HttpClient/4.5.3 (Java/1.8.0_191)

{
    "appId": "fdb8e4699586458bbd10c834872dcc62",
    "clientType": 72,
    "expireTime": 1627722929,
    "nonce": "EycLQsHwxhzK9OW8UEKWNfH2I3CGR2nINuU1EBpv162d42d92s",
    "userEmail": "******",
    "userId": "testuser@mycorp.com",
    "userName": "testuser",
    "userPhone": "173****9092"
}

响应消息示例

HTTP/1.1 200 
 "X-Envoy-Upstream-Service-Time": "230",
 "Server": "api-gateway",
 "X-Request-Id": "085d1f96cd9ddd6f3c50d70a0b2eb239",
 "X-Content-Type-Options": "nosniff",
 "Connection": "keep-alive",
 "X-Download-Options": "noopen",
 "Pragma": "No-cache",
 "Date": "Sat, 31 Jul 2021 06:18:07 GMT",
 "X-Frame-Options": "SAMEORIGIN",
 "Strict-Transport-Security": "max-age=31536000; includeSubDomains",
 "Cache-Control": "no-cache",
 "X-Xss-Protection": "1; mode=block",
 "Content-Security-Policy": "connect-src 'self' *.huaweicloud.com ;style-src 'self' 'unsafe-inline' 'unsafe-eval';object-src 'self'; font-src 'self' data:;",
 "Expires": "Thu, 01 Jan 1970 00:00:00 GMT",
 "Content-Length": "1250",
 "Content-Type": "application/json"

{
    "accessToken":"cnr1316vcp2ceIkbfko3z13Y2J8UdioOw0ER4kTK",
    "tokenIp":"49.4.112.60",
    "validPeriod":56326,
    "expireTime":1627768613,
    "createTime":1627712287360,
    "user":{
        "realm":"huaweicloud.com",
        "userId":"53e2759d388e413abf6a56743a2694c5",
        "ucloginAccount":"Auto-53e2759d388e413abf6a56743a2694c5",
        "serviceAccount":"sip:+99111283523475338@huaweicloud.com",
        "numberHA1":"065eb94e5b090f70c77d4d1439f35b8e",
        "alias1":null,
        "companyId":"651543334",
        "spId":"8a8df0a174a1c6680174a26f578b0000",
        "companyDomain":null,
        "userType":2,
        "adminType":2,
        "name":"testuser@mycorp.com",
        "nameEn":"",
        "isBindPhone":null,
        "freeUser":false,
        "thirdAccount":"testuser@mycorp.com",
        "visionAccount":null,
        "headPictureUrl":null,
        "password":null,
        "status":0,
        "paidAccount":null,
        "paidPassword":null,
        "weLinkUser":false,
        "appId":"fdb8e4699586458bbd10c834872dcc62",
        "tr069Account":null,
        "corpType":5,
        "cloudUserId":"",
        "grayUser":true
    },
    "clientType":72,
    "forceLoginInd":null,
    "firstLogin":false,
    "pwdExpired":false,
    "daysPwdAvailable":-19678,
    "proxyToken":null,
    "tokenType":0,
    "refreshToken":"cnr13168neNyRDfomYEIci7zVjBBybZQG90fYdX2",
    "refreshValidPeriod":2592000,
    "refreshExpireTime":1630304287,
    "refreshCreateTime":1627712287360
}

错误码

当您使用华为云会议服务端API时,如果遇到“MMC”或者“USG”开头的错误码,请参考华为云API错误中心

CURL命令示例

curl -k -i -H 'content-type: application/json' -X POST  -H 'Content-Type: application/json,Accept-Language: zh-CN,Authorization: HMAC-SHA256 signature=198c3046dbdafa9d89ce917c5613c29fda855da2aa79f8f51f2871e88fdba91c' -d '{"appId": "d5e1785afbe44c2588b642446652489e","clientType": 72,"corpId": "807074304","expireTime": 1597824907000,"nonce": "EycLQsHwxhzK9OW8UEKWNfH2I3CGR2nINuU1EBpQ","userEmail": "******","userId": "alice@ent01","userName": "alice","userPhone": "173****9092"}' 'https://api.meeting.huaweicloud.com/v2/usg/acs/auth/appauth'