Підходить для сценаріїв: ви створюєте сторонній застосунок / Agent / MCP-клієнт / автоматизований робочий процес, хочете, щоб користувачі входили одним кліком за допомогою облікового запису Ace Data Cloud і за потреби отримували доступ до своїх ресурсів на платформі, без необхідності вручну копіювати та вставляти API Key.
Швидка довідка термінів і кінцевих точок
Усі кінцеві точки розміщені наhttps://auth.acedata.cloud, актуальні адреси можна будь-коли отримати через кінцеву точку виявлення (Discovery):
Підтримувані можливості:
response_type=code, grant_types=authorization_code, refresh_token, code_challenge_methods=S256, plain, способи автентифікації клієнта client_secret_post (конфіденційний клієнт) / none (публічний клієнт PKCE).
Області дозволів (Scope)
Запитуйте відповідно до принципу «мінімальних привілеїв», користувач побачить на сторінці авторизації кожен дозвіл, який ви запитуєте. Класи ідентифікації (сумісні з OIDC)
Класи ресурсів платформи
Агреговані класи (автоматичне розгортання)
Спеціальні
Типові комбінації: сторонній «вхід одним кліком» =openid profile; MCP / IDE-клієнту потрібно автоматично налаштовувати Key =openid profile credentials:read credentials:write; повна панель керування =openid profile email platform offline_access.
Крок 1: зареєструйте OAuth-застосунок
Відкрийте auth.acedata.cloud/user/oauth-apps → «Створити застосунок», заповніть:- Назва / опис / логотип застосунку: відображатимуться на сторінці згоди користувача на авторизацію.
- Тип клієнта (Client Type):
- Конфіденційний (confidential) — у вас є бекенд, де можна безпечно зберігати
client_secret(вебсервіс, бекенд-сервіс). - Публічний (public) — лише фронтенд / десктоп / CLI / мобільний застосунок, неможливо зберігати секрет, необхідно використовувати PKCE.
- Конфіденційний (confidential) — у вас є бекенд, де можна безпечно зберігати
- Адреси зворотного виклику (Redirect URIs): адреса, на яку користувача буде перенаправлено після завершення авторизації, має повністю збігатися з
redirect_uri, переданим вами під час ініціації авторизації, можна вказати декілька. - Області дозволів (Scopes): позначте scope, які вам потрібні з попереднього розділу.
client_id; для конфіденційного клієнта також одноразово буде показано client_secret — збережіть його негайно, після закриття переглянути його знову буде неможливо (можна повторно згенерувати на сторінці деталей через «Rotate Secret / Ротація секрету», старий секрет негайно стане недійсним).
Кожен обліковий запис може створити щонайбільше 20 OAuth-застосунків.
Крок 2: перенаправте користувача на сторінку авторизації
У вашому застосунку перенаправте браузер користувача на сторінку авторизації, передавши параметри запиту:state: самостійно згенеруйте випадковий рядок, він повертається без змін у зворотному виклику та використовується для захисту від CSRF, обов’язково перевіряйте його.- PKCE (обов’язково для публічних клієнтів, рекомендовано також для конфіденційних): спочатку згенеруйте випадковий
code_verifier, потім обчислітьcode_challenge = BASE64URL( SHA256( code_verifier ) ), помістітьcode_challengeв URL авторизації, аcode_verifierзбережіть у себе для використання на кроці 4.
<redirect_uri>?error=access_denied&error_description=...&state=....
Термін дії коду авторизації становить 10 хвилин, і його можна використати лише один раз.
Крок 3: обміняйте код авторизації на токен
На вашому бекенді (конфіденційний клієнт) або клієнті (публічний клієнт PKCE) викличте кінцеву точку токенів за допомогоюcode.
Конфіденційний клієнт (із client_secret):
refresh_token з’являється лише якщо запитано offline_access):
access_token — це JWT, що містить декларацію scope; строк дії 15 днів (кількість секунд у expires_in). Строк дії Refresh Token — 30 днів.
Крок 4: виклик інтерфейсів за допомогою Access Token
Достатньо помістити токен у заголовокAuthorization: Bearer.
Отримання інформації про користувача (UserInfo, поля фільтруються відповідно до авторизованого scope):
platform.acedata.cloud, авторизація за scope). Наприклад, якщо отримано credentials:read:
scope у JWT — токен може отримувати доступ лише до ресурсів, авторизованих користувачем. У разі доступу до неавторизованого ресурсу буде повернено 403.
Оновлення токена
Після закінчення строку дії Access Token використовуйте Refresh Token, щоб отримати нову пару токенів (потрібно було спочатку запитатиoffline_access):
Відкликання токена
Реальний приклад: наші власні MCP-сервери підключені саме так
Підключення «Sign in with Ace Data Cloud», що з’являється в Claude Desktop / Cursor для 15+ MCP-серверів Ace Data Cloud (NanoBanana, Midjourney, Suno, Seedance, Kling…), використовує саме цей процес: усі вони зареєстровані як OAuth-застосунки типу публічний (PKCE), запитують scope, пов’язані зcredentials, і після авторизації користувача MCP-сервери можуть викликати api.acedata.cloud від імені користувача — без необхідності для користувача вручну вставляти API Key. Ваш спосіб підключення повністю такий самий, як у них.
Поширені помилки
Відповіді з помилками уніфіковані як{ "error": "<code>", "error_description": "<зрозумілий людині опис>" }:
Швидкий довідник обмежень
Вбудовування стороннього OAuth-застосунку на головній сторінці Studio
У Studio в розділі «Налаштування → Головна сторінка → Компоненти сайту» можна увімкнути OAuth, налаштуватиclient_id стороннього застосунку та зареєстровану адресу зворотного виклику.
Сайт і зворотний виклик мають використовувати HTTPS, мати однакове походження (протокол, домен і порт) та мати інше походження, ніж Studio.
У конфігурації не можна вказувати client_secret; секрет застосунку може зберігатися лише на сторонньому бекенді.
Компонент запитує дозволи profile:read credentials:read. Кожен відвідувач повинен надати згоду окремо; налаштування компонента власником сайту не означає авторизацію відвідувача.
Стороння сторінка генерує випадкові state і PKCE verifier, надсилаючи до Studio S256 challenge. Studio розміщує офіційну сторінку авторизації в області компонента,
після згоди користувача стороння сторона отримує одноразовий код авторизації, викликає token endpoint для обміну на OAuth access token, а потім отримує доступ до
GET https://platform.acedata.cloud/api/v1/credentials/?user_id=<用户ID> для читання наявного API Key.
ID користувача береться з id, поверненого на попередньому кроці через GET https://auth.acedata.cloud/api/v1/users/me; інтерфейс списку облікових даних не приймає user_id=me.
Studio не передає сторонній стороні власний токен входу та не зчитує й не вставляє безпосередньо Key користувача.
Публічні клієнти повинні використовувати S256 PKCE. Під час отримання token потрібно передавати redirect_uri, що повністю збігається з адресою в запиті авторизації.
Код авторизації можна обміняти лише один раз. Перед авторизацією перевіряється, чи зареєстровано адресу зворотного виклику.
Стороння сторінка повинна реалізувати протокол повідомлень; будь-яка готова вебсторінка не може бути автоматично підключена лише заповненням URL.
Повний приклад див. у посібнику з інтеграції OAuth-компонента Studio.
Авторизація на читання API Key означає дозвіл сторонній стороні зберігати й використовувати цей Key. Скасування OAuth-авторизації не зробить недійсним Key, вже скопійований сторонньою стороною;
користувачеві потрібно окремо відкликати або ротувати Key.
