Obtención de un token con un token ID de OpenID Connect
Función
Esta API se utiliza para obtener un token de autenticación de identidad federada mediante 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.0/OS-AUTH/id-token/tokens
Parámetros de solicitud
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
X-Idp-Id |
Sí |
String |
ID de proveedor de identidad. |
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
Sí |
object |
Detalles sobre el parámetro de solicitud auth. |
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
Sí |
object |
Detalles sobre un ID token. |
|
No |
object |
Ámbito de permiso del token que desea obtener. Se obtendrá un token sin alcance si no se especifica este parámetro. |
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
id |
Sí |
String |
ID token, que es construido por el IdP de la empresa para llevar la información de identidad de los usuarios federados. Para obtener más información sobre cómo obtener un token de ID, consulte la documentación de IdP empresarial. |
Parámetros de respuesta
Código de estado: 201
Parámetro |
Tipo |
Descripción |
---|---|---|
X-Subject-Token |
String |
Token firmado. |
Parámetro |
Tipo |
Descripción |
---|---|---|
object |
Detalles sobre el token obtenido. |
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 |
Método para obtener el token. Para los usuarios federados, el valor predeterminado de este parámetro 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. |
object |
Detalles del usuario. |
|
object |
Detalles de la cuenta. |
|
object |
Detalles del proyecto. |
|
Array of objects |
Detalles del rol o de la política. |
|
Array of objects |
Detalles del catálogo. |
Parámetro |
Tipo |
Descripción |
---|---|---|
object |
Detalles de usuario federados. |
|
object |
Detalles de la cuenta. |
|
id |
String |
ID de usuario. |
name |
String |
Nombre de usuario. |
Parámetro |
Tipo |
Descripción |
---|---|---|
object |
Detalles del proveedor de identidad. |
|
object |
Detalles del protocolo. |
|
Array of objects |
Detalles del grupo de usuarios. |
Parámetro |
Tipo |
Descripción |
---|---|---|
id |
String |
ID de grupo de usuarios. |
name |
String |
Nombre del grupo de usuarios. |
Parámetro |
Tipo |
Descripción |
---|---|---|
id |
String |
ID de cuenta. |
name |
String |
Nombre de cuenta. |
Parámetro |
Tipo |
Descripción |
---|---|---|
id |
String |
ID de cuenta. |
name |
String |
Nombre de cuenta. |
Parámetro |
Tipo |
Descripción |
---|---|---|
object |
Detalles de la cuenta. |
|
id |
String |
ID del proyecto. |
name |
String |
Nombre del proyecto. |
Parámetro |
Tipo |
Descripción |
---|---|---|
id |
String |
ID de cuenta. |
name |
String |
Nombre de cuenta. |
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 de obtención de un token de ámbito para un proyecto específico
POST /v3.0/OS-AUTH/id-token/tokens
{ "auth" : { "id_token" : { "id" : "eyJhbGciOiJSU..." }, "scope" : { "project" : { "id" : "46419baef4324...", "name" : "ap-southeast-1" } } } }
- Solicitud de obtención de un token de ámbito para un dominio específico
POST /v3.0/OS-AUTH/id-token/tokens
{ "auth" : { "id_token" : { "id" : "eyJhbGciOiJSU..." }, "scope" : { "domain" : { "id" : "063bb260a480...", "name" : "IAMDomain" } } } }
- Solicitud de obtención de un token sin alcance
POST /v3.0/OS-AUTH/id-token/tokens
{ "auth" : { "id_token" : { "id" : "eyJhbGciOiJSU..." } } }
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_msg" : "Request body is invalid.", "error_code" : "IAM.0011" }
Código de estado: 401
Error de autenticación.
{ "error_msg" : "The request you have made requires authentication.", "error_code" : "IAM.0001" }
Código de estado: 403
Acceso denegado.
{ "error_msg" : "Policy doesn't allow %(actions)s to be performed.", "error_code" : "IAM.0003" }
Código de estado: 404
No se puede encontrar el recurso solicitado.
{ "error_msg" : "Could not find %(target)s: %(target_id)s.", "error_code" : "IAM.0004" }
Código de estado: 500
Error interno del sistema.
{ "error_msg" : "An unexpected error prevented the server from fulfilling your request.", "error_code" : "IAM.0006" }
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 puede encontrar el recurso solicitado. |
500 |
Error interno del sistema. |
Códigos de error
Para obtener más información, consulte Códigos de error.