Todos os produtos
Search
Central de documentação

Resource Access Management:Log on to Alibaba Cloud from a web application

Última atualização: Sep 10, 2026

Este tópico descreve como seu aplicativo web pode usar o fluxo de código de autorização OAuth 2.0 para acessar as APIs do Alibaba Cloud em nome de um usuário.

Pré-requisitos

  • Antes que seu aplicativo web possa acessar as APIs do Alibaba Cloud em nome de um usuário, crie um aplicativo. Forneça informações essenciais, como nome, escopos OAuth e URIs de redirecionamento. Para mais informações, consulte Create an application. Após criar o aplicativo, localize o ID do cliente na lista de aplicativos da página Enterprise Applications.

    Nota

    Depois de criado, o aplicativo pode agir em nome dos usuários da sua conta do Alibaba Cloud. Para atuar em nome de usuários de outras contas do Alibaba Cloud, obtenha autorização dessas contas.

  • Crie um segredo do cliente. Para mais informações, consulte Create a client secret. O segredo do cliente (client_secret) é exibido apenas no momento da criação e não pode ser recuperado posteriormente. Armazene-o com segurança.

Visão geral do fluxo de autorização

基本流程

  1. Um usuário faz login no aplicativo web por meio de um navegador.

  2. O aplicativo web redireciona o usuário para o endpoint de autorização OAuth 2.0 do Alibaba Cloud.

    Nota

    Se o usuário não estiver conectado ao Alibaba Cloud, ele será redirecionado primeiro para a página de login do Alibaba Cloud.

  3. O usuário faz login e autoriza o aplicativo na tela de consentimento.

  4. O service OAuth 2.0 do Alibaba Cloud redireciona o usuário de volta ao aplicativo web com um código de autorização.

  5. O aplicativo web troca o código de autorização por um token de acesso.

  6. O service OAuth 2.0 do Alibaba Cloud retorna um token de acesso (access_token) para o aplicativo web.

  7. O aplicativo web usa o token de acesso para chamar as APIs do Alibaba Cloud em nome do usuário.

    Nota

    Como o token de acesso representa o usuário, o aplicativo consegue acessar os recursos desse usuário.

Obter um token de acesso

Etapa 1: Solicitar um código de autorização

Endpoint de autorização: https://signin.alibabacloud.com/oauth2/v1/auth.

Parâmetros da solicitação:

Parâmetro

Obrigatório

Descrição

client_id

Sim

O ID do cliente do seu aplicativo.

redirect_uri

Sim

Uma das URIs de redirecionamento especificadas durante a criação do aplicativo.

response_type

Sim

O tipo de resposta. De acordo com o protocolo OAuth 2.0, este valor deve ser code.

scope

Não

Uma lista de escopos OAuth separados por espaços. Se este parâmetro for omitido, a solicitação usará por padrão todos os escopos configurados para o aplicativo.

access_type

Não

O tipo de acesso solicitado. Valores válidos:

  • online: O aplicativo não requer acesso offline para renovar o token de acesso.

  • offline: Para solicitações que exigem acesso offline, o service emite um token de atualização. O aplicativo pode usar esse token para renovar o token de acesso conforme necessário.

Valor padrão: online.

state

Não

Um aplicativo pode usar o parâmetro state para diversas finalidades, como preservar o estado ou atuar como um nonce para mitigar riscos de CSRF. Se você definir o parâmetro state com qualquer string, o service OAuth 2.0 do Alibaba Cloud incluirá o parâmetro state e seu valor na resposta.

prompt

Não

Especifica se o servidor deve solicitar autorização ao usuário.

Incluir este parâmetro força o usuário a reautorizar o aplicativo, mesmo que já tenha concedido autorização anteriormente. Se omitido, a solicitação de autorização ocorre apenas no primeiro uso.

Valor válido: admin_consent. Este valor obriga o servidor a exibir a tela de consentimento antes de retornar informações ao cliente.

Exemplo de solicitação:

https://signin.alibabacloud.com/oauth2/v1/auth?
client_id=123****&
redirect_uri=https://example.com/authcallback/&
response_type=code&
scope=openid /acs/ccc&
access_type=offline&
state=123456****

Parâmetros da resposta:

Parâmetro

Descrição

code

O código de autorização.

state

O valor do parâmetro state na solicitação.

Exemplo de resposta:

GET HTTP/1.1 302 Found
Location: https://example.com/authcallback/?code=ABAFDGDFXYZW888&state=123456****

Etapa 2: Trocar o código por um token de acesso

