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 con ámbito

Función

Esta API se utiliza para obtener un token de ámbito a través de la autenticación de identidad federada.

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.

URI

POST /v3/auth/tokens

Parámetros de solicitud

Tabla 1 Parámetros en el encabezado de solicitud

Parámetro

Obligatorio

Tipo

Descripción

Content-Type

No

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

identity

Object

Parámetros de autenticación.

scope

Object

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

Tabla 4 auth.identity

Parámetro

Obligatorio

Tipo

Descripción

methods

Array of strings

Método de autenticación. El valor de este campo es token.

token

Object

Información de token sin ámbito.

Tabla 5 auth.identity.token

Parámetro

Obligatorio

Tipo

Descripción

id

String

ID de token sin ámbito.

Tabla 6 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 recursos en todos los proyectos bajo la cuenta de un ID o nombre especificado.

project

No

Object

Si este campo se establece como project, el token solo se puede utilizar para acceder a los recursos del proyecto de un ID o nombre especificado.

Tabla 7 auth.scope.domain

Parámetro

Obligatorio

Tipo

Descripción

id

No

String

ID de cuenta. Debe especificarse id o name.

name

No

String

Nombre de cuenta. Debe especificarse id o name.

Tabla 8 auth.scope.project

Parámetro

Obligatorio

Tipo

Descripción

domain

No

Object

Información de cuenta. Este parámetro es obligatorio si se establece el parámetro name.

id

No

String

ID del proyecto. Debe especificarse id o name.

name

No

String

Nombre del proyecto. Debe especificarse id o name.

Tabla 9 auth.scope.project.domain

Parámetro

Obligatorio

Tipo

Descripción

id

No

string

ID de cuenta. Debe especificarse id o name.

name

No

string

Nombre de cuenta. Debe especificarse id o name.

Parámetros de respuesta

Tabla 10 Parámetros en el encabezado de respuesta

Parámetro

Tipo

Descripción

X-Subject-Token

String

Token con ámbito firmado.

Tabla 11 Parámetros en el cuerpo de respuesta

Parámetro

Tipo

Descripción

token

Object

Detalles del token con ámbito.

Tabla 12 token

Parámetro

Tipo

Descripción

methods

Array of strings

Método para obtener el token.

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.

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.

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.

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.

Tabla 13 token.catalog

Parámetro

Tipo

Descripción

type

String

Tipo del servicio al que pertenece la API.

id

String

ID de servicio.

name

String

Nombre del servicio.

endpoints

Array of objects

Información del punto de conexión.

Tabla 14 token.catalog.endpoints

Parámetro

Tipo

Descripción

url

String

URL de punto de conexión.

region

String

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

region_id

String

ID de región.

interface

String

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

id

String

ID de punto de conexión.

Tabla 15 token.domain

Parámetro

Tipo

Descripción

name

String

Nombre de cuenta.

id

String

ID de cuenta.

Tabla 16 token.project

Parámetro

Tipo

Descripción

name

String

Nombre del proyecto.

id

String

ID del proyecto.

domain

Object

Información de cuenta del proyecto.

Tabla 17 token.project.domain

Parámetro

Tipo

Descripción

name

String

Nombre de cuenta.

id

String

ID de cuenta.

Tabla 18 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 19 token.user

Parámetro

Tipo

Descripción

domain

Object

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

OS-FEDERATION

Object

Información de autenticación de identidad federada.

id

String

ID de usuario.

name

String

Nombre de usuario.

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.

Tabla 20 token.user.domain

Parámetro

Tipo

Descripción

name

String

Nombre de cuenta.

id

String

ID de cuenta.

Tabla 21 token.user.OS-FEDERATION

Parámetro

Tipo

Descripción

groups

Array of objects

Información del grupo de usuarios.

identity_provider

Object

Información del proveedor de identidad.

protocol

Object

Información de protocolos.

Tabla 22 token.user.OS-FEDERATION.groups

Parámetro

Tipo

Descripción

id

String

ID de grupo de usuarios.

name

String

Nombre del grupo de usuarios.

Tabla 23 token.user.OS-FEDERATION.identity_provider

Parámetro

Tipo

Descripción

id

String

ID de proveedor de identidad.

Tabla 24 token.user.OS-FEDERATION.protocol

Parámetro

Tipo

Descripción

id

String

ID del protocolo.

Ejemplo de solicitud

Solicitud de obtención de un token de ámbito

POST https:///v3/auth/tokens
{
    "auth": {
        "identity": {
            "methods": [
                "token"
            ],
            "token": {
                "id": "MIIatAYJKoZIhvcNAQcCoIIapTCCGqECAQExDTALB..."
            }
        },
        "scope": {
            "domain": {
                "id": "063bb260a480cecc0f36c0086bb6c..."
            }
        }
    }
}

Ejemplo de respuesta

Código de estado: 201

La solicitud se ha realizado correctamente.

Parameters in the response header
X-Subject-Token:MIIatAYJKoZIhvcNAQcCoIIapTCCGqECAQExDTALB...
Parameters in the response body
{
    "token": {
        "expires_at": "2020-02-13T14:21:34.042000Z",
        "methods": [
            "token"
        ],
        "catalog": [
            {
                "endpoints": [
                    {
                        "id": "d2983f677ce14f1e81cbb6a9345a107a",
                        "interface": "public",
                        "region": "*",
                        "region_id": "*",
                        "url": "https://iam.ap-southeast-1.myhuaweicloud.com/v3"
                    }
                ],
                "id": "fd631b3426cb40f0919091d5861d8fea",
                "name": "keystone",
                "type": "identity"
            }
        ],
        "domain": {
            "id": "06aa2260a480cecc0f36c0086bb6cfe0",
            "name": "IAMDomain"
        },
        "roles": [
            {
                "id": "0",
                "name": "te_admin"
            },
            {
                "id": "0",
                "name": "secu_admin"
            }
        ],
        "issued_at": "2020-02-12T14:21:34.042000Z",
        "user": {
            "OS-FEDERATION": {
                "groups": [
                    {
                        "id": "06aa2260bb00cecc3f3ac0084a74038f",
                        "name": "admin"
                    }
                ],
                "identity_provider": {
                    "id": "ACME"
                },
                "protocol": {
                    "id": "saml"
                }
            },
            "domain": {
                "id": "06aa2260a480cecc0f36c0086bb6cfe0",
                "name": "IAMDomain"
            },
            "id": "LdQTDSC7zmJVIic3yaCbLBXDxPAdDxLg",
            "name": "FederationUser",
            "password_expires_at": ""
        }
    }
}

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