Este conteúdo foi traduzido por máquina para sua conveniência e a Huawei Cloud não pode garantir que o conteúdo foi traduzido com precisão. Para exibir o conteúdo original, use o link no canto superior direito para mudar para a página em inglês.
Atualizado em 2023-02-16 GMT+08:00

Obtenção de um unscoped token (IdP initiated)

Função

Essa API é usada para obter um unscoped token por meio da autenticação de identidade federada IdP-initiated.

Unscoped tokens não podem ser usados para autenticação. Um usuário federado pode ser autenticado apenas usando um scoped token. Para obter detalhes, consulte Obtenção de um scoped token.

A API pode ser chamada usando o ponto de extremidade global e pontos de extremidade específicos da região. Para pontos de extremidade do IAM, consulte Regiões e pontos de extremidade.

  • Essa API pode ser chamada usando a CLI. O cliente pode chamar essa API para obter uma SAML response no modo de autenticação IdP-initiated e obter um unscoped token por meio de um navegador.

URI

POST /v3.0/OS-FEDERATION/tokens

Parâmetros de solicitação

Tabela 1 Parâmetros no cabeçalho da solicitação

Parâmetro

Obrigatoriedade

Tipo

Descrição

Content-Type

Sim

String

O cliente deve usar um navegador para transferir parâmetros de SAML response para o servidor. Portanto, defina esse parâmetro como application/x-www-form-urlencoded.

X-Idp-Id

Sim

String

ID do provedor de identidade.

Tabela 2 Parâmetros no formData de solicitação

Parâmetro

Obrigatoriedade

Tipo

Descrição

SAMLResponse

Sim

String

Corpo da resposta a ser retornado se a autenticação do IdP for bem-sucedida.

Execute o procedimento a seguir para obter uma SAML response:

  1. Visite https://idp.example.org/idp/profile/SAML2/Unsolicited/SSO?providerId=iam.example.com através de um navegador.

    idp.example.org: ID de entidade nos metadados do IdP

    iam.example.com: ID da entidade nos metadados do SP

  2. Na página de login do provedor de identidade exibida, digite um nome de usuário e clique em Login (login sem senha é suportado). Na nova página exibida, pressione F12 e clique em Accept. Obtenha a SAML response do POST, conforme mostrado na figura a seguir.
    Figura 1 Obtenção de uma SAML response

Parâmetros de resposta

Tabela 3 Parâmetros no cabeçalho da resposta

Parâmetro

Tipo

Descrição

X-Subject-Token

String

Assinado unscoped token.

Tabela 4 Parâmetros no corpo da resposta

Parâmetro

Tipo

Descrição

token

Object

Detalhes do unscoped token.

Tabela 5 token

Parâmetro

Tipo

Descrição

issued_at

String

Hora em que o token foi emitido.

expires_at

String

Hora em que o token expirará.

methods

Array of strings

Método para obter o token.

user

Object

Informações sobre o usuário do IAM que solicita o token.

Tabela 6 token.user

Parâmetro

Tipo

Descrição

domain

Object

Informações sobre a conta usada para criar o usuário do IAM.

id

String

ID do usuário.

name

String

Nome de usuário.

OS-FEDERATION

Object

Informações de autenticação de identidade federada.

Tabela 7 token.user.domain

Parâmetro

Tipo

Descrição

name

String

Nome da conta.

id

String

ID da conta.

Tabela 8 token.user.OS-FEDERATION

Parâmetro

Tipo

Descrição

groups

Array of objects

Informações do grupo de usuários.

identity_provider

Object

Informações do provedor de identidade.

protocol

Object

Informações de protocolo.

Tabela 9 token.user.OS-FEDERATION.groups

Parâmetro

Tipo

Descrição

id

String

ID do grupo de usuários.

name

String

Nome do grupo de usuários.

Tabela 10 token.user.OS-FEDERATION.identity_provider

Parâmetro

Tipo

Descrição

id

String

ID do provedor de identidade.

Tabela 11 token.user.OS-FEDERATION.protocol

Parâmetro

Tipo

Descrição

id

String

ID do protocolo.

Exemplo de solicitação

POST https://iam.myhuaweicloud.com/v3.0/OS-FEDERATION/tokens
SAMLResponse=PD94b...

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": [
            "mapped"
        ],
        "issued_at": "2020-02-12T14:21:34.042000Z",
        "user": {
            "OS-FEDERATION": {
                "identity_provider": {
                    "id": "ACME"
                },
                "protocol": {
                    "id": "saml"
                },
                "groups": [
                    {
                        "id": "06aa22601502cec4a23ac0084a74038f",
                        "name": "admin"
                    }
                ]
            },
            "domain": {
                "name": "IAMDomain",
                "id": "06ba0970a097acc0f36c0086bb6cfe0"
            },
            "name": "FederationUser",
            "id": "LdUTYSC7zmJVIic3yaCbLBXDxPAdDxLg"
        }
    }
}

Códigos de status

Código de status

Descrição

201

A solicitação foi bem-sucedida.

400

Parâmetros inválidos.

401

Autenticação falhou.

403

Acesso negado.

405

O método especificado na solicitação não é permitido para o recurso solicitado.

413

A entidade de solicitação é muito grande.

500

Erro de servidor interno.

503

Serviço indisponível.

Códigos de erro

Nenhum