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


Настройка Microsoft Entra ID с Kerberos для единого входа

Соединитель SAP ERP Power Platform можно настроить для использования учетных данных Microsoft Entra ID для единого входа (SSO) на основе Kerberos. Пользователи могут получать доступ к данным SAP и выполнять удаленные вызовы функций SAP (RFC) в решениях Power Platform без необходимости многократного входа в несколько служб. В этой статье описывается весь процесс, включая настройку ограниченного делегирования Kerberos (KCD) на локальном шлюзе данных для безопасного обмена данными.

Подробнее об ограниченном делегировании Kerberos.

В этих инструкциях предполагается, что вы начинаете с нуля. Большинство клиентов уже выполнили некоторые шаги. Определение шагов, которые необходимо выполнить для вашего сценария, выходит за рамки этой статьи. Например, можно пропустить раздел Создание учетной записи службы SAP в доменных службах Active Directory, если система SAP уже настроена для единого входа на основе Kerberos.

Предварительные требования

Создание учетной записи SAP в AD DS

Как администратор домена, вы сначала создадите учетную запись службы, а затем определите имя субъекта-службы (SPN) и включите для него шифрование Kerberos.

Заметка

Если администратор SAP Basis подтвердит, что система SAP уже настроена для единого входа на основе Kerberos, пропустите этот раздел.

Для настройки учетной записи службы в качестве администратора домена выполните следующие действия:

  1. На компьютере узла контроллера домена откройте консоль управления Microsoft (MMC) и запустите оснастку «Пользователи и компьютеры Active Directory».

  2. В своем домене щелкните правой кнопкой мыши Пользователи и выберите Создать>Пользователь.

  3. Введите Kerberos<SID> в качестве полного имени и имени пользователя для входа, где <SID> — это идентификатор системы SAP, например A4H.

  4. Выберите Далее.

  5. Введите и подтвердите пароль для новой учетной записи службы.

  6. Выберите как Пользователь не может изменить пароль, так и Срок действия пароля никогда не истекает.

  7. Выберите Далее, затем выберите Готово.

Создав учетную запись службы, определите ее имя субъекта-службы (SPN) и включите для нее шифрование Kerberos.

  1. Откройте оснастку ADSI Edit (adsiedit.msc) и подключитесь к своему домену.

  2. Выберите CN=Users в контексте именования вашего домена по умолчанию.

  3. Щелкните правой кнопкой мыши объект пользователя CN=Kerberos<SID> и выберите Свойства.

  4. В списке Атрибуты выберите ServicePrincipalName.

  5. Выберите Изменить.

  6. Введите имя субъекта-службы в формате SAP/<SID>, где <SID> — это идентификатор системы SAP, например A4H.

  7. Выберите Добавить, затем выберите ОК.

  8. Вернитесь к оснастке Пользователи и компьютеры Active Directory.

  9. В списке Пользователи щелкните правой кнопкой мыши новую учетную запись службы SAP Kerberos<SID> и выберите Свойства.

  10. Выберите вкладку Учетная запись.

  11. В разделе Параметры учетной записи выберите Эта учетная запись поддерживает 256-битное шифрование AES Kerberos.

  12. Выберите OK.

Внимание!

Включение 256-битного шифрования AES Kerberos может вызвать проблемы у других клиентов, таких как графический пользовательский интерфейс SAP, которые запрашивают билеты Kerberos из этой учетной записи Active Directory. Это связано с тем, что изменяется список доступных методов шифрования, и другие клиенты больше не имеют общего шифра шифрования. Проверьте журналы Active Directory, чтобы определить, какие методы шифрования используют все клиенты, затем вручную обновите свойство msDS-SupportedEncryptionTypes, указав правильное значение. После обновления параметр шифрования AES 256 должен появиться автоматически без необходимости выбора вручную. Дополнительные сведения см. в статье Расшифровка выбора поддерживаемых типов шифрования Kerberos в блоге базовой инфраструктуры и сообщества.

Настройка безопасных сетевых коммуникаций с помощью аутентификации единого входа Kerberos в SAP

