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

Настройка внешнего OAuth с Redshift EnterpriseEnterprise +

примечание

Эта функция в настоящее время доступна только для провайдеров удостоверений Okta и Entra ID.

Тарифные планы dbt Enterprise и Enterprise+ поддерживают аутентификацию OAuth с внешними провайдерами. Когда включена опция External OAuth, пользователи могут авторизовывать свои учетные данные для разработки с помощью единого входа (SSO) через провайдер удостоверений (IdP). External OAuth позволяет пользователям получать доступ к нескольким приложениям, включая dbt, не передавая сервису свои статические учетные данные. Это упрощает процесс аутентификации для сред разработки и обеспечивает дополнительный уровень безопасности для вашей учетной записи dbt.

Начало работы

Процесс настройки внешнего OAuth потребует некоторого взаимодействия между вашими аккаунтами dbt, IdP и хранилища данных. Чтобы ускорить процесс конфигурации, рекомендуется держать их открытыми в нескольких вкладках браузера:

  • dbt: Основная работа будет в разделе Account settings —> Integrations. Для настройки интеграции и создания подключений вам потребуются соответствующие права доступа.
  • Провайдеры идентификации (Identity providers):
    • Okta: Вам предстоит работать в нескольких разделах аккаунта Okta, но начать можно с раздела Applications. Потребуются права на создание приложения и authorization server.
    • Entra ID: Требуется администратор с доступом к созданию приложений Entra ID, который также является пользователем в хранилище данных.
  • Хранилище данных:
    • Redshift: Создайте и управляйте интеграцией с Identity Center совместно с вашим провайдером идентификации.

Если администраторы, отвечающие за эти продукты, — разные люди, лучше координировать работу одновременно, чтобы снизить трение в процессе настройки.

Убедитесь, что ваши администраторы Amazon завершили интеграцию Amazon Identity Center с Okta или Entra ID.

Конфигурация провайдера идентификации

Выберите поддерживаемого провайдера идентификации (IdP), чтобы получить инструкции по настройке внешнего OAuth в его среде и завершению интеграции в dbt:

1. Инициализация настроек dbt

  1. В вашем аккаунте dbt перейдите в Account settings —> Integrations.
  2. Прокрутите страницу до раздела Custom integrations и нажмите Add integrations.
  3. Оставьте это окно открытым. Установите Integration type в значение Okta и обратите внимание на Redirect URI в нижней части страницы. Скопируйте его в буфер обмена — он понадобится на следующих шагах.
Скопируйте callback URI в нижней части страницы интеграции в dbt.Скопируйте callback URI в нижней части страницы интеграции в dbt.

2. Создание приложения Okta

  1. В панели управления Okta раскройте раздел Applications и нажмите Applications. Затем нажмите кнопку Create app integration.
  2. Выберите OIDC в качестве метода входа и Web applications в качестве типа приложения. Нажмите Next.
Окно создания приложения Okta с выбранными OIDC и Web Application.Окно создания приложения Okta с выбранными OIDC и Web Application.
  1. Задайте приложению понятное имя, например “External OAuth app for dbt”, чтобы его было легко идентифицировать.
  2. В разделе Grant type включите опцию Refresh token.
  3. Прокрутите страницу до параметра Sign-in redirect URIs. Вставьте redirect URI, полученный из dbt на шаге 1.3.
Окно конфигурации приложения Okta с настроенным sign-in redirect URI.Окно конфигурации приложения Okta с настроенным sign-in redirect URI.
  1. Сохраните конфигурацию приложения. Вы вернетесь к нему позже, а пока переходите к следующим шагам.

3. Создание Okta API

  1. Раскройте раздел Security и выберите API в боковом меню Okta.
  2. На экране API нажмите Add authorization server. Задайте имя authorization server (подойдет псевдоним вашего аккаунта хранилища данных). В поле Audience скопируйте и вставьте URL входа в хранилище данных. Добавьте описание и нажмите Save.
Окно Okta API с заданным значением Audience.Окно Okta API с заданным значением Audience.
  1. На экране конфигурации authorization server откройте Metadata URI в новой вкладке. Информация с этой страницы понадобится на следующих шагах.
Страница настроек Okta API с выделенным metadata URI.Страница настроек Okta API с выделенным metadata URI.
Пример вывода metadata URI.Пример вывода metadata URI.
  1. Перейдите на вкладку Scopes и нажмите Add scope. В поле Name укажите session:role-any. (Необязательно) Настройте Display phrase и Description, затем нажмите Create.
Настройка API scope в окне Add Scope.Настройка API scope в окне Add Scope.
  1. Откройте вкладку Access policies и нажмите Add policy. Укажите Name и Description, а в поле Assign to выберите The following clients. Начните вводить имя приложения, созданного на шаге 2.3 — оно подставится автоматически. Выберите приложение и нажмите Create Policy.
Поле Assignment с автоматически подставленным значением.Поле Assignment с автоматически подставленным значением.
  1. На экране access policy нажмите Add rule.
