Obtenção de um token com escopo
Função
Essa API é usada para obter um token com escopo por meio da autenticação de identidade federada.
A API pode ser chamada usando o ponto de extremidade global e pontos de extremidade da região específica. Para pontos de extremidade do IAM, consulte Regiões e pontos de extremidade.
URI
POST /v3/auth/tokens
Parâmetros de solicitação
|
Parâmetro |
Obrigatório |
Tipo |
Descrição |
|---|---|---|---|
|
Content-Type |
Não |
String |
Preencha application/json;charset=utf8 nesse campo. |
|
Parâmetro |
Obrigatório |
Tipo |
Descrição |
|---|---|---|---|
|
Sim |
Object |
Informações de autenticação. |
|
Parâmetro |
Obrigatório |
Tipo |
Descrição |
|---|---|---|---|
|
Sim |
Object |
Parâmetros de autenticação. |
|
|
Sim |
Object |
Escopo de aplicação do token. O valor pode ser project ou domain. |
|
Parâmetro |
Obrigatório |
Tipo |
Descrição |
|---|---|---|---|
|
methods |
Sim |
Array of strings |
Método de autenticação. O valor deste campo é token. |
|
Sim |
Object |
Informações de token sem escopo. |
|
Parâmetro |
Obrigatório |
Tipo |
Descrição |
|---|---|---|---|
|
id |
Sim |
String |
ID de token sem escopo. |
|
Parâmetro |
Obrigatório |
Tipo |
Descrição |
|---|---|---|---|
|
Não |
Object |
Se esse campo estiver definido como domain, o token poderá ser usado para acessar recursos em todos os projetos sob a conta de um ID ou nome especificado. |
|
|
Não |
Object |
Se esse campo estiver definido como project, o token só poderá ser usado para acessar recursos no projeto de um ID ou nome especificado. |
|
Parâmetro |
Obrigatório |
Tipo |
Descrição |
|---|---|---|---|
|
id |
Não |
String |
ID da conta. O id ou o name deve ser especificado. |
|
name |
Não |
String |
Nome da conta. O id ou o name deve ser especificado. |
Parâmetros de resposta
|
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
X-Subject-Token |
String |
Token com escopo assinado. |
|
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
Object |
Detalhes do token com escopo. |
|
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
methods |
Array of strings |
Método para obter o token. |
|
expires_at |
String |
Hora em que o token expirará.
NOTA:
O valor é uma hora UTC no formato AAAA-MM-DDTHH:mm:ss.ssssssZ, por exemplo, 2023-06-28T08:56:33.710000Z. Para obter detalhes sobre os formatos de data e carimbo de data/hora, consulte ISO-8601. |
|
Array of objects |
Informações do catálogo. |
|
|
Object |
Informações da conta do usuário do IAM que solicita o token. Este parâmetro é retornado somente quando o parâmetro scope no corpo da solicitação foi definido como domain. |
|
|
Object |
Informações do projeto do usuário do IAM. Este parâmetro é retornado somente quando o parâmetro scope no corpo da solicitação foi definido como project. |
|
|
Array of objects |
Informações de permissões do token. |
|
|
Object |
Informações sobre o usuário do IAM que solicita o token. |
|
|
issued_at |
String |
Hora em que o token foi emitido.
NOTA:
O valor é uma hora UTC no formato AAAA-MM-DDTHH:mm:ss.ssssssZ, por exemplo, 2023-06-28T08:56:33.710000Z. Para obter detalhes sobre os formatos de data e carimbo de data/hora, consulte ISO-8601. |
|
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
type |
String |
Tipo do serviço ao qual a API pertence. |
|
id |
String |
ID do serviço. |
|
name |
String |
Nome do serviço. |
|
Array of objects |
Informações do ponto de extremidade. |
|
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
url |
String |
URL do ponto de extremidade. |
|
region |
String |
Região à qual o ponto de extremidade pertence. |
|
region_id |
String |
ID da região. |
|
interface |
String |
Visibilidade da API. public indica que a API está disponível para acesso público. |
|
id |
String |
ID do ponto de extremidade. |
|
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
name |
String |
Nome do projeto. |
|
id |
String |
ID do projeto. |
|
Object |
Informações da conta do projeto. |
|
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
name |
String |
Nome da conta. |
|
id |
String |
ID da conta. |
|
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
name |
String |
Nome de permissão. |
|
id |
String |
ID de permissão. O valor padrão é 0, que não corresponde a nenhuma permissão. |
|
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
Object |
Informações sobre a conta usada para criar o usuário do IAM. |
|
|
Object |
Informações de autenticação de identidade federada. |
|
|
id |
String |
ID do usuário. |
|
name |
String |
Nome de usuário. |
|
password_expires_at |
String |
Tempo de expiração da senha. Se este parâmetro não for especificado, a senha nunca expirará.
NOTA:
O valor é uma hora UTC no formato AAAA-MM-DDTHH:mm:ss.ssssssZ, por exemplo, 2023-06-28T08:56:33.710000Z. Para obter detalhes sobre os formatos de data e carimbo de data/hora, consulte ISO-8601. |
|
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
name |
String |
Nome da conta. |
|
id |
String |
ID da conta. |
|
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
Array of objects |
Informações do grupo de usuários. |
|
|
Object |
Informações do provedor de identidade. |
|
|
Object |
Informações de protocolo. |
|
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
id |
String |
ID do grupo de usuários. |
|
name |
String |
Nome do grupo de usuários. |
Exemplo de solicitação
Solicitação para obter um token com escopo
POST https://iam.myhuaweicloud.com/v3/auth/tokens
{
"auth": {
"identity": {
"methods": [
"token"
],
"token": {
"id": "MIIatAYJKoZIhvcNAQcCoIIapTCCGqECAQExDTALB..."
}
},
"scope": {
"domain": {
"id": "063bb260a480cecc0f36c0086bb6c..."
}
}
}
}
Exemplo de resposta
Código de status: 201
A solicitação foi bem-sucedida.
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 status
|
Código de status |
Descrição |
|---|---|
|
201 |
A solicitação foi bem-sucedida. |
|
400 |
Parâmetros inválidos. |
|
401 |
Falha na autenticação. |
|
403 |
Acesso negado. |
|
404 |
O recurso solicitado não pode ser encontrado. |
|
500 |
Erro de servidor interno. |
|
503 |
Serviço indisponível. |
Códigos de erro
Nenhum