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.
Centro de ayuda/ Identity and Access Management/ Referencia de la API/ API/ Gestión de token/ Obtención de un token de usuario mediante contraseña y autenticación MFA virtual
Actualización más reciente 2024-08-01 GMT+08:00

Obtención de un token de usuario mediante contraseña y autenticación MFA virtual

Función

Esta API se proporciona para que los usuarios de IAM obtengan un token a través de username/password and virtual MFA authentication. Para utilizar esta API, asegúrese de que virtual MFA-based login protection has been enabled para el usuario de IAM. Un token es una credencial de acceso emitida a un usuario para llevar su identidad y permisos. Al invocar a las API de IAM u otros servicios en la nube, puede usar esta API para obtener un token de autenticación.

Se puede invocar a la API utilizando tanto el punto de conexión global como los puntos de conexión específicos de la región. Para los puntos de conexión de IAM, consulte Regiones y puntos de conexión.

Enlaces rápidos

Obtención de un token como usuario de IAM

Obtención de un token mediante una cuenta maestra

Obtención de un token con un ID de HUAWEI

Obtención de un token con una cuenta de Huawei Cloud

Obtención de un token como usuario del sistema de terceros

Período de validez de un token

Preguntas frecuentes sobre cómo obtener un token

Operaciones relacionadas

  • Obtención de un token como usuario de IAM

    Véase Parámetros de solicitud.

  • Obtención de un token usando una cuenta

    Comprueba si tu cuenta se ha actualizado de Huawei Cloud a HUAWEI ID consultando ¿Cómo sé si he iniciado sesión con un HUAWEI ID o una cuenta de Huawei Cloud?

  • Obtención de un token con un ID de HUAWEI

    No puede usar directamente un ID de HUAWEI para obtener un token. Debe crear un usuario de IAMasignar permisos a los usuarios y utilizar el usuario para obtener un token.

  • Obtención de un token con una cuenta de Huawei Cloud

    Véase Parámetros de solicitud.

  • Obtención de un token como usuario del sistema de terceros

    Si es usuario de un sistema de terceros, no puede obtener un token utilizando el nombre de usuario y la contraseña que utiliza para la autenticación de identidad federada. En su lugar, debe ir a la página de inicio de sesión de Huawei Cloud, haga clic en Forgot password haga clic en Reset Huawei Cloud account password y establecer una contraseña.

  • Período de validez de un token
    • El período de validez de un token es de 24 hours. Almacenar en caché el token para evitar invocaciones frecuentes a la API. Asegúrese de que el token es válido mientras lo usa. El uso de un token que caducará pronto puede provocar fallas en las invocaciones a la API. La obtención de un nuevo token no afecta a la validez del token existente.
    • El token quedará inválido en un plazo de 30 minutos si se produce alguna de las siguientes situaciones:
      • El usuario de IAM se elimina o deshabilita.
      • Se cambia la contraseña o la clave de acceso del usuario de IAM.
      • Se cambian los permisos del usuario de IAM (debido a pagos pendientes, aprobación de la solicitud OBT o modificación del permiso).
    • Si The token must be updated se devuelve cuando se utiliza un token para invocar a una API de servicio en la nube, el token ha caducado. Necesita obtener un nuevo token.
  • Preguntas frecuentes sobre cómo obtener un token

    Nombre de usuario o contraseña incorrectos: Compruebe si el nombre de usuario y la contraseña introducidos son correctos. Si el nombre de usuario y la contraseña son correctos pero el error persiste, compruebe si ha utilizado un ID de HUAWEI para obtener un token. Un ID de HUAWEI no se puede utilizar directamente para obtener un token. Es necesario crear un usuario de IAM, conceder permisos al usuario y utilizar el usuario para obtener un token.

    Sin permisos de acceso a la API: antes de invocar a una API, asegúrese de que ha habilitado el acceso programático habilitado para acceso programático.

URI

POST /v3/auth/tokens

Tabla 1 Parámetros de consulta

Parámetro

Obligatorio

Tipo

Descripción

nocatalog

No

String