�Выделенная кнопка Add rule в API.Выделенная кнопка Add rule в API.
  1. Задайте правилу понятное имя и прокрутите страницу до раздела token lifetimes. Настройте параметры Access token lifetime is, Refresh token lifetime is и but will expire if not used every в соответствии с политиками вашей организации. Мы рекомендуем значения по умолчанию — 1 час и 90 дней. Более строгие правила увеличивают вероятность того, что пользователям придется чаще проходить повторную аутентификацию.
Настройки времени жизни токенов в окне API rule.Настройки времени жизни токенов в окне API rule.
  1. Вернитесь на вкладку Settings и оставьте ее открытой в браузере — часть информации понадобится позже.

4. Создание настроек OAuth в хранилище данных

Убедитесь, что администраторы Amazon завершили интеграцию Identity Center с Okta.

Настройте приложение Okta и API в соответствии с конфигурацией Amazon.

5. Настройка интеграции в dbt

  1. Вернитесь на страницу dbt Account settings —> Integrations, открытую в начале. Теперь заполните все поля.

    1. Integration name: Укажите описательное имя интеграции, включающее информацию об окружении Okta, чтобы будущим пользователям не приходилось догадываться о ее назначении.
    2. Client ID и Client secrets: Получите эти значения на странице приложения Okta.
    Client ID и secret, выделенные на странице приложения Okta.Client ID и secret, выделенные на странице приложения Okta.
    1. Authorize URL и Token URL: Эти значения можно найти в metadata URI.
    Authorize и token URLs, выделенные в metadata URI.Authorize и token URLs, выделенные в metadata URI.
  2. Нажмите Save, чтобы сохранить конфигурацию.

6. Создание нового подключения в dbt

  1. Перейдите в Account settings и выберите Connections в меню. Нажмите New connection.
  2. Настройте Account, Database и Warehouse как обычно, а в поле OAuth method выберите созданный вами внешний OAuth.
Окно новой конфигурации в dbt с опцией External OAuth.Окно новой конфигурации в dbt с опцией External OAuth.
  1. Прокрутите страницу до блока External OAuth и выберите нужную конфигурацию из списка.
Новое подключение, отображаемое в блоке External OAuth Configurations.Новое подключение, отображаемое в блоке External OAuth Configurations.
  1. Нажмите Save — внешняя OAuth-аутентификация с Okta настроена!

Настройка Trusted Token Issuer в IAM IdC

Trusted token issuer генерирует access token, который используется для идентификации пользователя, а затем аутентифицирует его. Это позволяет сервисам за пределами экосистемы AWS, таким как платформа dbt, подключаться к IAM IdC (и Redshift), используя access tokens, полученные или сгенерированные внешним IdP (Entra ID или Okta).

Следующие шаги описаны в этой статье блога:

  1. Откройте AWS Management Console и перейдите в IAM Identity Center, затем в раздел Settings.
  2. Выберите вкладку Authentication и в разделе Trusted token issuers нажмите Create trusted token issuer.
  3. На странице Set up an external IdP to issue trusted tokens в разделе Trusted token issuer details выполните следующее:
    1. В поле Issuer URL укажите OIDC discovery URL внешнего IdP, который будет выпускать токены для trusted identity propagation. Обязательно включите завершающий слеш в конце URL.
    2. В поле Trusted token issuer name укажите имя для идентификации TTI в IAM Identity Center и консоли приложений.
    3. В разделе Map attributes выполните следующее:
      1. В поле Identity provider attribute выберите атрибут для сопоставления с атрибутом в identity store Identity Center. Можно выбрать:
      • Email
      • Object Identifier
      • Subject
      • Other — по нашему опыту, при использовании этого варианта с UPN значение upn совпадало с Email.

Настройка приложения Redshift IdC для использования TTI

Для начала в консоли Amazon Redshift выберите IAM Identity Center connection.

Консоль AWS Redshift.Консоль AWS Redshift.
  1. Выберите приложение Amazon Redshift, созданное в рамках первоначальной настройки.
  2. Перейдите на вкладку Client connections tab и нажмите Edit.
  3. В разделе Configure client connections that use third-party IdPs выберите Yes.
  4. Отметьте checkbox для Trusted token issuer, созданного на предыдущем шаге.
  5. Введите значение aud claim в разделе Configure selected trusted token issuers. Это должно быть значение Application ID URI, которое вы указали для интеграции в платформе dbt.

Завершение настройки dbt

Если у вас уже есть подключение, убедитесь, что в нем выбран метод аутентификации External OAuth, и выберите интеграцию, созданную ранее. В противном случае создайте новое подключение Redshift, обязательно указав значения для:

  • Server Hostname
  • OAuth Method
  • Database name (это поле находится в разделе Optional Settings)

Это подключение должно быть назначено среде разработки в существующем или новом проекте.

После того как подключение назначено среде разработки, вы можете настроить учетные данные пользователя для этой среды в разделе Account Settings > Your Profile > Credentials > <Your Project Name>. Установите метод аутентификации External OAuth, при необходимости задайте schema и другие поля и сохраните учетные данные. После этого вы сможете нажать кнопку Connect to Redshift.

Проверка подключения в Studio

После инициализации сессии разработки вы можете проверить подключение к Redshift с использованием внешнего OAuth, выполнив команду dbt debug.

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

0
Loading