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 sin ámbito con un token ID de OpenID Connect

Función

Esta API se utiliza para obtener un token sin alcance usando un token de ID de conexión de OpenID.

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/OS-FEDERATION/identity_providers/{idp_id}/protocols/{protocol_id}/auth

Tabla 1 Parámetros de URI

Parámetro

Obligatorio

Tipo

Descripción

idp_id

String

Nombre del proveedor de identidad.

protocol_id

String

ID del protocolo.

Parámetros de solicitud

Tabla 2 Parámetros en el encabezado de solicitud

Parámetro

Obligatorio

Tipo

Descripción

Authorization

String

Token de ID del proveedor de identidad. El formato es Bearer {ID Token}.

Parámetros de respuesta

Código de estado: 201

Tabla 3 Parámetros en el encabezado de respuesta

Parámetro

Tipo

Descripción

X-Subject-Token

String

Token firmado.

Tabla 4 Parámetros en el cuerpo de respuesta

Parámetro

Tipo

Descripción

token

object

Detalles sobre el token obtenido.

Tabla 5 UnscopedTokenInfo

Parámetro

Tipo

Descripción

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.

methods

Array of strings

Token obtaining method. El valor predeterminado para la autenticación federada es mapped.

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.

user

object

Detalles del usuario.

roles

Array of objects

Detalles del rol o de la política.

catalog

Array of objects

Detalles del catálogo.

Tabla 6 FederationUserBody

Parámetro

Tipo

Descripción

OS-FEDERATION

object

Detalles de usuario federados.

domain

object

Detalles de la cuenta.

id

String

ID de usuario.

name

String

Nombre de usuario.

Tabla 7 OSFederationInfo

Parámetro

Tipo

Descripción

identity_provider

object

Detalles del proveedor de identidad.

protocol

object

Detalles del protocolo.

groups

Array of objects

Detalles del grupo de usuarios.

Tabla 8 IdpIdInfo

Parámetro

Tipo

Descripción

id

String

ID de proveedor de identidad.

Tabla 9 ProtocolIdInfo

Parámetro

Tipo

Descripción

id

String

ID del protocolo.

Tabla 10 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 11 DomainInfo

Parámetro

Tipo

Descripción

id

String

ID de cuenta.

name

String

Nombre de cuenta.

Tabla 12 token.roles

Parámetro

Tipo

Descripción

id

String

ID de permiso.

name

String

Nombre del permiso.

Tabla 13 token.catalog

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.

Ejemplo de solicitud

Solicitud para obtener un token sin alcance con un token ID de OpenID Connect

POST https://{address}/v3/OS-FEDERATION/identity_providers/{idp_id}/protocols/{protocol_id}/auth

Ejemplo de respuesta

Código de estado: 201

El token se obtiene con éxito.

{ 
  "token" : { 
    "expires_at" : "2018-03-13T03:00:01.168000Z", 
    "methods" : [ "mapped" ], 
    "issued_at" : "2018-03-12T03:00:01.168000Z", 
    "user" : { 
      "OS-FEDERATION" : { 
        "identity_provider" : { 
          "id" : "idptest" 
        }, 
        "protocol" : { 
          "id" : "oidc" 
        }, 
        "groups" : [ { 
          "name" : "admin", 
          "id" : "45a8c8f..." 
        } ] 
      }, 
      "domain" : { 
        "id" : "063bb260a480...", 
        "name" : "IAMDomain" 
      }, 
      "name" : "FederationUser", 
      "id" : "suvmgvUZc4PaCOEc..." 
    } 
  } 
}

Código de estado: 400

Parámetros no válidos.

{ 
  "error" : { 
    "code" : 400, 
    "message" : "Request parameter 'idp id' is invalid.", 
    "title" : "Bad Request" 
  } 
}

Código de estado: 401

Error de autenticación.

{ 
  "error" : { 
    "code" : 401, 
    "message" : "The request you have made requires authentication.", 
    "title" : "Unauthorized" 
  } 
}

Código de estado: 403

Acceso denegado.

{ 
  "error" : { 
    "code" : 403, 
    "message" : "You are not authorized to perform the requested action.", 
    "title" : "Forbidden" 
  } 
}

Código de estado: 404

No se pudo encontrar la página solicitada.

{ 
  "error" : { 
    "code" : 404, 
    "message" : "Could not find %(target)s: %(target_id)s.", 
    "title" : "Not Found" 
  } 
}

Código de estado: 500

Error interno del sistema.

{ 
  "error" : { 
    "code" : 500, 
    "message" : "An unexpected error prevented the server from fulfilling your request.", 
    "title" : "Internal Server Error" 
  } 
}

Códigos de estado

Código de estado

Descripción

201

El token se obtiene con éxito.

400

Parámetros no válidos.

401

Error de autenticación.

403

Acceso denegado.

404

No se pudo encontrar la página solicitada.

500

Error interno del sistema.

Códigos de error

Para obtener más información, consulte Códigos de error.