Si se establece este parámetro, no se mostrará ninguna información del catálogo en la respuesta. Cualquier conjunto de cadenas de caracteres para este parámetro indica que no se mostrará ninguna información del catálogo.

Parámetros de solicitud

Tabla 2 Parámetros en el encabezado de solicitud

Parámetro

Obligatorio

Tipo

Descripción

Content-Type

String

Rellene application/json;charset=utf8 en este campo.

Tabla 3 Parámetros en el cuerpo de la solicitud

Parámetro

Obligatorio

Tipo

Descripción

auth

Object

Información de autenticación.

Tabla 4 auth

Parámetro

Obligatorio

Tipo

Descripción

identity

Object

Parámetros de autenticación.

scope

Object

Ámbito de aplicación del token. El valor puede ser project o domain.

NOTA:
  • Si el ámbito es un dominio, el token se aplica a los servicios globales. Si el ámbito es un proyecto, el token se aplica a los servicios a nivel de proyecto.
  • Si el ámbito se establece en proyecto y dominio, se utiliza el proyecto y se obtiene un token para los servicios a nivel de proyecto.
  • Si el ámbito se deja en blanco, se obtiene un token para los servicios globales. Se recomienda especificar este parámetro.
Tabla 5 auth.identity

Parámetro

Obligatorio

Tipo

Descripción

methods

Array of strings

Método de autenticación.

Opciones:

  • contraseña
  • totp

password

Object

Información de autenticación de contraseña de usuario de IAM.

NOTA:

totp

Object

Información de autenticación. Este parámetro es obligatorio solo cuando la autenticación de inicio de sesión basada en MFA virtual está habilitada.

Tabla 6 auth.identity.password

Parámetro

Obligatorio

Tipo

Descripción

user

Object

Información sobre el usuario de IAM que está solicitando obtener un token.

Tabla 7 auth.identity.password.user

Parámetro

Obligatorio

Tipo

Descripción

domain

Object

Información sobre la cuenta utilizada para crear el usuario de IAM. Para obtener más información sobre la relación entre cuentas y usuarios de IAM, consulte Relación entre una cuenta y sus usuarios de IAM.

name

String

Nombre de usuario de IAM.

password

String

Contraseña del usuario IAM.

NOTA:
  • Para obtener un token correctamente, asegúrese de que la contraseña que proporciona es correcta.
  • Si es usuario de un sistema de terceros, no puede obtener un token utilizando el nombre de usuario y la contraseña que utiliza para la autenticación de identidad federada. Vaya a la página de inicio de sesión de Huawei Cloud, haga clic en Forgot password, haga clic en Reset Huawei Cloud account password y establezca una nueva contraseña.
Tabla 8 auth.identity.password.user.domain

Parámetro

Obligatorio

Tipo

Descripción

name

String

Nombre de cuenta. Para obtener más información sobre cómo obtener el nombre de la cuenta, consulte Obtención de información de cuenta, usuario de IAM, grupo, proyecto, región y delegación.

Tabla 9 auth.identity.totp

Parámetro

Obligatorio

Tipo

Descripción

user

Object

Información del usuario de IAM. Asegúrese de que se ha habilitado la protección de inicio de sesión virtual basada en MFA para el usuario de IAM. Para obtener más información, consulte Operaciones críticas.

Tabla 10 auth.identity.totp.user

Parámetro

Obligatorio

Tipo

Descripción

id

String

ID del usuario de IAM para el que se ha habilitado la protección de inicio de sesión virtual basada en MFA.

passcode

String

Código de verificación de MFA, que puede obtenerse del dispositivo MFA virtual enlazado al usuario de IAM. Para obtener más información, consulte ¿Cómo obtengo códigos de verificación de MFA?

NOTA:

Para obtener un token con éxito, asegúrese de que el código de verificación que proporciona es correcto.

Tabla 11 auth.scope

Parámetro

Obligatorio

Tipo

Descripción

domain

No

Object

Si este campo se establece en domain, el token se puede utilizar para acceder a servicios globales, como OBS. Los servicios globales no están sujetos a ningún proyecto o región. Para obtener más información sobre el alcance del servicio, consulte Permisos de sistema. Puede especificar el id o name. Se recomienda domain.id.

