Настройка Snowflake OAuth
Это руководство описывает функцию плана dbt Cloud Enterprise. Если вы хотите узнать больше о плане Enterprise, свяжитесь с нами по адресу sales@getdbt.com.
dbt Cloud Enterprise поддерживает аутентификацию OAuth с Snowflake. Когда Snowflake OAuth включен, пользователи могут авторизовать свои учетные данные для разработки с помощью единого входа (SSO) через Snowflake, а не вводить имя пользователя и пароль в dbt Cloud. Если Snowflake настроен с SSO через стороннего поставщика удостоверений, разработчики могут использовать этот метод для входа в Snowflake и авторизации учетных данных для разработки dbt без дополнительной настройки.
Для настройки Snowflake OAuth в dbt Cloud требуется участие администраторов обеих систем для выполнения следующих шагов:
- Найдите значение перенаправления URI в dbt Cloud.
- Создайте интеграцию безопасности в Snowflake.
- Настройте подключение в dbt Cloud.
Чтобы использовать Snowflake в IDE dbt Cloud, все разработчики должны аутентифицироваться с помощью Snowflake в своих учетных данных профиля.
Найдите значение перенаправления URI
Для начала скопируйте URI перенаправления подключения из dbt Cloud:
- Перейдите в Настройки аккаунта.
- Выберите Проекты и выберите проект из списка.
- Выберите подключение, чтобы просмотреть его детали, и установите метод OAuth на "Snowflake SSO".
- Скопируйте Redirect URI для использования на следующих шагах.
Создайте интеграцию безопасности
В Snowflake выполните запрос для создания и нтеграции безопасности. Полную документацию по созданию интеграции безопасности для пользовательских клиентов можно найти здесь.
В следующем примере запроса CREATE OR REPLACE SECURITY INTEGRATION
замените значение <REDIRECT_URI>
на URI перенаправления (также называемый URL доступа), скопированный в dbt Cloud. Чтобы найти URI перенаправления, обратитесь к предыдущему разделу найдите значение перенаправления URI.
CREATE OR REPLACE SECURITY INTEGRATION DBT_CLOUD
TYPE = OAUTH
ENABLED = TRUE
OAUTH_CLIENT = CUSTOM
OAUTH_CLIENT_TYPE = 'CONFIDENTIAL'
OAUTH_REDIRECT_URI = '<REDIRECT_URI>'
OAUTH_ISSUE_REFRESH_TOKENS = TRUE
OAUTH_REFRESH_TOKEN_VALIDITY = 7776000;
Примечание: Только администраторы аккаунта Snowflake (пользователи с ролью ACCOUNTADMIN
) или роль с глобальной привилегией CREATE INTEGRATION
могут выполнять эту SQL-команду.
Поле | Описание |
---|---|
TYPE | Обязательно |
ENABLED | Обязательно |
OAUTH_CLIENT | Обязательно |
OAUTH_CLIENT_TYPE | Обязательно |
OAUTH_REDIRECT_URI | Обязательно. Используйте значение из настроек аккаунта dbt Cloud. |
OAUTH_ISSUE_REFRESH_TOKENS | Обязательно |
OAUTH_REFRESH_TOKEN_VALIDITY | Обязательно. Эта конфигурация определяет количество секунд, в течение которых токен обновления действителен. Используйте меньшее значение, чтобы заставить пользователей чаще повторно аутентифицироваться в Snowflake. |
Дополнительные параметры конфигурации могут быть указаны для интеграции безопасности по мере необходимости.
Настройка подключения в dbt Cloud
Администратор базы данных отвечает за создание подключения Snowflake в dbt Cloud. Это подключение настраивается с использованием идентификатора клиента Snowflake и секрета клиента. При настройке подключения в dbt Cloud выберите флажок "Разрешить вход через SSO". После выбора этого флажка вам будет предложено ввести идентификатор клиента OAuth и секрет клиента OAuth. Эти значения можно определить, выполнив следующий запрос в Snowflake:
with
integration_secrets as (
select parse_json(system$show_oauth_client_secrets('DBT_CLOUD')) as secrets
)
select
secrets:"OAUTH_CLIENT_ID"::string as client_id,
secrets:"OAUTH_CLIENT_SECRET"::string as client_secret
from
integration_secrets;
Введите идентификатор клиента и секрет клиента в dbt Cloud, чтобы завершить создание вашего подключения.
Авторизация учетных данных разработчика
После включения Snowflake SSO пользователи проекта смогут настроить свои учетные данные в своих профилях. Нажав кнопку "Подключиться к аккаунту Snowflake", пользователи будут перенаправлены в Snowflake для авторизации с настроенным поставщиком SSO, а затем обратно в dbt Cloud для завершения процесса настройки. На этом этапе пользователи должны иметь возможность использовать IDE dbt с их учетными данными для разработки.
Диаграмма потока SSO OAuth
После того как пользователь авторизовал dbt Cloud с помощью Snowflake через своего поставщика удостове рений, Snowflake вернет токен обновления в приложение dbt Cloud. Затем dbt Cloud может обменять этот токен обновления на токен доступа, который затем можно использовать для открытия подключения Snowflake и выполнения запросов в IDE dbt Cloud от имени пользователей.
ПРИМЕЧАНИЕ: Срок действия токена обновления определяется параметром OAUTH_REFRESH_TOKEN_VALIDITY, указанным в операторе "create security integration". Когда срок действия токена обновления пользователя истекает, пользователю необходимо повторно авторизоваться в Snowflake, чтобы продолжить разработку в dbt Cloud.
Настройка нескольких проектов dbt Cloud с Snowflake OAuth
Если вы планируете настроить один и тот же аккаунт Snowflake для разных проектов dbt Cloud, вы можете использовать одну и ту же интеграцию безопасности для всех проектов.