Выполните следующие действия в качестве администратора SAP Basis в графическом пользовательском интерфейсе SAP.

  1. Чтобы запустить мастер единого входа SAP, введите SNCWIZARD в поле Команда.

  2. На странице мастера Начало выберите Продолжить.

  3. Примите значение по умолчанию для удостоверения SNC системы и выберите Продолжить.

  4. На странице Параметры профиля по умолчанию выберите Продолжить.

  5. Выберите Закрыть.

  6. Выйдите из системы SAP и перезапустите сервер приложений SAP.

  7. Войдите в графический интерфейс SAP и снова запустите SNCWIZARD.

  8. На странице Начало выберите Продолжить.

  9. На странице Учетные данные Kerberos выберите Продолжить.

  10. В разделе Конфигурация SPNEGO выберите Отображение/изменение, чтобы переключиться в режим редактирования, затем выберите Добавить.

  11. Введите следующие значения:

    • Имя субъекта-пользователя: Kerberos<SID>@DOMAIN, где Kerberos<SID> — это имя пользователя учетной записи службы, а DOMAIN — полное имя домена Active Directory в верхнем регистре; например, KerberosA4H(at)CORP.BESTRUN.COM.
    • Пароль и Подтверждение пароля: пароль, введенный при создании учетной записи Active Directory.
  12. Выберите Проверить пользователя в Active Directory, чтобы проверить пользователя, затем выберите Выйти.

  13. Выберите Сохранить.

  14. На странице Учетные данные X.509 выберите Пропустить.

  15. Выберите Завершено.

Затем сопоставьте имя пользователя SNC (на основе имени пользователя домена Windows) с именем субъекта-пользователя SAP.

  1. В графическом интерфейсе пользователя SAP выполните транзакцию SU01.

  2. Введите идентификатор тестового пользователя (например, JDAVIS) в поле Пользователь, затем выберите Изменить.

  3. Перейдите на вкладку SNC.

  4. Введите имя субъекта-пользователя в поле Имя SNC, например, p:CN=JDAVIS(at)CORP.BESTRUN.COM.

  5. Выберите Сохранить.

Настройка локального шлюза данных для ограниченного делегирования Kerberos

По умолчанию локальный шлюз работает как учетная запись локальной службы компьютера NT Service\PBIEgwService. Чтобы использовать ограниченное делегирование Kerberos с расширениями протокола S4U, шлюз должен работать как учетная запись службы в домене.

Выполните следующие действия в качестве администратор домена.

  1. На компьютере узла контроллера домена вернитесь к оснастке «Пользователи и компьютеры Active Directory».

  2. В своем домене щелкните правой кнопкой мыши Пользователи и выберите Создать>Пользователь.

  3. Введите GatewaySvc в качестве полного имени и имени пользователя для входа.

  4. Выберите Далее.

  5. Введите и подтвердите пароль для новой учетной записи службы домена.

  6. Выберите как Пользователь не может изменить пароль, так и Срок действия пароля никогда не истекает.

  7. Выберите Далее, затем выберите Готово.

Создав учетную запись службы домена, далее определите ее имя субъекта-службы и включите для нее ограниченное делегирование Kerberos.

  1. В окне PowerShell с повышенными привилегиями введите следующую команду, чтобы создать имя субъекта-службы для новой учетной записи службы. Замените <имя узла OPDG> на имя узла локального шлюза данных, а <домен> — на имя вашего домена. Узнать имя узла можно, введя команду hostname в командной строке.

    setspn –s gateway/<OPDG hostname> <domain>\GatewaySvc
    
  2. В оснастке Пользователи и компьютеры Active Directory щелкните правой кнопкой мыши новую учетную запись службы и выберите Свойства.

  3. Выберите вкладку Делегирование.

  4. Выберите параметр Доверять этому пользователю делегирование только указанных служб и Использовать любой протокол проверки подлинности.

  5. Выберите Добавить.

  6. Выберите Пользователи или компьютеры.

  7. Введите Kerberos<SID> в поле имен объектов, где <SID> — это идентификатор системы SAP, например A4H.

  8. Выберите Проверить имена, затем выберите ОК.

Список разрешенных служб теперь содержит имя субъекта-службы системы SAP. Новая учетная запись службы шлюза может запросить билет службы только для системы SAP от имени распространяемого пользователя с расширением протокола Kerberos S4U2proxy.

  1. Выберите Выбрать все.
  2. Выберите OK.
  3. Выберите ОК во второй раз.
  4. Учетная запись службы локального шлюза данных должна быть предоставлена локальным политикам на узле локального шлюза данных. Выполните эту настройку с помощью редактора локальной групповой политики, запустив gpedit.msc из командной строки Администратор.
  5. Выберите элементы Политика локального компьютера ->Конфигурация компьютера ->Параметры Windows ->Параметры безопасности ->Локальные политики ->Назначение прав пользователя. Предоставьте учетной записи службы домена локального шлюза данных (например, CORP\GatewaySvc) действие локальной политики как части операционной системы, дважды щелкнув ее.
  6. Выберите Добавить пользователя или группу.
  7. Введите имя учетной записи службы домена локального шлюза данных (например, GatewaySvc) и выберите Проверить имена, чтобы преобразовать его в полное существующее имя. Выберите OK. Доменное имя учетной записи службы (например, CORP\GatewaySvc) теперь добавляется в список пользователей политики. Выберите ОК, чтобы применить новую конфигурацию.
  8. Повторите тот же шаг для политики Олицетворение клиента после проверки подлинности, дважды щелкнув ее. Выберите Добавить пользователя или группу и преобразуйте учетную запись службы локального шлюза данных в полное существующее имя с помощью параметра Проверить имена. Выберите OK.
  9. Имя учетной записи службы (например, CORP\GatewaySvc) теперь добавляется в список пользователей политики. Выберите OK. Закройте Редактор локальной групповой политики.
  10. Запустите приложение локального шлюза данных по ссылке на рабочем столе на узле шлюза или выполнив C:\Program Files\On-premises data gateway\EnterpriseGatewayConfigurator.exe. Выберите Войти, чтобы войти в качестве пользователя-системного администратора Power Platform, который зарегистрировал локальный шлюз данных в среде.
  11. Выберите Настройки службы в меню конфигуратора. Выберите Изменить учетную запись.
  12. Выберите Применить и Перезапустить.
  13. Введите имя учетной записи службы локального шлюза данных (например, CORP\GatewaySvc) и пароль. Выберите Настроить.
  14. Предоставьте учетную запись системного администратора Power Platform для входа, выбрав Войти.
  15. Выберите Миграция, восстановите или переключите существующий шлюз, чтобы восстановить регистрацию шлюза.
  16. Выберите кластер и экземпляр шлюза из раскрывающихся списков и укажите ключ восстановления, выбранный при первоначальной регистрации. Выберите Настроить.
  17. После завершения восстановления экземпляр службы локального шлюза данных использует учетную запись службы домена (например, CORP\GatewaySvc).

Установка и настройка криптографической библиотеки SAP

Для обмена данными SNC между локальным шлюзом данных и системой SAP на узле шлюза вместе с SAP NCo 3.1 должна быть установлена криптографическая библиотека SAP.

  1. Загрузите последнюю версию криптографической библиотеки SAP из раздела Загрузка программного обеспечения на портале поддержки SAP (требуется S-пользователь) и скопируйте файл библиотеки (sapcrypto.dll) в каталог установки локального шлюза данных на узле шлюза (C:\Program Files\On-premises data gateway). Щелкните правой кнопкой мыши файл sapcrypto.dll и выберите Свойства в контекстном меню.
  2. Перейдите на вкладку Сведения, чтобы проверить версию библиотеки. Она должна быть 8.5.25 или новее. Выберите OK.
  3. Создайте новый текстовый файл sapcrypto.ini в том же каталоге (C:\Program Files\On-premises data gateway) с таким содержимым: ccl/snc/enable_kerberos_in_client_role = 1.
  4. Сохраните файл.
  5. Создайте системную переменную среды CCL_PROFILE и присвойте ее значение пути файла конфигурации sapcrypto.ini. На узле шлюза запустите Панель управления и перейдите в раздел Система и безопасность ->Система. Выберите параметры системы Дополнительно.
  6. Выберите Переменные среды.
  7. В меню Системные переменные выберите Создать.
  8. Введите CCL_PROFILE в качестве имени переменной. В качестве значения переменной введите полный путь к файлу sapcrypto.ini, например C:\Program Files\On-premises data gateway\sapcrypto.ini. Выберите OK.
  9. Выберите ОК во второй раз.

Задание настройки FullDomainResolutionEnabled OPDG

Чтобы помочь локальному шлюзу данных при поиске пользователей Active Directory, необходимо задать значение конфигурации в параметрах локального шлюза данных.

  1. На узле шлюза откройте в редакторе файл Microsoft.PowerBI.DataMovement.Pipeline.GatewayCore.dll.config в установочной папке локального шлюза данных (C:\Program Files\On-premises data gateway).
  2. Найдите параметр FullDomainResolutionEnabled и задайте для него значение True.
  3. Выберите Перезапустить сейчас на вкладке Параметры службы конфигуратора локального шлюза данных, чтобы применить изменения.