project

No

Object

Si este campo se establece como project, el token se puede usar para acceder solo a servicios en proyectos específicos, como ECS. Para obtener más información sobre el alcance del servicio, consulte Permisos de sistema. Puede especificar el id o name.

Tabla 12 auth.scope.domain

Parámetro

Obligatorio

Tipo

Descripción

id

No

String

ID de cuenta. Para obtener más información sobre cómo obtener el ID de cuenta, consulte Obtención de información de cuenta, usuario de IAM, grupo, proyecto, región y delegación.

name

No

String

Nombre de cuenta. Para obtener más información sobre cómo obtener el nombre de la cuenta, consulte Obtención de información de cuenta, usuario de IAM, grupo, proyecto, región y delegación.

Tabla 13 auth.scope.project

Parámetro

Obligatorio

Tipo

Descripción

id

No

String

ID del proyecto. Para obtener más información sobre cómo obtener el ID del proyecto, consulte Obtención de información de cuenta, usuario de IAM, grupo, proyecto, región y delegación.

name

No

String

Nombre del proyecto. Para obtener más información sobre cómo obtener el nombre del proyecto, consulte Obtención de información de cuenta, usuario de IAM, grupo, proyecto, región y delegación.

Solicitud de ejemplo

  • Ejemplo 1: Solicitud de obtención de un token para el usuario de IAM IAMUser (contraseña: IAMPassword; nombre de cuenta: IAMDomain; ámbito: domain). Puede obtener el nombre de usuario y el nombre de cuenta de IAM en la página My Credential de la consola. Para obtener más información, véase Obtención de información de cuenta, usuario de IAM, grupo, proyecto, región y delegación.
    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.
                }
            }
        }
    }
  • Ejemplo 2: Solicitud de obtención de un token para usuario de IAM IAMUser (contraseña: IAMPassword; nombre de cuenta: IAMDomain; ámbito: ap-southeast-1 de proyecto) sin mostrar información de catálogo en la respuesta. Puede obtener el nombre de usuario y el nombre de cuenta de IAM en la página My Credential de la consola. Para obtener más información, véase Obtención de información de cuenta, usuario de IAM, grupo, proyecto, región y delegación.
    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 respuesta

Tabla 14 Parámetros en el encabezado de respuesta

Parámetro

Tipo

Descripción

X-Subject-Token

String

Token firmado.

Tabla 15 Parámetros en el cuerpo de respuesta

Parámetro

Tipo

Descripción

token

Object

Información de token.

Tabla 16 token

Parámetro

Tipo

Descripción

catalog

Array of objects

Información del catálogo.

domain

Object

Información de cuenta del usuario de IAM que solicita el token. Este parámetro se devuelve solo cuando el parámetro de scope en el cuerpo de la solicitud se ha establecido en domain.

expires_at

String

Hora en que caducará el token.

NOTA:

El valor es una hora UTC en el formato AAAA-MM-DDTHH:mm:ss.ssssssZ, por ejemplo, 2023-06-28T08:56:33.710000Z. Para obtener más información sobre los formatos de fecha y hora, consulte ISO-8601.

mfa_authn_at

String

Tiempo de autenticación MFA.

NOTA:

El valor es una hora UTC en el formato AAAA-MM-DDTHH:mm:ss.ssssssZ, por ejemplo, 2023-06-28T08:56:33.710000Z. Para obtener más información sobre los formatos de fecha y hora, consulte ISO-8601.

issued_at

String

Hora en que se emitió el token.

NOTA:

El valor es una hora UTC en el formato AAAA-MM-DDTHH:mm:ss.ssssssZ, por ejemplo, 2023-06-28T08:56:33.710000Z. Para obtener más información sobre los formatos de fecha y hora, consulte ISO-8601.

methods

Array of strings

Método para obtener el token.

project

Object

Información del proyecto del usuario de IAM. Este parámetro se devuelve solo cuando el parámetro de scope en el cuerpo de la solicitud se ha establecido en project.

roles

