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
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
Content-Type |
No |
String |
Rellene application/json;charset=utf8 en este campo. |
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
Sí |
Object |
Información de autenticación. |
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
Sí |
Object |
Parámetros de autenticación. |
|
Sí |
Object |
Ámbito de aplicación del token. El valor puede ser project o domain. |
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
methods |
Sí |
Array of strings |
Método de autenticación. El valor de este campo es token. |
Sí |
Object |
Información de token sin ámbito. |
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
id |
Sí |
String |
ID de token sin ámbito. |
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
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. |
|
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. |
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
Parámetro |
Tipo |
Descripción |
---|---|---|
X-Subject-Token |
String |
Token con ámbito firmado. |
Parámetro |
Tipo |
Descripción |
---|---|---|
Object |
Detalles del token con ámbito. |
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. |
Array of objects |
Información del catálogo. |
|
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. |
|
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. |
|
Array of objects |
Información de permisos del token. |
|
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. |
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. |
Array of objects |
Información del punto de conexión. |
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. |
Parámetro |
Tipo |
Descripción |
---|---|---|
name |
String |
Nombre de cuenta. |
id |
String |
ID de cuenta. |
Parámetro |
Tipo |
Descripción |
---|---|---|
name |
String |
Nombre del proyecto. |
id |
String |
ID del proyecto. |
Object |
Información de cuenta del proyecto. |
Parámetro |
Tipo |
Descripción |
---|---|---|
name |
String |
Nombre de cuenta. |
id |
String |
ID de cuenta. |
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. |
Parámetro |
Tipo |
Descripción |
---|---|---|
Object |
Información sobre la cuenta utilizada para crear el usuario de IAM. |
|
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. |
Parámetro |
Tipo |
Descripción |
---|---|---|
name |
String |
Nombre de cuenta. |
id |
String |
ID de cuenta. |
Parámetro |
Tipo |
Descripción |
---|---|---|
Array of objects |
Información del grupo de usuarios. |
|
Object |
Información del proveedor de identidad. |
|
Object |
Información de protocolos. |
Parámetro |
Tipo |
Descripción |
---|---|---|
id |
String |
ID de grupo de usuarios. |
name |
String |
Nombre del grupo de usuarios. |
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