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

Настройка внешней аутентификации OAuth для Redshift

примечание

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

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

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

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

  • dbt: Вы будете работать преимущественно на странице Account settings —> Integrations. Для настройки интеграции и создания подключений вам понадобятся соответствующие разрешения.
  • Поставщики удостоверений:
    • Okta: Вы будете работать в нескольких разделах учетной записи Okta, но начать можно с раздела Applications. Вам понадобятся разрешения на создание приложения и сервера авторизации.
    • 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 внизу страницы. Скопируйте этот URI в буфер обмена для использования на следующих шагах.
Скопируйте URI обратного вызова внизу страницы интеграции в dbt.Скопируйте 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. Задайте приложению подходящее имя, например «Приложение внешней OAuth-аутентификации для dbt», чтобы его было легко распознать.
  2. В разделе Grant type включите опцию Refresh token.
  3. Прокрутите страницу вниз до параметра Sign-in redirect URIs. Вставьте URI перенаправления, полученный в dbt на шаге 1.3.
Окно настройки приложения Okta, в котором для URI перенаправления при входе указано значение из dbt.Окно настройки приложения Okta, в котором для URI перенаправления при входе указано значение из dbt.
  1. Сохраните конфигурацию приложения. Вы вернетесь к нему позже, а пока переходите к следующим шагам.

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

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

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

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

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

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

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

    1. Integration name: Задайте интеграции понятное имя, включающее сведения, позволяющие определить среду Okta, чтобы будущим пользователям не приходилось гадать, к какой среде она относится.
    2. Client ID и Client secrets: Скопируйте эти значения со страницы приложения Okta.
    Идентификатор клиента и секрет, выделенные в приложении Okta.Идентификатор клиента и секрет, выделенные в приложении Okta.
    1. Authorize URL и Token URL: Находятся в URI метаданных.
    URL-адреса авторизации и получения токена, выделенные в URI метаданных.URL-адреса авторизации и получения токена, выделенные в 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. Настройка External 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