Поделиться через


Настройка Microsoft Entra ID для федерации в SQL Server

На этой странице описывается настройка федерации Databricks Lakehouse для выполнения федеративных запросов на Microsoft SQL Server с помощью проверки подлинности идентификатора Microsoft Entra ID. Поддерживаются потоки OAuth как "пользователь — компьютер" (U2M), так и "компьютер — компьютер".

Поддерживаемые потоки OAuth

  • U2M: проверка подлинности с помощью учетной записи Майкрософт. Пользователю предлагается войти с помощью URI перенаправления, а токен доступа выдается пользователю.
  • M2M: проверка подлинности с помощью представителя службы. Маркер доступа выдается для приложения вместо конкретного пользователя.

В рабочей области Databricks OAuth относится к проверке подлинности U2M, а OAuth Machine to Machine относится к проверке подлинности M2M.

Перед тем как начать

Прежде чем выполнять федеративные SQL запросы на SQL Server с помощью Entra ID, необходимо иметь следующее:

  • Доступ к подписке Azure и разрешениям для регистрации приложений в идентификаторе Microsoft Entra.
  • Доступ администратора к экземпляру SQL Server для создания субъектов Entra.

Зарегистрируйте приложение в Microsoft Entra ID

Чтобы создать регистрацию приложения для проверки подлинности, сделайте следующее:

  1. Войдите на портал Azure.
  2. Перейдите к идентификатору Microsoft Entra ID>регистрации приложений>Новая регистрация.
  3. Введите имя приложения.
    • Для U2M (OAuth) задайте URI перенаправления следующим образом: https://<workspace-url>/login/oauth/azure.html
    • Для M2M (принципал службы) оставьте пустым URI перенаправления.
  4. Нажмите кнопку "Зарегистрировать".
  5. Скопируйте идентификатор приложения (клиента) и идентификатор каталога (клиента).
  6. Перейдите к сертификатам и секретам>Нового секрета клиента.
  7. Сохраните созданное значение секрета.

Назначение разрешений приложению

Чтобы разрешить приложению проходить проверку подлинности в SQL Server, назначьте необходимые разрешения API:

  1. Перейдите к разрешениям> APIДобавление разрешения.
  2. Выберите Azure SQL Database>user_impersonation (делегированные разрешения).
  3. Для M2M убедитесь, что приложение имеет необходимые разрешения для проверки подлинности учетной записи службы.
  4. Для проверки подлинности M2M в Управляемом экземпляре SQL Azure убедитесь, что удостоверение управляемого экземпляра назначено роли "Читатели каталогов".

Создание служебного субъекта в SQL Server (только M2M)

  1. Подключитесь к экземпляру SQL Server с помощью учетных данных входа Entra ID. У вас должны быть разрешения на создание нового пользователя.

  2. Создайте новое имя входа и пользователя для приложения Entra.

  3. Предоставьте пользователю разрешения на чтение.

    CREATE LOGIN [<app_name>] FROM EXTERNAL PROVIDER;
    CREATE USER [<app_name>] FROM LOGIN [<app_name>];
    ALTER ROLE db_datareader ADD MEMBER [<app_name>];
    

Дополнительные сведения и дополнительные сценарии см. на следующих страницах документации Майкрософт:

Создание подключения

В рабочей области Databricks сделайте следующее:

  1. На боковой панели щелкните Каталог>Добавить>Добавить подключение.
  2. Для типа подключения выберите SQL Server.
  3. Для типа проверки подлинности выберите OAuth (U2M) или OAuth Machine to Machine (M2M).
  4. Введите следующие свойства подключения:
    • Узел: имя узла SQL Server.
    • Порт: порт SQL Server.
    • Пользователь: для U2M — пользователь учетной записи Майкрософт. Для M2M имя основного объекта службы.
    • Введите идентификатор клиента и секрет клиента из регистрации приложения Entra.
    • Введите конечную точку авторизации:
      • U2M: https://login.microsoftonline.com/<tenant-id>/oauth2/v2.0/authorize
      • M2M: https://login.microsoftonline.com/<tenant-id>/oauth2/v2.0/token
    • В области OAuth введите https://database.windows.net/.default offline_access (только для U2M).
  5. Для U2M нажмите Войти с помощью Azure Entra ID и завершите поток проверки подлинности.
  6. Нажмите кнопку "Создать подключение" и перейдите к созданию каталога.

Дальнейшие шаги

Теперь, когда было создано подключение к SQL Server, можно: