Obtenção de um token de usuário por meio de senha e autenticação de MFA virtual
Função
Essa API é fornecida para que os usuários do IAM obtenham um token por meio de nome de usuário/senha e autenticação de MFA virtual. Para usar essa API, verifique se a proteção de login baseada em MFA virtual foi ativada para o usuário do IAM. Um token é uma credencial de acesso emitida para um usuário para suportar sua identidade e permissões. Ao chamar as APIs do IAM ou de outros serviços de nuvem, você pode usar essa API para obter um token para autenticação.
A API pode ser chamada usando o ponto de extremidade global e pontos de extremidade específicos da região. Para pontos de extremidade do IAM, consulte Regiões e pontos de extremidade.
Links rápidos
Obtenção de um token como um usuário do IAM
Obtenção de um token usando uma conta mestra
Obtenção de um token usando um HUAWEI ID
Obtenção de um token usando uma conta da HUAWEI CLOUD
Obtenção de um token como um usuário de sistema de terceiros
Período de validade de um token
Perguntas frequentes sobre a obtenção de um token
- Obtenção de um token como um usuário do IAM
Consulte Parâmetros de solicitação.
- Obtenção de um token usando uma conta
Verifique se a sua conta foi atualizada da conta da HUAWEI CLOUD para o HUAWEI ID, consultando Como saber qual conta eu estou logado?
- Obtenção de um token usando um HUAWEI ID
Você não pode usar diretamente um HUAWEI ID para obter um token. Você precisa criar um usuário do IAM, atribuir permissões ao usuário e usar o usuário para obter um token.
- Obtenção de um token usando uma conta da HUAWEI CLOUD
Consulte Parâmetros de solicitação.
- Obtenção de um token como um usuário de sistema de terceiros
Se você for um usuário do sistema de um sistema de terceiros, não será possível obter um token usando o nome de usuário e a senha usados para autenticação de identidade federada. Em vez disso, você deve acessar a página de login da HUAWEI CLOUD, clicar em Forgot password, clicar em Reset HUAWEI CLOUD account password e definir uma senha.
- Período de validade de um token
- O período de validade de um token é de 24 hours. Armazene em cache o token para evitar chamadas frequentes de API. Certifique-se de que o token é válido enquanto você o usa. Usar um token que expirará em breve pode causar falhas de chamada de API. A obtenção de um novo token não afeta a validade do token existente.
- No entanto, as seguintes operações invalidarão o token existente:
- O usuário do IAM é excluído ou desativado.
- A senha ou chave de acesso do usuário do IAM é alterada.
- As permissões do usuário do IAM são alteradas (devido a pagamentos pendentes, aprovação de pedido de OBT ou modificação de permissão).
- Se The token must be updated for retornado quando um token é usado para chamar uma API de serviço de nuvem, o token expirou. Você precisa obter um novo token.
- Perguntas frequentes sobre a obtenção de um token
Nome de usuário ou senha incorretos: verifique se o nome de usuário e a senha inseridos estão corretos. Se o nome de usuário e a senha estiverem corretos, mas o erro persistir, verifique se você usou um HUAWEI ID para obter um token. Um HUAWEI ID não pode ser usado diretamente para obter um token. Você precisa criar um usuário do IAM, conceder permissões ao usuário e usar o usuário para obter um token.
Sem permissões de acesso à API: Antes de chamar uma API, certifique-se de que você habilitou o acesso programático.
- Operações relacionadas
- Para obter um token com permissões Security Administrator, consulte Como obter um token com permissões de administrador de segurança?
- Para obter detalhes sobre como obter um token usando o Postman, consulte Como obter um token de usuário usando o Postman?
URI
POST /v3/auth/tokens
Parâmetro |
Obrigatoriedade |
Tipo |
Descrição |
---|---|---|---|
nocatalog |
Não |
String |
Se este parâmetro for definido, nenhuma informação de catálogo será exibida na resposta. Qualquer conjunto de caracteres para este parâmetro indica que nenhuma informação de catálogo será exibida. |
Parâmetros de solicitação
Parâmetro |
Obrigatoriedade |
Tipo |
Descrição |
---|---|---|---|
Content-Type |
Sim |
String |
Preencha application/json;charset=utf8 neste campo. |
Parâmetro |
Obrigatoriedade |
Tipo |
Descrição |
---|---|---|---|
Sim |
Object |
Informações da autenticação. |
Parâmetro |
Obrigatoriedade |
Tipo |
Descrição |
---|---|---|---|
Sim |
Object |
Parâmetro de autenticação. |
|
Sim |
Object |
Âmbito de aplicação do token. O valor pode ser project ou domain.
NOTA:
|
Parâmetro |
Obrigatoriedade |
Tipo |
Descrição |
---|---|---|---|
methods |
Sim |
Array of strings |
Método de autenticação. Opções:
|
Sim |
Object |
Informações de autenticação de senha de usuário do IAM.
NOTA:
|
|
Sim |
Object |
Informações da autenticação. Este parâmetro é obrigatório somente quando a autenticação de login baseada em MFA virtual está ativada. |
Parâmetro |
Obrigatoriedade |
Tipo |
Descrição |
---|---|---|---|
Sim |
Object |
Informações sobre o usuário do IAM que está solicitando a obtenção de um token. |
Parâmetro |
Obrigatoriedade |
Tipo |
Descrição |
---|---|---|---|
Sim |
Object |
Informações sobre a conta usada para criar o usuário do IAM. Para obter detalhes sobre a relação entre contas e usuários do IAM, consulte Relação entre uma conta e seu usuários do IAM. |
|
name |
Sim |
String |
Nome de usuário do IAM. |
password |
Sim |
String |
Senha do usuário do IAM.
NOTA:
|
Parâmetro |
Obrigatoriedade |
Tipo |
Descrição |
---|---|---|---|
name |
Sim |
String |
Nome da conta. Para obter detalhes sobre como obter o nome da conta, consulte Obtenção de informações de conta, usuário do IAM, grupo, projeto, região e agência. |
Parâmetro |
Obrigatoriedade |
Tipo |
Descrição |
---|---|---|---|
Sim |
Object |
Informações do usuário do IAM. Verifique se a proteção de login baseada em MFA virtual foi ativada para o usuário do IAM. Para obter detalhes, consulte Operações críticas. |
Parâmetro |
Obrigatoriedade |
Tipo |
Descrição |
---|---|---|---|
id |
Sim |
String |
ID do usuário do IAM para o qual a proteção de login baseada em MFA virtual foi ativada. |
passcode |
Sim |
String |
Código de verificação de MFA, que pode ser obtido do dispositivo de MFA virtual vinculado ao usuário do IAM. Para obter detalhes, consulte Como fazer para obter códigos de verificação MFA?
NOTA:
Para obter um token com êxito, verifique se o código de verificação fornecido está correto. |
Parâmetro |
Obrigatoriedade |
Tipo |
Descrição |
---|---|---|---|
Não |
Object |
Se esse campo estiver definido como domain, o token poderá ser usado para acessar serviços globais, como o OBS. Os serviços globais não estão sujeitos a nenhum projeto ou região. Para obter detalhes sobre o escopo do serviço, consulte Permissões do sistema. Você pode especificar id ou name. domain_id é recomendado. |
|
Não |
Object |
Se esse campo estiver definido como project, o token poderá ser usado para acessar apenas serviços em projetos específicos, como o ECS. Para obter detalhes sobre o escopo do serviço, consulte Permissões do sistema. Você pode especificar id ou name. |
Parâmetro |
Obrigatoriedade |
Tipo |
Descrição |
---|---|---|---|
id |
Não |
String |
ID da conta. Para obter detalhes sobre como conseguir o ID de domínio, consulte Obtenção de informações de conta, usuário do IAM, grupo, projeto, região e agência. |
name |
Não |
String |
Nome da conta. Para obter detalhes sobre como obter o nome da conta, consulte Obtenção de informações de conta, usuário do IAM, grupo, projeto, região e agência. |
Parâmetro |
Obrigatoriedade |
Tipo |
Descrição |
---|---|---|---|
id |
Não |
String |
ID do projeto. Para obter detalhes de como conseguir o ID de domínio, consulte Obtenção de informações de conta, usuário do IAM, grupo, projeto, região e agência. |
name |
Não |
String |
Nome do projeto. Para obter detalhes sobre como conseguir o ID de domínio, consulte Obtenção de informações de conta, usuário do IAM, grupo, projeto, região e agência. |
Exemplo de solicitação
- Exemplo 1: solicitação para obter um token para o usuário do IAM IAMUser (senha: IAMPassword; nome da conta: IAMDomain; escopo: domain)
POST https://iam.myhuaweicloud.com/v3/auth/tokens
{ "auth": { "identity": { "methods": [ "password", "totp" ], "password": { "user": { "name": "IAMUser", // IAM user name. "password": "IAMPassword", // IAM user password. "domain": { "name": "IAMDomain" // Name of the account to which the IAM user belongs. } } }, "totp": { "user": { "id": "7116d09f88fa41908676fdd4b039e...", // IAM user ID. "passcode": "******" // Virtual MFA verification code. } } }, "scope": { "domain": { "name": "IAMDomain" // Name of the account to which the IAM user belongs. } } } }
- Exemplo 2: solicitação para obter um token para o usuário do IAM IAMUser (senha: IAMPassword; nome da conta: IAMDomain; escopo: projeto ap-southeast-1) sem exibir informações de catálogo na resposta
POST https://iam.myhuaweicloud.com/v3/auth/tokens?nocatalog=true
{ "auth": { "identity": { "methods": [ "password", "totp" ], "password": { "user": { "name": "IAMUser", // IAM user name. "password": "IAMPassword", // IAM user password. "domain": { "name": "IAMDomain" // Name of the account to which the IAM user belongs. } } }, "totp": { "user": { "id": "7116d09f88fa41908676fdd4b039e...", // IAM user ID. "passcode": "******" // Virtual MFA verification code. } } }, "scope": { "project": { "name": "ap-southeast-1" //Project name } } } }
Parâmetros de resposta
Parâmetro |
Tipo |
Descrição |
---|---|---|
X-Subject-Token |
String |
Token assinado. |
Parâmetro |
Tipo |
Descrição |
---|---|---|
Object |
Informações do token. |
Parâmetro |
Tipo |
Descrição |
---|---|---|
Array of objects |
Informações do catálogo. |
|
Object |
Informações da conta do usuário do IAM que solicita o token. Este parâmetro é retornado somente quando o parâmetro scope no corpo da solicitação foi definido como domain. |
|
expires_at |
String |
Hora em que o token expirará. |
mfa_authn_at |
String |
Tempo de autenticação do MFA. |
issued_at |
String |
Hora em que o token foi emitido. |
methods |
Array of strings |
Método para obter o token. |
Object |
Informações do projeto do usuário do IAM. Este parâmetro é retornado somente quando o parâmetro scope no corpo da solicitação foi definido como project. |
|
Array of objects |
Informações de permissões do token. |
|
Object |
Informações sobre o usuário do IAM que solicita o token. |
Parâmetro |
Tipo |
Descrição |
---|---|---|
Array of objects |
Informações do ponto final. |
|
id |
String |
ID do serviço. |
name |
String |
Nome do serviço. |
type |
String |
Tipo do serviço ao qual a API pertence. |
Parâmetro |
Tipo |
Descrição |
---|---|---|
id |
String |
ID do ponto final. |
interface |
String |
Visibilidade da API. public indica que a API está disponível para acesso público. |
region |
String |
Região à qual o ponto final pertence. |
region_id |
String |
ID da região. |
url |
String |
URL do ponto final. |
Parâmetro |
Tipo |
Descrição |
---|---|---|
Object |
Informações da conta do projeto. |
|
id |
String |
ID do projeto. |
name |
String |
Nome do projeto. |
Parâmetro |
Tipo |
Descrição |
---|---|---|
id |
String |
ID da conta. |
name |
String |
Nome da conta. |
Parâmetro |
Tipo |
Descrição |
---|---|---|
name |
String |
Nome de permissão. |
id |
String |
ID de permissão. O valor padrão é 0, que não corresponde a nenhuma permissão. |
Parâmetro |
Tipo |
Descrição |
---|---|---|
name |
String |
Nome de usuário do IAM. |
id |
String |
ID do usuário do IAM. |
password_expires_at |
String |
Horário UTC quando a senha expira. Se este parâmetro estiver vazio, indica que a senha tem validade ilimitada. |
Object |
Informações sobre a conta usada para criar o usuário do IAM. |
Exemplo de resposta
Código de status: 201
A solicitação foi bem-sucedida.
- Exemplo 1: resposta à solicitação de obtenção de um token para o usuário do IAM IAMUser (senha: IAMPassword; nome da conta: IAMDomain; escopo: domain)
Parameters in the response header (obtained token) X-Subject-Token:MIIatAYJKoZIhvcNAQcCoIIapTCCGqECAQExDTALB...
Parameters in the response body { "token": { "expires_at": "2020-01-04T09:08:49.965000Z", "mfa_authn_at": "2020-01-03T09:08:49.965000Z", "methods": [ "password", "totp" ], "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.sample.domain.com/v1.0" } ], "id": "c6db69fabbd549908adcb861c7e47...", "name": "bssv1", "type": "bssv1" } ], "domain": { "id": "d78cbac186b744899480f25bd022f...", "name": "IAMDomain" }, "roles": [ { "id": "0", "name": "te_admin" }, { "id": "0", "name": "secu_admin" }, { "id": "0", "name": "te_agency" } ], "issued_at": "2020-01-03T09:08:49.965000Z", "user": { "domain": { "id": "d78cbac186b744899480f25bd022f...", "name": "IAMDomain" }, "id": "7116d09f88fa41908676fdd4b039e...", "name": "IAMUser", "password_expires_at": "" } } }
- Exemplo 2: resposta à solicitação de obtenção de um token para o usuário do IAM IAMUser (senha: IAMPassword; nome da conta: IAMDomain; escopo: projeto ap-southeast-1) sem exibir informações de catálogo na resposta
Parameters in the response header (obtained token) X-Subject-Token:MIIatAYJKoZIhvcNAQcCoIIapTCCGqECAQExDTALB...
Parameters in the response body { "token": { "expires_at": "2020-01-04T09:05:22.701000Z", "mfa_authn_at": "2020-01-03T09:05:22.701000Z", "methods": [ "password", "totp" ], "catalog": [], "roles": [ { "id": "0", "name": "te_admin" }, { "id": "0", "name": "op_gated_OBS_file_protocol" }, { "id": "0", "name": "op_gated_Video_Campus" } ], "project": { "domain": { "id": "d78cbac186b744899480f25bd022f...", "name": "IAMDomain" }, "id": "aa2d97d7e62c4b7da3ffdfc11551f...", "name": "ap-southeast-1" }, "issued_at": "2020-01-03T09:05:22.701000Z", "user": { "domain": { "id": "d78cbac186b744899480f25bd022f...", "name": "IAMDomain" }, "id": "7116d09f88fa41908676fdd4b039e...", "name": "IAMUser", "password_expires_at": "" } } }
Código de status: 400
Parâmetros inválidos.
{ "error": { "code": 400, "message": "The request body is invalid", "title": "Bad Request" } }
Código de status: 401
Autenticação falhou.
- Se você for um usuário de um sistema de terceiros, não será possível obter um token usando o nome de usuário e a senha usados para autenticação de identidade federada. Vá para a página de login da HUAWEI CLOUD, clique em Forgot password, clique em Reset HUAWEI CLOUD account password e defina uma nova senha.
- Se a sua conta da HUAWEI CLOUD tiver sido atualizada para um HUAWEI ID, não poderá obter um token utilizando o HUAWEI ID. Em vez disso, você pode criar um usuário do IAM, conceder as permissões necessárias ao usuário e obter um token como usuário.
{ "error": { "code": 401, "message": "The username or password is wrong.", "title": "Unauthorized" } }
Códigos de status
Código de status |
Descrição |
---|---|
201 |
A solicitação foi bem-sucedida. |
400 |
Parâmetros inválidos. |
401 |
Autenticação falhou. |
403 |
Acesso negado. |
404 |
O recurso solicitado não pode ser encontrado. |
500 |
Erro de servidor interno. |
503 |
Serviço indisponível. |
Códigos de erro
Nenhum