Подключение приложений с помощью OAuth Бета-версия
Раздел App integrations в dbt platform позволяет администраторам управлять регистрациями клиентов OAuth 2.0 — стандарта, который позволяет внешним приложениям безопасно подключаться к dbt без передачи токенов API. Используйте его для:
- ИИ-инструментов, которые подключаются к удалённому серверу dbt MCP.
- Собственных интеграций с API dbt platform, если вы хотите, чтобы конечные пользователи входили со своей учётной записью dbt, вместо того чтобы распространять токены.
- Сторонних приложений и расширений IDE, которые поддерживают OAuth для подключения к dbt.
Эта функция доступна администраторам аккаунта на тарифных планах Starter, Enterprise или Enterprise+.
Чтобы открыть этот раздел, перейдите в Account settings → Integrations → App integrations.
Способы регистрации
Зарегистрировать приложение в качестве клиента OAuth можно двумя способами:
- Динамическая регистрация: приложения, поддерживающие Dynamic Client Registration (RFC 7591), регистрируются автоматически, когда пользователь подключает их к dbt. Действия администратора не требуются.
- Ручная регистрация: для приложений, которые не поддерживают динамическую регистрацию (например, собственных интеграций), администратор может зарегистрировать клиент OAuth вручную.
Динамическая регистрация
Приложения, поддерживающие Dynamic Client Registration (RFC 7591), регистрируются автоматически, когда пользователь подключает их к dbt. Действия администратора не требуются.
Динамически зарегистрированные приложения отображаются в таблице Dynamically registered, которая содержит следующие сведения:
| Столбец | Описание |
|---|---|
| Name | Название приложения |
| Redirect URL | URL обратного вызова OAuth, зарегистрированный приложением |
| Created on | Дата первоначальной регистрации клиента |
| Last used on | Дата последнего аутентифицированного запроса клиента |
Ручная регистрация
Для приложений, которые не поддерживают динамическую регистрацию (например, агента Salesforce или собственных интеграций), администратор может зарегистрировать клиент OAuth вручную.
Чтобы добавить интеграцию с ручной регистрацией:
- Перейдите в Account settings → Integrations → App integrations.
- Нажмите + Add integration.
- Заполните форму регистрации. Каждый клиент, зарегистрированный вручную, получает уникальный идентификатор клиента. Обратите внимание: секрет клиента не выдаётся, поэтому клиент должен поддерживать расширение PKCE (RFC 7636).
Клиенты, зарегистрированные вручную, отображаются в разделе Manually registered.
При настройке клиента используйте следующие конечные точки OAuth (замените YOUR_PREFIX на поддомен вашей платформы dbt):
| Конечная точка | URL |
|---|---|
| Авторизация | https://YOUR_PREFIX.dbt.com/oauth/authorize |
| Получение токена | https://YOUR_PREFIX.dbt.com/oauth/token |
Использование с удалённым MCP
Когда вы подключаете клиент MCP к удалённому серверу dbt MCP, он проходит аутентификацию с помощью OAuth. Клиенту нужен только URL MCP вашей платформы dbt, который можно найти в разделе Account settings → Access URLs → MCP Endpoint URL.
Клиенты, поддерживающие динамическую регистрацию, выполняют этап регистрации автоматически — после первого использования они появятся в таблице Dynamically registered.
Ниже описано, как подключить dbt в качестве пользовательского коннектора в Claude Desktop. Интерфейс зависит от инструмента, но порядок действий одинаков: добавьте пользовательский коннектор с вашим MCP URL, пройдите процедуру предоставления согласия OAuth, затем подключитесь.
- В вашем ИИ-инструменте перейдите в настройки коннекторов и выберите добавление пользовательского коннектора (в Claude Desktop перейдите в Chat → Customize → Connectors, затем нажмите Add custom connector).
- Введите имя (например,
dbt) и вставьте MCP URL вашей dbt platform (например,https://abc123.us1.dbt.com/api/ai/v1/mcp), затем нажмите Add. - Нажмите Connect. Инструмент перенаправит вас в dbt для прохождения процедуры предоставления согласия OAuth, где вы сможете разрешить или отклонить отдельные области доступа.
- После вашего согласия коннектор будет добавлен в таблицу Custom connectors и будет отображаться как подключённый.
- Готово 🎉! Задайте инструменту вопрос о данных, например «Какова общая выручка за последние 30 дней?», чтобы проверить подключение.
Дополнительные сведения о настройке OAuth для удалённого MCP см. в разделе Использование удалённого сервера dbt MCP.
Области доступа и согласие пользователя
Когда пользователь впервые подключает инструмент к dbt через OAuth, dbt показывает экран согласия со списком областей доступа, которые запрашивает клиент. Области доступа служат фильтром для существующих разрешений пользователя — они не предоставляют никаких новых прав доступа. Пользователь может дать согласие только на те области доступа, для которых у него уже есть разрешения в dbt.
На экране согласия пользователь может:
- Разрешить или отклонить отдельные области доступа.
- Выбрать, предоставлять ли доступ ко всем проектам или только к выбранным проектам.
- Включить или отключить Keep session alive, чтобы указать, должен ли dbt автоматически продлевать сеанс (см. Сеансы и токены обновления).
Конкретные области доступа на экране зависят от того, что запрашивает подключаемый инструмент. Полный список доступных областей доступа:
| Область доступа | Описание |
|---|---|
offline_access | Позволяет клиенту запрашивать токен обновления для поддержания длительных сеансов |
account:read | Доступ только для чтения к сведениям об аккаунте, например настройкам проектов и окружений |
projects:query | Выполнение запросов к данным проекта с использованием метрик Semantic Layer |
catalog:read | Доступ к описаниям моделей, происхождению данных на уровне столбцов и другим метаданным проектов из dbt Catalog |
projects:develop | Использование инструментов разработки, включая CLI, для внесения изменений в модели dbt |
jobs:run | Просмотр, редактирование и повторный запуск заданий dbt |
Для разработчиков: обработка частичного предоставления областей доступа
Когда пользователь снимает флажки для одной или нескольких областей доступа на экране согласия, токен доступа выдаётся только для одобренного подмножества. Ваш клиент должен:
- Запрашивать только те области доступа, которые действительно нужны инструменту, — не запрашивайте их про запас.
- Корректно обрабатывать ответы
403и выводить понятное сообщение, если необходимая область доступа не была предоставлена. - Не предполагать, что одобрены все запрошенные области доступа; всегда проверять поле
scopeв ответе с токеном.
Чтобы определить, какие области доступа должен запрашивать ваш клиент, выберите их из списка выше. Запрашивайте области доступа в запросе авторизации (/oauth/authorize). При регистрации клиента области доступа не задаются.
Сеансы и токены обновления
В сеансах OAuth используются токены обновления с допустимым периодом неактивности 7 дней. Пока клиент запрашивает новый токен доступа хотя бы раз в 7 дней, сеанс остаётся активным. После 7 дней неактивности срок действия токена обновления истекает, и пользователю необходимо войти снова.
Пользователи могут отказаться от автоматического продления на этапе предоставления согласия, отключив Keep session alive.
Отзыв доступа
Чтобы отозвать разрешение OAuth, пользователь отключает dbt в своём клиенте MCP — например, удаляет коннектор dbt в настройках клиента. Вскоре мы добавим возможность отзывать доступ в dbt platform.
Журнал аудита
События, связанные с OAuth, отображаются в журнале аудита dbt (Account settings → Audit log), поэтому администраторы могут видеть, какие клиенты были зарегистрированы, какие пользователи их авторизовали и какие действия эти пользователи выполняли через OAuth.
В журнал аудита записываются следующие события OAuth:
- Регистрация клиента (ручная или динамическая).
- Авторизация клиента (завершение пользователем процесса предоставления согласия).
Действия, которые пользователь выполняет через клиент, подключённый по OAuth, — например, создание задания или запуск модели, — отображаются в журнале аудита с указанием пользователя в качестве исполнителя, как и действия, выполненные через интерфейс dbt или с помощью персонального токена доступа.





