Cenários adequados: você está criando um aplicativo de terceiros / Agent / cliente MCP / fluxo de trabalho automatizado e deseja permitir que os usuários façam login com um clique usando uma conta Ace Data Cloud e acessem seus recursos na plataforma conforme necessário, sem precisar que copiem e colem manualmente uma API Key.
Referência rápida de termos & endpoints
Todos os endpoints estão emhttps://auth.acedata.cloud, e os endereços mais recentes podem ser obtidos a qualquer momento pelo endpoint de descoberta (Discovery):
Recursos compatíveis:
response_type=code, grant_types=authorization_code, refresh_token, code_challenge_methods=S256, plain, métodos de autenticação de cliente client_secret_post (cliente confidencial) / none (cliente público PKCE).
Escopos de permissão (Scope)
Solicite conforme o “princípio do menor privilégio”; o usuário verá cada permissão solicitada na página de autorização. Identidade (compatível com OIDC)
Recursos da plataforma
Agregados (expansão automática)
Especiais
Combinações típicas: “login com um clique” de terceiros =openid profile; clientes MCP / IDE que precisam configurar Key automaticamente =openid profile credentials:read credentials:write; console de gerenciamento completo =openid profile email platform offline_access.
Passo 1: registrar um aplicativo OAuth
Abra auth.acedata.cloud/user/oauth-apps → “Criar aplicativo”, preencha:- Nome / descrição / logo do aplicativo: serão exibidos na página de consentimento de autorização do usuário.
- Tipo de cliente (Client Type):
- Confidencial (confidential) — você possui um backend e pode armazenar com segurança o
client_secret(serviço Web, serviço backend). - Público (public) — frontend puro / desktop / CLI / mobile, não é possível armazenar uma chave, sendo obrigatório usar PKCE.
- Confidencial (confidential) — você possui um backend e pode armazenar com segurança o
- URIs de redirecionamento (Redirect URIs): endereços para os quais o usuário será redirecionado após a autorização ser concluída, devem ser exatamente iguais ao
redirect_urienviado quando você iniciar a autorização, podendo haver vários. - Escopos de permissão (Scopes): marque os scopes de que você precisa na seção anterior.
client_id; clientes confidenciais também exibirão uma única vez o client_secret — salve-o imediatamente, pois não será possível visualizá-lo novamente após fechar (é possível gerar outro em “Rotacionar chave / Rotate Secret” na página de detalhes, e a chave antiga será invalidada imediatamente).
Cada conta pode criar no máximo 20 aplicativos OAuth.
Passo 2: redirecionar o usuário para a página de autorização
No seu aplicativo, redirecione o navegador do usuário para a página de autorização, incluindo parâmetros de consulta:state: gere você mesmo uma string aleatória; ela será retornada inalterada no callback e serve para prevenir CSRF; certifique-se de validá-la.- PKCE (obrigatório para clientes públicos, também recomendado para clientes confidenciais): primeiro gere um
code_verifieraleatório e depois calculecode_challenge = BASE64URL( SHA256( code_verifier ) ); coloque ocode_challengena URL de autorização, e guarde ocode_verifierpara uso no passo 4.
<redirect_uri>?error=access_denied&error_description=...&state=....
O código de autorização é válido por 10 minutos e só pode ser usado uma vez.
Passo 3: trocar o código de autorização por tokens
No seu backend (cliente confidencial) ou cliente (cliente público PKCE), usecode para chamar o endpoint de token.
Cliente confidencial (com client_secret):
refresh_token aparece somente quando offline_access foi solicitado):
access_token é um JWT, contendo a declaração scope; o período de validade é de 15 dias (segundos em expires_in). O Refresh Token é válido por 30 dias.
Etapa 4: usar o Access Token para chamar a interface
Basta colocar o token no cabeçalhoAuthorization: Bearer.
Ler informações do usuário (UserInfo, campos filtrados de acordo com o scope autorizado):
platform.acedata.cloud, autenticada por scope). Por exemplo, se credentials:read foi concedido:
scope no JWT — o token só pode acessar os recursos autorizados pelo usuário. Se recursos não autorizados forem acessados, retornará 403.
Atualizar token
Após o Access Token expirar, use o Refresh Token para trocar por um novo par de tokens (é necessário ter solicitadooffline_access originalmente):
Revogar token
Caso real: é assim que nossos próprios servidores MCP se conectam
Os mais de 15 servidores MCP da Ace Data Cloud (NanoBanana, Midjourney, Suno, Seedance, Kling…) usam este fluxo para a conexão “Sign in with Ace Data Cloud” exibida no Claude Desktop / Cursor: todos são registrados como aplicações OAuth do tipo público (PKCE), solicitam scopes relacionados acredentials e, após a autorização do usuário, os servidores MCP podem chamar api.acedata.cloud em nome do usuário — sem que o usuário precise colar manualmente uma API Key. Sua integração é exatamente igual à deles.
Erros comuns
A resposta de erro é uniformemente{ "error": "<code>", "error_description": "<explicação legível por humanos>" }:
Referência rápida de limites
Incorporar aplicações OAuth de terceiros na página inicial do Studio
Em “Configurações → Página inicial → Componentes do site” do Studio, é possível ativar OAuth e configurar oclient_id e o endereço de retorno registrado da aplicação de terceiros.
O site e o retorno devem usar HTTPS, ter a mesma origem (protocolo, domínio e porta) e usar uma origem diferente da do Studio.
O client_secret não deve ser preenchido na configuração; a chave da aplicação só pode ser armazenada no backend de terceiros.
As permissões solicitadas pelo componente são profile:read credentials:read. Cada visitante precisa consentir separadamente; a configuração do componente pelo proprietário do site não representa a autorização dos visitantes.
A página de terceiros gera um state aleatório e um verifier PKCE, e envia um challenge S256 ao Studio. O Studio hospeda a página oficial de autorização na área do componente,
e, após o consentimento do usuário, terceiros recebem um código de autorização de uso único, chamam o endpoint de token para trocá-lo por um OAuth access token e, em seguida, acessam
GET https://platform.acedata.cloud/api/v1/credentials/?user_id=<用户ID> para ler a API Key existente.
O ID do usuário vem do id retornado pela etapa anterior GET https://auth.acedata.cloud/api/v1/users/me; a interface de lista de credenciais não aceita user_id=me.
O Studio não transmite seu próprio token de login a terceiros, nem lê e injeta diretamente a Key do usuário.
Clientes públicos devem usar S256 PKCE. Ao trocar o token, é obrigatório enviar o redirect_uri exatamente igual ao da solicitação de autorização.
O código de autorização só pode ser trocado uma vez. Antes da autorização, será verificado se o endereço de retorno foi registrado.
A página de terceiros precisa implementar o protocolo de mensagens; qualquer página web existente não pode ser integrada automaticamente apenas preenchendo uma URL.
Veja o exemplo completo em Guia de integração do componente OAuth do Studio.
Autorizar a leitura da API Key equivale a permitir que terceiros salvem e usem essa Key. Cancelar a autorização OAuth não invalida a Key que terceiros já copiaram;
o usuário precisa revogar ou rotacionar a Key separadamente.