Array of objects

Información de permisos del token.

user

Object

Información sobre el usuario de IAM que solicita el token.

Tabla 17 token.catalog

Parámetro

Tipo

Descripción

endpoints

Array of objects

Información del punto de conexión.

id

String

ID de servicio.

name

String

Nombre del servicio.

type

String

Tipo del servicio al que pertenece la API.

Tabla 18 token.catalog.endpoints

Parámetro

Tipo

Descripción

id

String

ID de punto de conexión.

interface

String

Visibilidad de la API. public indica que la API está disponible para el acceso público.

region

String

Región a la que pertenece el punto de conexión.

region_id

String

ID de región.

url

String

URL de punto de conexión.

Tabla 19 token.domain

Parámetro

Tipo

Descripción

name

String

Nombre de cuenta.

id

String

ID de cuenta.

Tabla 20 token.project

Parámetro

Tipo

Descripción

domain

Object

Información de cuenta del proyecto.

id

String

ID del proyecto.

name

String

Nombre del proyecto.

Tabla 21 token.project.domain

Parámetro

Tipo

Descripción

id

String

ID de cuenta.

name

String

Nombre de cuenta.

Tabla 22 token.roles

Parámetro

Tipo

Descripción

name

String

Nombre del permiso.

id

String

ID de permiso. El valor predeterminado es 0, que no corresponde a ningún permiso.

Tabla 23 token.user

Parámetro

Tipo

Descripción

name

String

Nombre de usuario de IAM.

id

String

ID de usuario de IAM.

password_expires_at

String

Tiempo de caducidad de la contraseña. Si no se especifica este parámetro, la contraseña nunca caducará.

NOTA:

El valor es una hora UTC en el formato AAAA-MM-DDTHH:mm:ss.ssssssZ, por ejemplo, 2023-06-28T08:56:33.710000Z. Para obtener más información sobre los formatos de fecha y hora, consulte ISO-8601.

domain

Object

Información sobre la cuenta utilizada para crear el usuario de IAM.

Tabla 24 token.user.domain

Parámetro

Tipo

Descripción

name

String

Nombre de la cuenta utilizada para crear el usuario IAM.

id

String

ID de la cuenta a la que pertenece el usuario de IAM.

Ejemplo de respuesta

Código de estado: 201

La solicitud se ha realizado correctamente.

  • Ejemplo 1: Respuesta a la solicitud de obtención de un token para el usuario IAMUser de IAM (contraseña: IAMPassword; nombre de cuenta: IAMDomain; ámbito: 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": ""
            }
        }
    }
  • Ejemplo 2: Respuesta a la solicitud de obtención de un token para el usuario IAMUser de IAM (contraseña: IAMPassword; nombre de cuenta: IAMDomain; alcance: proyecto ap-southeast-1) sin mostrar información de catálogo en la respuesta
    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 estado: 400

Parámetros no válidos.

{
    "error": {
        "code": 400,
        "message": "The request body is invalid",
        "title": "Bad Request"
    }
}

Código de estado: 401

Error de autenticación.

  • Si es usuario de un sistema de terceros, no puede obtener un token utilizando el nombre de usuario y la contraseña que utiliza para la autenticación de identidad federada. Vaya a la página de inicio de sesión de Huawei Cloud, haga clic en Forgot password, haga clic en Reset Huawei Cloud account password y establezca una nueva contraseña.
  • Si su cuenta de Huawei Cloud se ha actualizado a un ID de HUAWEI, no puede obtener un token con el ID de HUAWEI. En su lugar, puede crear un usuario de IAM, conceder al usuario los permisos necesarios y obtener un token como usuario.
{
    "error": {
        "code": 401,
        "message": "The username or password is wrong.",
        "title": "Unauthorized"
    }
}

Códigos de estado

Código de estado

Descripción

201

La solicitud se ha realizado correctamente.

400

Parámetros no válidos.

401

Error de autenticación.

403

Acceso denegado.

404

No se puede encontrar el recurso solicitado.

500

Error de servidor interno.

503

Servicio no disponible.

Códigos de error

Ninguno