Autenticação de um ID de aplicação
Descrição
Esta API é usada para autenticar um ID de aplicação Depois que a autenticação é bem-sucedida, um token de acesso é gerado. Para obter detalhes sobre a autenticação de ID de aplicação, consulte Introdução à autenticação de ID de aplicação.
- Quando clientType é definido como 72, até 64 tokens podem ser criados para cada usuário. Se 64 tokens foram criados usando um ID de usuário e os tokens são válidos, criar um novo token usando a mesma conta invalidará o token mais anterior entre os primeiros 64 tokens.
- Quando clientType não é definido como 72, apenas um token pode ser criado para cada ID de usuário.
- Um token é válido por 12 a 24 horas.
Depuração
Você pode depurar essa API no API Explorer.
Protótipo
|
Método de solicitação |
POST |
|---|---|
|
Endereço de solicitação |
/v2/usg/acs/auth/appauth |
|
Protocolo de transporte |
HTTPS |
Parâmetros de solicitação
|
Parâmetro |
Obrigatório |
Tipo |
Localização |
Descrição |
|---|---|---|---|---|
|
Authorization |
Sim |
String |
Cabeçalho |
Informações de autenticação da aplicação.
Se userId for transportado, o corpo da solicitação deverá carregar o mesmo userId. |
|
Content-Type |
Sim |
String |
Cabeçalho |
Formato de mídia do corpo.
|
|
X-Request-ID |
Não |
String |
Cabeçalho |
ID da solicitação, que é usado para rastreamento e localização de falhas. Recomendamos que você use um identificador universalmente exclusivo (UUID). Se este parâmetro não for transportado, um ID de solicitação é gerado automaticamente. |
|
Accept-Language |
Não |
String |
Cabeçalho |
Idioma. Valores: zh-CN para chinês (padrão) e en-US para inglês. |
|
appId |
Sim |
String |
Corpo |
ID de aplicação. Para obter detalhes sobre como obter um ID da aplicação, consulte Solicitação de um ID da aplicação. |
|
clientType |
Sim |
Integer |
Corpo |
Tipo da conta usada para fazer logon.
|
|
corpId |
Não |
String |
Corpo |
ID da empresa. (Quando este parâmetro é transportado nos cenários de aplicação de SP, se os parâmetros corpId e userId não forem transportados ou forem nulos, o sistema considera que o administrador do SP efetua logon no sistema por padrão.) |
|
expireTime |
Sim |
Long |
Corpo |
Carimbo de data/hora quando as informações de autenticação da aplicação expiram, em segundos. (Se o carimbo de data/hora UNIX do servidor for maior que expireTime quando a solicitação de autenticação da aplicação for recebida, a autenticação falhará.) Exemplo: para que as informações de autenticação da aplicação expirem em 10 minutos, defina expireTime como a soma do carimbo de data/hora UNIX atual mais 60 x 10. Para tornar as informações de autenticação da aplicação sempre válidas, defina expireTime como 0. |
|
nonce |
Sim |
String |
Corpo |
Cadeia de caracteres aleatórios, que é usada para calcular informações de autenticação da aplicação. maxLength: 64 minLength: 32 |
|
userEmail |
Não |
String |
Corpo |
Endereço de e-mail.
NOTA:
Este parâmetro é válido somente quando é transportado durante a primeira autenticação de logon. |
|
userId |
Não |
String |
Corpo |
ID do usuário. (Se o campo userId não for transportado ou estiver definido como uma cadeia de caracteres vazia, o usuário efetuará logon como o administrador empresarial padrão.) |
|
userName |
Não |
String |
Corpo |
Nome do usuário.
NOTA:
Este parâmetro é válido somente quando é transportado durante a primeira autenticação de logon. |
|
userPhone |
Não |
String |
Corpo |
Número de celular.
NOTA:
Este parâmetro é válido somente quando é transportado durante a primeira autenticação de logon. |
|
deptCode |
Não |
String |
Corpo |
Código do departamento. Obtenha o valor chamando a API para consultar um departamento e seus subdepartamentos de nível 1. |
Códigos de status
|
Código de status HTTP |
Descrição |
|---|---|
|
200 |
Operação bem-sucedida. |
|
400 |
Parâmetros inválidos. |
|
401 |
Acesso negado. |
|
403 |
Permissões insuficientes. |
|
412 |
A conta foi desativada. |
|
423 |
A conta foi bloqueada. |
|
500 |
Exceção do servidor. |
Parâmetros de resposta
|
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
accessToken |
String |
Token de acesso. |
|
clientType |
Integer |
Tipo da conta usada para fazer logon.
|
|
createTime |
Long |
Carimbo de data/hora quando o token foi criado, em milissegundos. |
|
daysPwdAvailable |
Integer |
Período de validade de senha. |
|
delayDelete |
Boolean |
Se a exclusão do token está atrasada. |
|
expireTime |
Long |
Carimbo de data/hora quando o token expira, em segundos. |
|
firstLogin |
Boolean |
Se o logon é o primeiro logon.
NOTA:
Se você fizer logon no sistema pela primeira vez, o sistema solicitará que você altere a senha inicial. Valor padrão: false. |
|
forceLoginInd |
Integer |
Se o logon preventivo está ativado.
|
|
proxyToken |
ProxyTokenDTO object |
Informações de autenticação do proxy. |
|
pwdExpired |
Boolean |
Se a senha expirou. Valor padrão: false. |
|
refreshCreateTime |
Long |
Carimbo de data/hora quando o token foi atualizado, em milissegundos. |
|
refreshExpireTime |
Long |
Carimbo de data/hora quando o token atualizado expirou, em segundos. |
|
refreshToken |
String |
Token atualizado. |
|
refreshValidPeriod |
Long |
Período de validade do token atualizado, em segundos. |
|
tokenIp |
String |
Endereço IP do usuário de logon. |
|
tokenType |
Integer |
Tipo de token.
|
|
user |
UserInfo object |
Detalhes de autenticação do usuário. |
|
validPeriod |
Long |
Período de validade de um token, em segundos. |
Exemplo de solicitação
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"
}
Exemplo de resposta
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 erro
Se um código de erro começando com MMC ou USG for retornado quando você usar essa API, corrija a falha seguindo as instruções fornecidas no Centro de erros da API da Huawei Cloud.
Exemplo 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'