Estos contenidos se han traducido de forma automática para su comodidad, pero Huawei Cloud no garantiza la exactitud de estos. Para consultar los contenidos originales, acceda a la versión en inglés.
Actualización más reciente 2023-01-31 GMT+08:00

Autenticación de un ID de aplicación

Descripción

Esta API se utiliza para autenticar un ID de aplicación. Después de que la autenticación es exitosa, se genera un token de acceso. Para obtener más información sobre la autenticación de ID de aplicación, consulte Introducción a la autenticación de ID de aplicación.

  • Cuando clientType se establece en 72, se pueden crear hasta 64 tokens para cada ID de usuario. Si se han creado 64 tokens usando un ID de usuario y los tokens son válidos, la creación de un nuevo token usando el mismo ID de usuario invalidará el primer token entre los primeros 64 tokens.
  • Cuando clientType no se establece en 72, solo se puede crear un token para cada ID de usuario.
  • Un token es válido durante 12 a 24 horas.

Depuración

Puede depurar esta API en Explorador de API.

Prototipo

Tabla 1 Prototipo

Método de solicitud

POST

Dirección de solicitud

/v2/usg/acs/auth/appauth

Protocolo de transporte

HTTPS

Parámetros de solicitud

Tabla 2 Parámetros

Parámetro

Obligatorio

Tipo

Localización

Descripción

Authorization

String

Header

Información de autenticación de aplicaciones.

  • Regla: HMAC-SHA256 signature=HexEncode(HMAC256((appId + ":" + userId + ":" + expireTime + ":" + nonce), appKey))
  • Ejemplo: HMAC-SHA256 signature=07f31aa9eafb06652c6899248b145c1a3264242e2ccf4c81b1b6eb99bb5c

Si se lleva userId, el organismo de solicitud debe llevar el mismo userId.

Content-Type

String

Header

Formato de los medios de comunicación del cuerpo.

  • Ejemplo application/json; charset=UTF-8

X-Request-ID

No

String

Header

ID de solicitud, que se utiliza para el seguimiento y la localización de fallos. Se recomienda utilizar un identificador único universal (UUID). Si este parámetro no se incluye, se genera automáticamente un ID de solicitud.

Accept-Language

No

String

Header

Idioma. Valores zh-CN para el chino (predeterminado) y en-US para el inglés.

appId

String

Body

ID de la aplicación. Para obtener más información sobre cómo obtener un ID de aplicación, consulte Solicitar un ID de aplicación.

clientType

Integer

Body

Tipo de cuenta utilizada para iniciar sesión.

  • 72: llamada a la API.

corpId

No

String

Body

ID de empresa. (Cuando este parámetro se incluye en los escenarios de aplicación del SP, si los parámetros corpId y userId no se incluyen o son nulos, el sistema considera que el administrador del SP inicia sesión en el sistema de forma predeterminada.)

expireTime

Long

Body

Marca de tiempo cuando la información de autenticación de la aplicación expira, en segundos. (Si la marca de tiempo de UNIX del servidor es mayor que expireTime cuando se recibe la solicitud de autenticación de la aplicación, la autenticación falla.) Ejemplo: Para hacer que la información de autenticación de aplicaciones expire en 10 minutos, establezca expireTime en la suma de la marca de tiempo de UNIX actual más 60 x 10. Para que la información de autenticación de la aplicación sea siempre válida, establezca expireTime en 0.

nonce

String

Body

Cadena de caracteres aleatorios, que se utiliza para calcular la información de autenticación de aplicaciones.

maxLength: 64

minLength: 32

userEmail

No

String

Body

Dirección de correo electrónico.

NOTA:

Este parámetro es válido solo cuando se lleva durante la primera autenticación de inicio de sesión.

userId

No

String

Body

ID de usuario. (Si el campo userId no se incluye o se establece en una cadena de caracteres vacía, el usuario inicia sesión como administrador de empresa predeterminado.)

userName

No

String

Body

Nombre del usuario.

NOTA:

Este parámetro es válido solo cuando se lleva durante la primera autenticación de inicio de sesión.

userPhone

No

String

Body

