Настройка SSO с помощью Google Workspace
Тарифные планы dbt уровня Enterprise поддерживают единый вход (SSO) через Google GSuite. Вам потребуются разрешения на создание нового приложения Google OAuth2 и управление им, а также права для включения Google Admin SDK. GSuite — это компонент Google Cloud Platform (GCP), поэтому вам также понадобится доступ к учетной записи с разрешениями на управление приложением GSuite в аккаунте GCP.
Некоторые клиенты предпочитают использовать разные облачные провайдеры для настройки прав пользователей и групп и для хостинга инфраструктуры. Например, вполне возможно использовать GSuite для управления данными входа и настройкой многофакторной аутентификации (MFA), при этом размещая рабочие нагрузки с данными в AWS.
В настоящее время поддерживаются следующие возможности:
- SSO, инициируемый провайдером сервиса (SP-initiated SSO)
- Provisioning «по требованию» (Just-in-time provisioning)
В этом руководстве описан процесс настройки аутентификации в dbt с помощью Google GSuite.
Настройка организации GSuite в GCP
dbt использует Client ID и Client Secret для аутентификации пользователей организации GSuite. Ниже описаны шаги по созданию Client ID и Client Secret для использования в dbt.
Создание учетных данных
- Перейдите в API Manager в GCP
- Выберите существующий проект или создайте новый проект для учетных данных API
- Нажмите Create Credentials и в появившемся окне выберите OAuth Client ID
- Google требует настройки экрана согласия OAuth для учетных данных OAuth. Нажмите кнопку Configure consent screen, чтобы создать новый экран согласия, если появится соответствующий запрос.
- На странице экрана согласия OAuth настройте следующие параметры (документация Google):
| Configuration | Value | notes |
|---|---|---|
| Тип приложения | internal | обязательно |
| Название приложения | dbt | обязательно |
| Логотип приложения | Скачайте логотип здесь | необязательно |
| Авторизованные домены | getdbt.com (мультитенантное развертывание в США) getdbt.com и dbt.com (US Cell 1) dbt.com (EMEA или AU) | При развертывании в VPC используйте домен вашего развертывания |
| Области доступа | email, profile, openid | Областей доступа по умолчанию достаточно |
- Сохраните настройки Consent screen, чтобы вернуться на страницу Create OAuth client id.
- При создании учетных данных используйте следующие значения конфигурации, заменив
YOUR_ACCESS_URLиYOUR_AUTH0_URIсоответствующими значениями Access URL и Auth0 URI из настроек вашей учетной записи.
| Config | Value |
|---|---|
| Application type | Web application |
| Name | dbt |
| Authorized Javascript origins | https://YOUR_ACCESS_URL |
| Authorized Redirect URIs | https://YOUR_AUTH0_URI/login/callback |
- Нажмите Create, чтобы создать новые учетные данные. Появится всплывающее окно с Client ID и Client Secret. Обязательно сохраните их — они понадобятся позже!
Включение Admin SDK
Для запроса информации об участниках групп из GSuite API инструменту dbt необходимо, чтобы в этом приложении был включён Admin SDK. Чтобы включить Admin SDK для этого проекта, перейдите на страницу настроек Admin SDK и убедитесь, что API включён.
Настройка в dbt
Чтобы завершить настройку, выполните приведённые ниже действия в приложении dbt.
Указание OAuth Client ID и Client Secret
-
Перейдите в Account settings > SSO & SCIM.
-
Нажмите Get started, если SSO ещё не настроен, или Edit, если он уже настроен.
-
Укажите следующие параметры SSO:
- Log in with: GSuite
- Client ID: Вставьте Client ID, созданный на предыдущих шагах
- Client Secret: Вставьте Client Secret, созданный на предыдущих шагах
- Domain in GSuite: Введите доменное имя вашей учётной записи GSuite (например,
dbtlabs.com). Только пользователи с адресом электронной почты в этом домене смогут войти в вашу учётную запись dbt с помощью аутентификации GSuite. При необходимости можно указать список доменов через запятую, пользователям всех этих доменов будет разрешён доступ к вашей учётной записи dbt (например,dbtlabs.com, fishtowndata.com)
-
Нажмите Save & Authorize, чтобы авторизоваться с указанными учётными данными. Вы будете перенаправлены в процесс OAuth-аутентификации GSuite, где вам предложат войти в dbt, используя рабочий адрес электронной почты. Если аутентификация пройдёт успешно, вы будете перенаправлены обратно в приложение dbt.
-
На странице Credentials убедитесь, что запись
groupsприсутствует и содержит группы, в которые вы входите в GSuite. Если записьgroupsотсутствует в списке атрибутов IdP, обратитесь к приведённым далее инструкциям по устранению неполадок.
Если информация для проверки выглядит корректно, значит вы успешно завершили настройку SSO с GSuite.
Пользователи могут войти в систему по адресу https://login.dbt.com, чтобы просмотреть аккаунты, к которым у них есть доступ в разных экземплярах, и выбрать, где открыть dbt platform. Это рекомендуемая точка входа для большинства пользователей.
Для единого входа (SSO) через вашего поставщика удостоверений также можно использовать следующий формат URL со слагом URL входа в ваш аккаунт. Замените LOGIN_SLUG значением из предыдущих шагов, а YOUR_ACCESS_URL — соответствующим URL доступа для вашего региона и тарифного плана:
https://YOUR_ACCESS_URL/enterprise-login/LOGIN-SLUG
Администраторы аккаунта могут включать и отключать обнаружение аккаунта с помощью параметра Enable global account discovery в разделе настроек аккаунта.
Настройка RBAC
Теперь, когда вы завершили настройку SSO с GSuite, следующим шагом будет настройка групп RBAC, чтобы завершить конфигурацию управления доступом.
Устранение неполадок
Ошибка invalid client
Если при авторизации через GSuite вы получаете ошибку Error 401: invalid_client, проверьте, что:
- указанный Client ID совпадает со значением, созданным на странице GCP API Credentials;
- указанные доменные имена совпадают с доменами вашего аккаунта GSuite.
Ошибки OAuth
Если проверка OAuth не завершается успешно, проверьте, что:
- Admin SDK включен в вашем проекте GCP;
- указанные Client ID и Client Secret совпадают со значениями, созданными на странице GCP Credentials;
- в настройках экрана согласия OAuth был указан Authorized Domain.
Если проверка OAuth не завершается успешно, убедитесь, что:
- В вашем проекте GCP включён Admin SDK
- Указанные Client ID и Client Secret совпадают со значениями, созданными на странице GCP Credentials
- В настройках OAuth Consent Screen указан Authorized Domain
Если аутентификация через GSuite API проходит успешно, но вы не видите
запись
groupsна странице Credentials, возможно, у вас нет разрешений на доступ к группам в вашей учётной записи GSuite. Попросите администратора предоставить вашему пользователю GSuite право запрашивать группы или попросите администратора войти в dbt и авторизовать интеграцию с GSuite.
Дополнительные рекомендации по устранению неполадок, включая проблемы с подтверждением электронной почты, повторные запросы MFA и особенности принудительного применения SSO, см. в разделе Часто задаваемые вопросы о SSO и устранение неполадок.




