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 2022-11-08 GMT+08:00

Obtención de un LoginToken

Función

Esta API se utiliza para obtener un loginToken para iniciar sesión a través de un agente de identidad personalizado. Las LoginTokens se emiten a los usuarios para que inicien sesión a través de agentes de identidad personalizados. Cada loginToken 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, llame a esta API para obtener un loginToken para la autenticación.

Se puede llamar 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 Regions y puntos de conexión.

Por defecto, un loginToken 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

SecurityToken temporal.

Un loginToken se puede obtener usando el securityToken de un usuario de agente de identidad personalizado o un usuario común. Para más detalles, consulte Obtención de una clave de acceso temporal y SecurityToken a través de un token.

Un securityToken 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 SecurityToken a través de una agencia.

duration_seconds

No

Integer

Período de validez (segundos) del loginToken. 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 loginToken es el período de validez restante del securityToken temporal o el valor de la duration_seconds, el que sea menor.
    • Establezca un período de validez largo (de 15 minutos a 24 horas) para el securityToken y asegúrese de que el valor de la duration_seconds es menor que el período de validez restante del securityToken.
    • Si el período de validez restante del securityToken es inferior a 10 minutos, el período de validez del loginToken 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

LoginToken firmado.

Tabla 6 Parámetros en el cuerpo de respuesta

Parámetro

Tipo

Descripción

logintoken

Object

Información de LoginToken.

Tabla 7 logintoken

Parámetro

Tipo

Descripción

domain_id

String

ID de cuenta.

expires_at

String

Hora en que caducará el loginToken.

method

String

Método de autenticación. El valor es federation_proxy para un usuario de agente de identidad personalizado y token para un usuario común 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 securityToken usando una agencia 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 securityToken usando una agencia 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.

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

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 securityToken a través de un token

Ejemplo 2: Respuesta a la solicitud para obtener una clave de acceso temporal y securityToken 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