Настройка сопоставления пользователей в Active Directory

Если имена субъектов-пользователей Microsoft Entra ID совпадают со свойством локальной электронной почты Active Directory, этот шаг можно пропустить.

Чтобы включить распространение участника на основе Kerberos для пользователя в этом сценарии, требуется сопоставление полного имени пользователя (имя участника-пользователя, UPN) в Microsoft Entra ID с локальным именем пользователя в Active Directory. Для этого мы используем неиспользуемый атрибут msDS-cloudExtensionAttribute1 локального пользователя Active Directory для хранения имени участника-пользователя Microsoft Entra ID. Также можно использовать любой другой неиспользуемый атрибут Active Directory.

В сценарии для тестового пользователя приложения Джека Дэвиса (Jack Davis) задайте для атрибута msDS-cloudExtensionAttribute1 локальной учетной записи пользователя домена Active Directory jdavis@corp.bestrun.com значение имени участника-пользователя Microsoft Entra ID jdavis@bestruncorp.onmicrosoft.com для связывания двух учетных записей.

  1. На узле шлюза откройте в редакторе файл Microsoft.PowerBI.DataMovement.Pipeline.GatewayCore.dll.config в установочной папке локального шлюза данных (C:\Program Files\On-premises data gateway).
  2. Найдите параметр ADUserNameReplacementProperty и задайте для него значение SAMAccountName.
  3. Найдите параметр ADUserNameLookupProperty и присвойте ему значение msDS-cloudExtensionAttribute1. Сохраните изменения в файл.
  4. Выберите Перезапустить сейчас на вкладке Параметры службы конфигуратора локального шлюза данных, чтобы применить изменения.
  5. На узле Контроллер домена выберите Пуск, затем выберите в меню пункт Инструменты администрирования Windows ->ADSI Edit. В редакторе ADSI перейдите в дереве объектов слева к разделу CN=Users в контексте именования домена по умолчанию. Щелкните правой кнопкой мыши объект тестового пользователя (например, CN=Jack Davis) и выберите Свойства из контекстного меню.
  6. Выберите атрибут msDS-cloudExtensionAttribute1 в списке и выберите Изменить.
  7. Введите имя участника-пользователя Microsoft Entra ID (например, jdavis@<domainname>.onmicrosoft.com) в поле Значение. Замените <domainname> на доменное имя клиента вашего Microsoft Entra ID, например bestruncorp. Выберите OK.

Создание потока Power Automate

Все локальные компоненты (система SAP, локальный шлюз данных и AD) теперь правильно настроены для распространения субъекта на основе Kerberos. На этом шаге создайте и запустите поток Power Automate для тестирования конфигурации.

  1. Выполните вход в Power Automate на сайте https://make.powerautomate.com.

  2. Выберите Мои потоки ->Создать поток ->Мгновенный облачный поток

  3. Задайте имя потока, выберите Активировать поток вручную, затем выберите Создать.

  4. Добавьте действие соединителя SAP ERP Вызов функции SAP (V3) в поток.

  5. Если ни одно подключение SAP ERP еще не создано, появится предложение создать его. Если имеется существующее подключение, создайте новое.

    • Тип аутентификации должен быть Microsoft Entra ID (с Kerberos).
    • Шлюз данных должен быть локальным шлюзом данных, который был настроен в этом руководстве.
    • Выберите Вход.
  6. В действии SAP ERP Вызов функции SAP (V3) задайте следующие параметры:

    • В поле имени RFC установите значение STFC_CONNECTION.
    • Система SAP настроена на (измените эти значения в соответствии с администратором SAP Basis).

    json { "AppServerHost": "<Имя сервера SAP>", "Client": "<Клиент SAP>", "LogonType": "ApplicationServer", "SncLibraryPath": "C:\Program Files\On-premises data gateway\sapcrypto.dll", "SncPartnerName": "p:<Имя партнера SAP>", "SncQOP": "Default", "SncSso": "On", "SystemNumber": "<SAP System Number>", "UseSnc": "true" }

  7. Если все прошло успешно, то можно ввести параметр REQUTEXT, в который можно ввести такое значение, как Привет, мир.

  8. Сохраните и проверьте поток.