Endpoint de token: https://oauth.alibabacloud.com/v1/token.

Parâmetros da solicitação:

Parâmetro

Obrigatório

Descrição

code

Sim

O código de autorização.

O código recebido na Etapa 1.

client_id

Sim

O ID do cliente do seu aplicativo.

redirect_uri

Sim

A URI de redirecionamento.

Esta URI deve corresponder ao valor especificado na solicitação de autorização da Etapa 1.

grant_type

Sim

De acordo com o protocolo OAuth 2.0, o valor deve ser authorization_code.

client_secret

Sim

O segredo do cliente do seu aplicativo.

Exemplo de solicitação:

POST /v1/token HTTP/1.1
Host: oauth.alibabacloud.com
Content-Type: application/x-www-form-urlencoded
code=ABAFDGDFXYZW888&
client_id=123****&
client_secret=`your_client_secret`&
redirect_uri=https://example.com/authcallback/&
grant_type=authorization_code

Parâmetros da resposta:

Parâmetro

Descrição

access_token

Um token que concede acesso às APIs do Alibaba Cloud em nome do usuário. Seu aplicativo não deve analisar este token; passe-o exatamente como recebido nas chamadas de API.

O token de acesso representa a identidade de um usuário, e os aplicativos o usam para acessar as APIs do Alibaba Cloud. Os aplicativos não precisam interpretar o significado do token e podem usá-lo diretamente.

expires_in

A validade do token de acesso, em segundos.

token_type

O tipo do token de acesso. O valor é sempre Bearer.

id_token

O token de ID.

Um JWT (JSON Web Token) que contém informações de identidade do usuário. Este token é retornado apenas se o parâmetro scope na solicitação de autorização inicial incluir openid.

refresh_token

O token de atualização.

Este token é retornado apenas se o parâmetro access_type na solicitação de autorização inicial tiver sido definido como offline.

scope

A lista de escopos concedidos para o token de acesso, separados por espaços.

Se o aplicativo exigir um escopo de autorização diferente de openid, verifique se o valor de scope retornado contém todos os escopos necessários.

Caso seu aplicativo não tenha recebido o scope especificado, solicite autorização novamente. Para isso, requisite um código de autorização conforme descrito na Etapa 1 a partir de https://signin.alibabacloud.com/oauth2/v1/auth e defina o parâmetro prompt=admin_consent.

Exemplo de resposta:

{
  "access_token": "eyJraWQiOiJrMTIzNCIsImVu****",
  "token_type": "Bearer",
  "expires_in": "3600",
  "refresh_token": "Ccx63VVeTn2dxV7ovXXfLtAqLLERA****",
  "id_token": "eyJhbGciOiJIUzI1****",
  "scope": "openid /acs/ccc"
}

Renovar um token de acesso

Endpoint de token: https://oauth.alibabacloud.com/v1/token.

Parâmetros da solicitação:

Parâmetro

Obrigatório

Descrição

refresh_token

Sim

O token de atualização recebido na troca inicial de tokens.

client_id

Sim

O ID do cliente do seu aplicativo.

grant_type

Sim

De acordo com o protocolo OAuth 2.0, o valor deve ser refresh_token.

client_secret

Não

O segredo do cliente do seu aplicativo.

Exemplo de solicitação:

POST /v1/token HTTP/1.1
Host: oauth.alibabacloud.com
Content-Type: application/x-www-form-urlencoded
refresh_token=Ccx63VVeTn2dxV7ovXXfLtAqLLERAH1Bc&
client_id=123****&
client_secret=`your_client_secret`&
grant_type=refresh_token

Parâmetros da resposta:

Parâmetro

Descrição

access_token

Um novo token de acesso.

expires_in

A validade do token de acesso, em segundos.

token_type

O tipo do token de acesso. O valor é Bearer.

Exemplo de resposta:

{
  "access_token": "eyJraWQiOiJrMTIzNCIsImVu****",
  "token_type": "Bearer",
  "expires_in": "3600"
}

Revogar um token de atualização

Após seu aplicativo web obter um token de atualização, revogue o token quando o usuário sair ou desconectar a conta do seu aplicativo.

Endpoint de revogação: https://oauth.alibabacloud.com/v1/revoke.

Parâmetros da solicitação:

Parâmetro

Obrigatório

Descrição

token

Sim

O token de atualização a ser revogado.

client_id

Sim

O ID do cliente do seu aplicativo.

client_secret

Não

O segredo do cliente do seu aplicativo.