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 2024-08-01 GMT+08:00

Obtención de un token de inicio de sesión

Función

Esta API se utiliza para obtener un token de inicio de sesión para iniciar sesión a través de un agente de identidad personalizado. Los tokens de inicio de sesión se emiten a los usuarios para que inicien sesión a través de agentes de identidad personalizados. Cada token de inicio de sesión contiene la identidad y la información de sesión de un usuario. Para iniciar sesión en una consola de servicio en la nube con una URL de agente de identidad personalizada, invoque a esta API para obtener un token de inicio de sesión para la 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.

Por defecto, un token de inicio de sesión es válido durante 10 minutos. Puede establecer un período de validez de 10 minutos a 12 horas.

URI

POST /v3.0/OS-AUTH/securitytoken/logintokens

Parámetros de solicitud

Tabla 1 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 2 Parámetros en el cuerpo de la solicitud

Parámetro

Obligatorio

Tipo

Descripción

auth

Object

Información de autenticación.

Tabla 3 auth

Parámetro

Obligatorio

Tipo

Descripción

securitytoken

Object

Parámetros de autenticación.

Tabla 4 auth.securitytoken

Parámetro

Obligatorio

Tipo

Descripción

access

String

AK.

secret

String

SK.

id

String

Token de seguridad temporal.

Un token de inicio de sesión se puede obtener usando el token de seguridad de un usuario de agente de identidad personalizado o un usuario común. Para obtener más información, véase Obtención de una clave de acceso temporal y un token de seguridad a través de un token.

Un token de seguridad se puede obtener mediante una agencia y el parámetro session_user.name debe especificarse en el cuerpo de la solicitud. Para obtener más información, consulte Obtención de una clave de acceso temporal y un token de seguridad a través de una delegación.

duration_seconds

No

Integer

Período de validez (segundos) del token de inicio de sesión. El valor oscila entre 10 minutos y 12 horas. El valor predeterminado es 10 minutos, es decir, 600 segundos.

NOTA:
  • Si el valor transferido está más allá del rango (10 minutos a 12 horas), se utiliza el valor predeterminado 10 minutos.
  • El período de validez del token de inicio de sesión es el período de validez restante del token de seguridad temporal o el valor de duration_seconds, el que sea menor.
    • Establezca un período de validez largo (15 minutos a 24 horas) para el token de seguridad y asegúrese de que el valor de duration_seconds es menor que el período de validez restante del token de seguridad.
    • Si el periodo de validez restante del token de seguridad es inferior a 10 minutos, el periodo de validez del token de inicio de sesión es de 10 minutos.

Parámetros de respuesta

Tabla 5 Parámetros en el encabezado de respuesta

Parámetro

Tipo

Descripción

X-Subject-LoginToken

String

Token de inicio de sesión firmado.

Tabla 6 Parámetros en el cuerpo de respuesta

Parámetro

Tipo

Descripción

logintoken

Object

Información del token de inicio de sesión.

Tabla 7 logintoken

Parámetro

Tipo

Descripción

domain_id

String

ID de cuenta.

expires_at

String

Hora en que caducará el token de inicio de sesión.

method

String

Método de autenticación. El valor es de federation_proxy para un usuario de agente de identidad personalizado y de token para un usuario de Huawei Cloud.

user_id

String

ID de usuario.

user_name

String

Nombre de usuario.

session_id

String

ID de sesión.

session_user_id

String

ID de un usuario de agente de identidad personalizado.

session_name

String

Nombre de un usuario de agente de identidad personalizado.

NOTA:

Este parámetro se devolverá cuando obtenga una clave de acceso temporal y un token de seguridad mediante una delegación y especifique el parámetro session_user.name en el cuerpo de la solicitud. El valor de este parámetro es el valor de session_user.name.

assumed_by

Object

Información sobre la parte delegada.

NOTA:

Este parámetro se devolverá cuando obtenga una clave de acceso temporal y un token de seguridad mediante una delegación y especifique el parámetro session_user.name en el cuerpo de la solicitud.

Tabla 8 logintoken.assumed_by

Parámetro

Tipo

Descripción

user

Object

Información sobre la parte delegada.

Tabla 9 logintoken.assumed_by.user

Parámetro

Tipo

Descripción

domain

Object

Información de cuenta delegada.

name

String

Nombre de usuario de la parte delegada.

password_expires_at

String

Tiempo de caducidad de la contraseña.

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.

id

String

ID de usuario.

Tabla 10 logintoken.assumed_by.user.domain

Parámetro

Tipo

Descripción

name

String

Nombre de la cuenta a la que pertenece la parte delegada.

id

String

ID de cuenta.

Solicitud de ejemplo

Solicitud de obtención de un token de inicio de sesión a través de un agente de identidad personalizado

POST https://iam.myhuaweicloud.com/v3.0/OS-AUTH/securitytoken/logintokens
{
    "auth": {
        "securitytoken": {
            "access": "LUJHNN4WB569PGAP...",
            "secret": "7qtrm2cku0XubixiVkBOcvMfpnu7H2mLN...",
            "id": "gQpjbi1ub3J0a...",
            "duration_seconds":"600"
        }
    }
}

Ejemplo de respuesta

Código de estado: 201

La solicitud se ha realizado correctamente.

Ejemplo 1: Respuesta a la solicitud para obtener una clave de acceso temporal y un token de seguridad a través de un token

Ejemplo 2: Respuesta a la solicitud de obtención de una clave de acceso temporal y un token de seguridad a través de una agencia (con session_user.name en el cuerpo de la solicitud)

  • Ejemplo 1
    Parameters in the response header
    X-Subject-LoginToken:MIIatAYJKoZIhvcNAQcCoIIapTCCGqECAQExDTALB...
    Parameters in the response body
    {
        "logintoken": {
            "domain_id": "05262121fb00d5c30fbec013bc1...",
            "expires_at": "2020-01-20T08:18:36.447000Z",
            "method": "token",
            "user_id": "0526213b8a80d38a1f31c013ed...",
            "user_name": "IAMUser",
            "session_user_id": "093f75808b8089ba1f6dc000c7cac...",
            "session_id": "40b328b6683a41b9bf8e7185e..."
        }
    }
  • Ejemplo 2
    Parameters in the response header
    X-Subject-LoginToken:MIIatAYJKoZIhvcNAQcCoIIapTCCGqECAQExDTALB...
    Parameters in the response body
    {
        "logintoken": {
            "domain_id": "05262121fb00d5c30fbec01...",
            "expires_at": "2020-01-23T03:27:26.728000Z",
            "method": "federation_proxy",
            "user_id": "07826f367b80d2474ff9c013a...",
            "user_name": "IAMDomainA/IAMAgency",
            "session_id": "0012c8e6adda4ce787e90585d...",
            "session_user_id": "093f75808b8089ba1f6dc000c7cac...",
            "session_name": "SessionUserName",
            "assumed_by": {
                "user": {
                    "domain": {
                        "name": "IAMDomainB",
                        "id": "0659ef9c9c80d4560f14c009ac..."
                    },
                    "name": "IAMUserB",
                    "password_expires_at": "2020-02-16T02:44:57.000000Z",
                    "id": "0659ef9d4d00d3b81f26c009fe..."
                }
            }
        }
    }

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.

405

El método especificado en la solicitud no está permitido para el recurso solicitado.

413

La entidad solicitada es demasiado grande.

500

Error de servidor interno.

503

Servicio no disponible.

Códigos de error

Ninguno