Número móvil.

NOTA:

Este parámetro es válido solo cuando se lleva durante la primera autenticación de inicio de sesión.

deptCode

No

String

Body

Código de departamento. Obtén el valor llamando a la API para consultar un departamento y sus subdepartamentos de nivel 1.

Códigos de estado

Tabla 3 Códigos de estado

Código de estado de HTTP

Descripción

200

Operación exitosa.

400

Parámetros no válidos

401

Acceso denegado.

403

Permisos insuficientes.

412

La cuenta se deshabilitó.

423

La cuenta se ha bloqueado.

500

Excepción del servidor.

Parámetros de respuesta

Tabla 4 Parámetros de respuesta

Parámetro

Tipo

Descripción

accessToken

String

Token de acceso.

clientType

Integer

Tipo de cuenta utilizada para iniciar sesión.

  • 72: llamada a la API.

createTime

Long

Marca de tiempo cuando se creó el token, en milisegundos.

daysPwdAvailable

Integer

Período de validez de la contraseña.

delayDelete

Boolean

Si se retrasa la eliminación del token.

expireTime

Long

Marca de tiempo cuando el token caduca, en segundos.

firstLogin

Boolean

Si el inicio de sesión es el primer inicio de sesión.

NOTA:

Si inicia sesión en el sistema por primera vez, el sistema le pedirá que cambie la contraseña inicial.

Valor predeterminado: false.

forceLoginInd

Integer

Si el inicio de sesión apropiativo está habilitado.

  • 0: Deshabilitado.
  • 1: Habilitado. (Este valor no se proporciona.)

proxyToken

ProxyTokenDTO object

Información de autenticación de proxy.

pwdExpired

Boolean

Si la contraseña ha caducado.

Valor predeterminado: false.

refreshCreateTime

Long

Marca de tiempo cuando se actualizó el token, en milisegundos.

refreshExpireTime

Long

Marca de tiempo cuando el token actualizado expira, en segundos.

refreshToken

String

Token actualizado.

refreshValidPeriod

Long

Período de validez del token actualizado, en segundos.

tokenIp

String

Dirección IP del usuario de inicio de sesión.

tokenType

Integer

Tipo de token.

  • 0: token de acceso de usuario.
  • 1: token de control de reunión.
  • 2: one-off token.

user

UserInfo object

Detalles de autenticación de usuario.

validPeriod

Long

Período de validez de un token, en segundos.

Solicitud de ejemplo

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": "EycLQsHwxhzK9OW8UEKWNfH2I3CGR2nINuU1EBpQ1627722929",
    "userEmail": "testuser@mycorp.com",
    "userId": "testuser@mycorp.com",
    "userName": "testuser",
    "userPhone": "173****9092"
}

Ejemplo de respuesta

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,
    "utcTime":1627712287373,
    "user":{
        "realm":"huaweicloud.com",
        "userId":"53e2759d388e413abf6a56743a2694c5",
        "ucloginAccount":"Auto-53e2759d388e413abf6a56743a2694c5",
        "serviceAccount":"sip:+99111283523475338@huaweicloud.com",
        "sn":"",
        "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,
        "phoneOrEmailLogin":false,
        "weChatName":null
    },
    "clientType":72,
    "forceLoginInd":null,
    "firstLogin":false,
    "pwdExpired":false,
    "daysPwdAvailable":-19678,
    "proxyToken":null,
    "tokenType":0,
    "refreshToken":"cnr13168neNyRDfomYEIci7zVjBBybZQG90fYdX2",
    "refreshValidPeriod":2592000,
    "refreshExpireTime":1630304287,
    "refreshCreateTime":1627712287360,
    "bindInfo":null
}

Códigos de error

Si se devuelve un código de error que comienza con MMC o USG cuando utiliza esta API, corrija el error siguiendo las instrucciones proporcionadas en el Centro de errores de la API de Huawei Cloud.

Ejemplo de comando 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": "alice@huawei.com","userId": "alice@ent01","userName": "alice","userPhone": "173****9092"}' 'https://api.meeting.huaweicloud.com/v2/usg/acs/auth/appauth'