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.
Cómputo
Elastic Cloud Server
Bare Metal Server
Auto Scaling
Image Management Service
Dedicated Host
FunctionGraph
Cloud Phone Host
Huawei Cloud EulerOS
Redes
Virtual Private Cloud
Elastic IP
Elastic Load Balance
NAT Gateway
Direct Connect
Virtual Private Network
VPC Endpoint
Cloud Connect
Enterprise Router
Enterprise Switch
Global Accelerator
Gestión y gobernanza
Cloud Eye
Identity and Access Management
Cloud Trace Service
Resource Formation Service
Tag Management Service
Log Tank Service
Config
Resource Access Manager
Simple Message Notification
Application Performance Management
Application Operations Management
Organizations
Optimization Advisor
Cloud Operations Center
Resource Governance Center
Migración
Server Migration Service
Object Storage Migration Service
Cloud Data Migration
Migration Center
Cloud Ecosystem
KooGallery
Partner Center
User Support
My Account
Billing Center
Cost Center
Resource Center
Enterprise Management
Service Tickets
HUAWEI CLOUD (International) FAQs
ICP Filing
Support Plans
My Credentials
Customer Operation Capabilities
Partner Support Plans
Professional Services
Análisis
MapReduce Service
Data Lake Insight
CloudTable Service
Cloud Search Service
Data Lake Visualization
Data Ingestion Service
GaussDB(DWS)
DataArts Studio
IoT
IoT Device Access
Otros
Product Pricing Details
System Permissions
Console Quick Start
Common FAQs
Instructions for Associating with a HUAWEI CLOUD Partner
Message Center
Seguridad y cumplimiento
Security Technologies and Applications
Web Application Firewall
Host Security Service
Cloud Firewall
SecMaster
Data Encryption Workshop
Database Security Service
Cloud Bastion Host
Data Security Center
Cloud Certificate Manager
Blockchain
Blockchain Service
Servicios multimedia
Media Processing Center
Video On Demand
Live
SparkRTC
Almacenamiento
Object Storage Service
Elastic Volume Service
Cloud Backup and Recovery
Storage Disaster Recovery Service
Scalable File Service
Volume Backup Service
Cloud Server Backup Service
Data Express Service
Dedicated Distributed Storage Service
Contenedores
Cloud Container Engine
SoftWare Repository for Container
Application Service Mesh
Ubiquitous Cloud Native Service
Cloud Container Instance
Bases de datos
Relational Database Service
Document Database Service
Data Admin Service
Data Replication Service
GeminiDB
GaussDB
Distributed Database Middleware
Database and Application Migration UGO
TaurusDB
Middleware
Distributed Cache Service
API Gateway
Distributed Message Service for Kafka
Distributed Message Service for RabbitMQ
Distributed Message Service for RocketMQ
Cloud Service Engine
EventGrid
Dedicated Cloud
Dedicated Computing Cluster
Aplicaciones empresariales
ROMA Connect
Message & SMS
Domain Name Service
Edge Data Center Management
Meeting
AI
Face Recognition Service
Graph Engine Service
Content Moderation
Image Recognition
Data Lake Factory
Optical Character Recognition
ModelArts
ImageSearch
Conversational Bot Service
Speech Interaction Service
Huawei HiLens
Developer Tools
SDK Developer Guide
API Request Signing Guide
Terraform
Koo Command Line Interface
Distribución de contenido y cómputo de borde
Content Delivery Network
Intelligent EdgeFabric
CloudPond
Soluciones
SAP Cloud
High Performance Computing
Servicios para desarrolladores
ServiceStage
CodeArts
CodeArts PerfTest
CodeArts Req
CodeArts Pipeline
CodeArts Build
CodeArts Deploy
CodeArts Artifact
CodeArts TestPlan
CodeArts Check
Cloud Application Engine
aPaaS MacroVerse
KooPhone
KooDrive

Obtención de un token de delegación

Actualización más reciente 2024-08-01 GMT+08:00

Función

Esta API se utiliza para obtener un token de delegación.

Por ejemplo, después de establecer una relación de confianza entre A y B, A es la parte delegada y B es la parte delegada. Entonces B puede usar esta API para obtener un token de delegación. El token de delegación obtenido solo se puede usar para gestionar los recursos que la cuenta B está delegada para gestionar. Si la cuenta B necesita gestionar sus propios recursos, la cuenta B necesita obtener un token de usuario. Para obtener más información, consulte Delegación del acceso de recursos a otra cuenta.

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.

NOTA:
  • El período de validez de un token es de 24 horas. 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.

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.

X-Auth-Token

String

Token con permisos de operador de agente de un usuario de IAM creado por la parte delegada B.

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 uso 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 para obtener el token. Establezca este parámetro en assume_role.

assume_role

Object

Detalles sobre la cuenta de delegación y la delegación.

Tabla 6 auth.identity.assume_role

Parámetro

Obligatorio

Tipo

Descripción

domain_id

No

String

ID de cuenta de la parte delegada A. Se debe establecer el domain_id o domain_name. Se recomienda especificar domain_id.

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.

domain_name

No

String

Nombre de la cuenta de la parte delegada A. Se debe establecer domain_id o domain_name. Se recomienda especificar domain_id.

Puede ver el nombre de la cuenta de la parte delegada A en la lista de agencias en la consola de IAM.

agency_name

String

Nombre de la delegación creada por la parte delegada A. Para obtener detalles sobre cómo obtener el nombre de la delegación, consulte Obtención de información de cuenta, usuario de IAM, grupo, proyecto, región y delegación.

Tabla 7 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 del 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 del sistema. Puede especificar el id o name.

Tabla 8 auth.scope.domain

Parámetro

Obligatorio

Tipo

Descripción

id

No

String

ID de cuenta de la parte delegada A. 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. Puede especificar el id o name.

name

No

String

Nombre de la cuenta de la parte delegada A. 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. Puede especificar el id o name.

Tabla 9 auth.scope.project

Parámetro

Obligatorio

Tipo

Descripción

id

No

String

ID del proyecto de la parte delegada A. 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. Puede especificar el id o name.

name

No

String

Nombre del proyecto de la parte delegada A. 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. Puede especificar el id o name.

Solicitud de ejemplo

  • Solicitud de uso de un token de usuario con permisos de Agent Operator del usuario IAMUserB de la parte delegada B (nombre de cuenta: IAMDomainB) para obtener otro token para gestionar los recursos de la parte delegada A (nombre de cuenta: IAMDomainA) en el proyecto ap-southeast-1 a través de IAMAgency, sin mostrar la información del catálogo en la respuesta
    POST https://iam.myhuaweicloud.com/v3/auth/tokens?nocatalog=true
    {
        "auth": {
            "identity": {
                "methods": [
                    "assume_role"
                ],
                "assume_role": {
                    "domain_name": "IAMDomainA",                // Name of the account to which the delegating party IAM user A belongs
                    "agency_name": "IAMAgency"                  // Name of the agency created by IAM user A
                }
            },
            "scope": {
                "project": {
                    "name": "ap-southeast-1"                         //Project name
                }
            }
        }
    }
  • Solicitud de uso de un token de usuario con permisos de Agent Operator del usuario IAMUserB de la parte delegada B (nombre de cuenta: IAMDomainB) para obtener otro token para gestionar todos los recursos de la parte delegada A (nombre de cuenta: IAMDomainA) a través de delegación IAMAgency
    POST https://iam.myhuaweicloud.com/v3/auth/tokens
    {
        "auth": {
            "identity": {
                "methods": [
                    "assume_role"
                ],
                "assume_role": {
                    "domain_name": "IAMDomainA",                // Name of the account to which the delegating party IAM user A belongs
                    "agency_name": "IAMAgency"                  // Name of the agency created by IAM user A
                }
            },
            "scope": {
                "domain": {
                    "name": "IAMDomainA"                        // Name of the account to which the delegating party IAM user A belongs
                }
            }
        }
    }

Parámetros de respuesta

Tabla 10 Parámetros en el encabezado de respuesta

Parámetro

Tipo

Descripción

X-Subject-Token

String

Token firmado.

Tabla 11 Parámetros en el cuerpo de respuesta

Parámetro

Tipo

Descripción

token

Object

Información de token.

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.

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.

assumed_by

Object

Información sobre el partido delegado B.

catalog

Array of objects

Información del catálogo.

domain

Object

Información de cuenta de la parte delegada A. 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 de la parte delegada A. 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 la delegación creada por la parte delegada A.

Tabla 13 token.assumed_by

Parámetro

Tipo

Descripción

user

Object

Información sobre un usuario de IAM de la parte delegada B.

Tabla 14 token.assumed_by.user

Parámetro

Tipo

Descripción

name

String

Nombre de usuario de IAM.

id

String

ID de usuario de IAM.

domain

Object

Información de cuenta de la parte delegada B.

password_expires_at

String

Tiempo de caducidad de la contraseña del usuario de IAM. 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 15 token.assumed_by.user.domain

Parámetro

Tipo

Descripción

name

String

Nombre de la cuenta de la parte delegada B.

id

String

ID de cuenta de la parte delegada B.

Tabla 16 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 17 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 18 token.domain

Parámetro

Tipo

Descripción

name

String

Nombre de la cuenta de la parte delegada A.

id

String

ID de cuenta de la parte delegada A.

Tabla 19 token.project

Parámetro

Tipo

Descripción

name

String

Nombre del proyecto de la parte delegada A.

id

String

ID del proyecto de la parte delegada A.

domain

Object

Información de cuenta de la parte delegada A.

Tabla 20 token.project.domain

Parámetro

Tipo

Descripción

name

String

Nombre de la cuenta de la parte delegada A.

id

String

ID de cuenta de la parte delegada A.

Tabla 21 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 22 token.user

Parámetro

Tipo

Descripción

name

String

Nombre de la cuenta o nombre de la delegación de la parte delegada A.

id

String

ID de delegación.

domain

Object

Información de cuenta de la parte delegada A.

Tabla 23 token.user.domain

Parámetro

Tipo

Descripción

id

String

ID de cuenta de la parte delegada A.

name

String

Nombre de la cuenta de la parte delegada A.

Ejemplo de respuesta

Código de estado: 201

La solicitud se ha realizado correctamente.

Ejemplo 1: Respuesta a la solicitud de uso de un token de usuario con permisos de operador de agente de usuario de IAM IAMUserB de la parte delegada B (nombre de cuenta: IAMDomainB) para obtener otro token para gestionar todos los recursos de la parte delegada A (nombre de cuenta: IAMDomainA) a través de la delegación IAMAgency

Ejemplo 2: Respuesta a la solicitud de uso de un token de usuario con permisos de operador de agente de usuario de IAM IAMUserB de la parte delegada B (nombre de cuenta: IAMDomainB) para obtener otro token para gestionar los recursos de la parte delegada A (nombre de cuenta: IAMDomainA) en el proyecto ap-southeast-1 a través de la delegación IAMAgency sin mostrar información de catálogo en la respuesta

  • Ejemplo 1
    Parameters in the response header
    X-Subject-Token:MIIatAYJKoZIhvcNAQcCoIIapTCCGqECAQExDTALB...
    Parameters in the response body
    {
        "token": {
            "expires_at": "2020-01-05T05:05:17.429000Z",
            "methods": [
                "assume_role"
            ],
            "catalog": [
                {
                    "endpoints": [
                        {
                            "id": "33e1cbdd86d34e89a63cf8ad16a5f49f",
                            "interface": "public",
                            "region": "*",
                            "region_id": "*",
                            "url": "https://iam.myhuaweicloud.com/v3.0"
                        }
                    ],
                    "id": "100a6a3477f1495286579b819d399e36",
                    "name": "iam",
                    "type": "iam"
                }
            ],
            "domain": {
                "id": "d78cbac186b744899480f25bd022f468",
                "name": "IAMDomainA"
            },
            "roles": [
                {
                    "id": "0",
                    "name": "op_gated_eip_ipv6"
                },
                {
                    "id": "0",
                    "name": "op_gated_rds_mcs"
                }
            ],
            "issued_at": "2020-01-04T05:05:17.429000Z",
            "user": {
                "domain": {
                    "id": "d78cbac186b744899480f25bd022f468",
                    "name": "IAMDomainA"
                },
                "id": "0760a9e2a60026664f1fc0031f9f205e",
                "name": "IAMDomainA/IAMAgency"
            },
            "assumed_by": {
                "user": {
                    "domain": {
                        "id": "a2cd82a33fb043dc9304bf72a0f38f00",
                        "name": "IAMDomainB"
                    },
                    "id": "0760a0bdee8026601f44c006524b17a9",
                    "name": "IAMUserB",
                    "password_expires_at": ""
                }
            }
        }
    }
  • Ejemplo 2
    Parameters in the response header
    X-Subject-Token:MIIatAYJKoZIhvcNAQcCoIIapTCCGqECAQExDTALB...
    Parameters in the response body
    {
        "token": {
            "expires_at": "2020-01-05T06:49:28.094000Z",
            "methods": [
                "assume_role"
            ],
            "catalog": [],
            "roles": [
                {
                    "id": "0",
                    "name": "op_gated_eip_ipv6"
                },
                {
                    "id": "0",
                    "name": "op_gated_rds_mcs"
                }
            ],
            "project": {
                "domain": {
                    "id": "d78cbac186b744899480f25bd022f468",
                    "name": "IAMDomainA"
                },
                "id": "aa2d97d7e62c4b7da3ffdfc11551f878",
                "name": "ap-southeast-1"
            },
            "issued_at": "2020-01-04T06:49:28.094000Z",
            "user": {
                "domain": {
                    "id": "d78cbac186b744899480f25bd022f468",
                    "name": "IAMDomainA"
                },
                "id": "0760a9e2a60026664f1fc0031f9f205e",
                "name": "IAMDomainA/IAMAgency"
            },
            "assumed_by": {
                "user": {
                    "domain": {
                        "id": "a2cd82a33fb043dc9304bf72a0f38f00",
                        "name": "IAMDomainB"
                    },
                    "id": "0760a0bdee8026601f44c006524b17a9",
                    "name": "IAMUserB",
                    "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.

{
    "error": {
        "code": 401,
        "message": "The X-Auth-Token is invalid!",
        "title": "Unauthorized"
    }
}

Código de estado: 403

Acceso denegado.

  • El token de usuario especificado en X-Auth-Token para el usuario B de la parte delegada B no tiene el permiso de operador de agente. Por favor, solicite el permiso requerido.
{
    "error": {
        "code": 403,
        "message": "You have no right to do this action",
        "title": "Forbidden"
    }
}

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. (La posible causa de este error es que la parte delegada no tiene el permiso de operador de agente.)

404

No se puede encontrar el recurso solicitado.

500

Error de servidor interno.

503

Servicio no disponible.

Códigos de error

Ninguno

Utilizamos cookies para mejorar nuestro sitio y tu experiencia. Al continuar navegando en nuestro sitio, tú aceptas nuestra política de cookies. Descubre más

Comentarios

Comentarios

Comentarios

0/500

Seleccionar contenido

Enviar el contenido seleccionado con los comentarios