Перейти к основному содержимому

Подключение приложений с помощью 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, зарегистрированными вручную и динамическиСтраница интеграций приложений с клиентами OAuth, зарегистрированными вручную и динамически

Способы регистрации​

Зарегистрировать приложение в качестве клиента OAuth можно двумя способами:

  • Динамическая регистрация: приложения, поддерживающие Dynamic Client Registration (RFC 7591), регистрируются автоматически, когда пользователь подключает их к dbt. Действия администратора не требуются.
  • Ручная регистрация: для приложений, которые не поддерживают динамическую регистрацию (например, собственных интеграций), администратор может зарегистрировать клиент OAuth вручную.

Динамическая регистрация​

Приложения, поддерживающие Dynamic Client Registration (RFC 7591), регистрируются автоматически, когда пользователь подключает их к dbt. Действия администратора не требуются.

Динамически зарегистрированные приложения отображаются в таблице Dynamically registered, которая содержит следующие сведения:

СтолбецОписание
NameНазвание приложения
Redirect URLURL обратного вызова OAuth, зарегистрированный приложением
Created onДата первоначальной регистрации клиента
Last used onДата последнего аутентифицированного запроса клиента

Ручная регистрация​

Для приложений, которые не поддерживают динамическую регистрацию (например, агента Salesforce или собственных интеграций), администратор может зарегистрировать клиент OAuth вручную.

Чтобы добавить интеграцию с ручной регистрацией:

  1. Перейдите в Account settings → Integrations → App integrations.
  2. Нажмите + Add integration.
  3. Заполните форму регистрации. Каждый клиент, зарегистрированный вручную, получает уникальный идентификатор клиента. Обратите внимание: секрет клиента не выдаётся, поэтому клиент должен поддерживать расширение 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, затем подключитесь.

  1. В вашем ИИ-инструменте перейдите в настройки коннекторов и выберите добавление пользовательского коннектора (в Claude Desktop перейдите в Chat → Customize → Connectors, затем нажмите Add custom connector).
  2. Введите имя (например, dbt) и вставьте MCP URL вашей dbt platform (например, https://abc123.us1.dbt.com/api/ai/v1/mcp), затем нажмите Add.
    Диалог добавления пользовательского коннектора с MCP URL dbtДиалог добавления пользовательского коннектора с MCP URL dbt
  3. Нажмите Connect. Инструмент перенаправит вас в dbt для прохождения процедуры предоставления согласия OAuth, где вы сможете разрешить или отклонить отдельные области доступа.
    Экран согласия OAuth с запрашиваемыми областями доступа и доступом к проектамЭкран согласия OAuth с запрашиваемыми областями доступа и доступом к проектам
  4. После вашего согласия коннектор будет добавлен в таблицу Custom connectors и будет отображаться как подключённый.
    Добавление пользовательского коннектора dbt в настройках коннекторов ИИ-инструментаДобавление пользовательского коннектора dbt в настройках коннекторов ИИ-инструмента
  5. Готово 🎉! Задайте инструменту вопрос о данных, например «Какова общая выручка за последние 30 дней?», чтобы проверить подключение.

Дополнительные сведения о настройке OAuth для удалённого MCP см. в разделе Использование удалённого сервера dbt MCP.

Когда пользователь впервые подключает инструмент к dbt через OAuth, dbt показывает экран согласия со списком областей доступа, которые запрашивает клиент. Области доступа служат фильтром для существующих разрешений пользователя — они не предоставляют никаких новых прав доступа. Пользователь может дать согласие только на те области доступа, для которых у него уже есть разрешения в dbt.

На экране согласия пользователь может:

  • Разрешить или отклонить отдельные области доступа.
  • Выбрать, предоставлять ли доступ ко всем проектам или только к выбранным проектам.
  • Включить или отключить Keep session alive, чтобы указать, должен ли dbt автоматически продлевать сеанс (см. Сеансы и токены обновления).
Экран согласия OAuth с запрашиваемыми областями доступа и доступом к проектамЭкран согласия OAuth с запрашиваемыми областями доступа и доступом к проектам

Конкретные области доступа на экране зависят от того, что запрашивает подключаемый инструмент. Полный список доступных областей доступа:

Область доступаОписание
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.

Страница коннекторов клиента MCP с возможностью удалить коннектор dbtСтраница коннекторов клиента MCP с возможностью удалить коннектор dbt

Журнал аудита​

События, связанные с OAuth, отображаются в журнале аудита dbt (Account settings → Audit log), поэтому администраторы могут видеть, какие клиенты были зарегистрированы, какие пользователи их авторизовали и какие действия эти пользователи выполняли через OAuth.

В журнал аудита записываются следующие события OAuth:

  • Регистрация клиента (ручная или динамическая).
  • Авторизация клиента (завершение пользователем процесса предоставления согласия).

Действия, которые пользователь выполняет через клиент, подключённый по OAuth, — например, создание задания или запуск модели, — отображаются в журнале аудита с указанием пользователя в качестве исполнителя, как и действия, выполненные через интерфейс dbt или с помощью персонального токена доступа.

Запись в журнале аудита о действии, выполненном через клиент, подключённый по OAuthЗапись в журнале аудита о действии, выполненном через клиент, подключённый по OAuth

Нашли ошибку?

0
Loading