Настройка 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.
Предварительные требования
Сервер Windows Server со службами домена Active Directory (AD DS). В этом руководстве используется пример доменного имени corp.bestrun.com (NetBIOS: CORP).
Сервер локального шлюза данных версии за октябрь 2024 г. или более новой, присоединенный к домену Active Directory. Подробнее см. в разделе Установка локального шлюза данных
Помощь со стороны следующих ролей:
- Администратор Microsoft Entra ID
- Администратор SAP Basis
- Администратор Power Platform
Создание учетной записи SAP в AD DS
Как администратор домена, вы сначала создадите учетную запись службы, а затем определите имя субъекта-службы (SPN) и включите для него шифрование Kerberos.
Заметка
Если администратор SAP Basis подтвердит, что система SAP уже настроена для единого входа на основе Kerberos, пропустите этот раздел.
Для настройки учетной записи службы в качестве администратора домена выполните следующие действия:
На компьютере узла контроллера домена откройте консоль управления Microsoft (MMC) и запустите оснастку «Пользователи и компьютеры Active Directory».
В своем домене щелкните правой кнопкой мыши Пользователи и выберите Создать>Пользователь.
Введите Kerberos<SID> в качестве полного имени и имени пользователя для входа, где <SID> — это идентификатор системы SAP, например A4H.
Выберите Далее.
Введите и подтвердите пароль для новой учетной записи службы.
Выберите как Пользователь не может изменить пароль, так и Срок действия пароля никогда не истекает.
Выберите Далее, затем выберите Готово.
Создав учетную запись службы, определите ее имя субъекта-службы (SPN) и включите для нее шифрование Kerberos.
Откройте оснастку ADSI Edit (adsiedit.msc) и подключитесь к своему домену.
Выберите CN=Users в контексте именования вашего домена по умолчанию.
Щелкните правой кнопкой мыши объект пользователя CN=Kerberos<SID> и выберите Свойства.
В списке Атрибуты выберите ServicePrincipalName.
Выберите Изменить.
Введите имя субъекта-службы в формате SAP/<SID>, где <SID> — это идентификатор системы SAP, например A4H.
Выберите Добавить, затем выберите ОК.
Вернитесь к оснастке Пользователи и компьютеры Active Directory.
В списке Пользователи щелкните правой кнопкой мыши новую учетную запись службы SAP Kerberos<SID> и выберите Свойства.
Выберите вкладку Учетная запись.
В разделе Параметры учетной записи выберите Эта учетная запись поддерживает 256-битное шифрование AES Kerberos.
Выберите OK.
Внимание!
Включение 256-битного шифрования AES Kerberos может вызвать проблемы у других клиентов, таких как графический пользовательский интерфейс SAP, которые запрашивают билеты Kerberos из этой учетной записи Active Directory. Это связано с тем, что изменяется список доступных методов шифрования, и другие клиенты больше не имеют общего шифра шифрования. Проверьте журналы Active Directory, чтобы определить, какие методы шифрования используют все клиенты, затем вручную обновите свойство msDS-SupportedEncryptionTypes
, указав правильное значение. После обновления параметр шифрования AES 256 должен появиться автоматически без необходимости выбора вручную. Дополнительные сведения см. в статье Расшифровка выбора поддерживаемых типов шифрования Kerberos в блоге базовой инфраструктуры и сообщества.
Настройка безопасных сетевых коммуникаций с помощью аутентификации единого входа Kerberos в SAP
Выполните следующие действия в качестве администратора SAP Basis в графическом пользовательском интерфейсе SAP.
Чтобы запустить мастер единого входа SAP, введите SNCWIZARD в поле Команда.
На странице мастера Начало выберите Продолжить.
Примите значение по умолчанию для удостоверения SNC системы и выберите Продолжить.
На странице Параметры профиля по умолчанию выберите Продолжить.
Выберите Закрыть.
Выйдите из системы SAP и перезапустите сервер приложений SAP.
Войдите в графический интерфейс SAP и снова запустите SNCWIZARD.
На странице Начало выберите Продолжить.
На странице Учетные данные Kerberos выберите Продолжить.
В разделе Конфигурация SPNEGO выберите Отображение/изменение, чтобы переключиться в режим редактирования, затем выберите Добавить.
Введите следующие значения:
- Имя субъекта-пользователя: Kerberos<SID>@DOMAIN, где Kerberos<SID> — это имя пользователя учетной записи службы, а DOMAIN — полное имя домена Active Directory в верхнем регистре; например, KerberosA4H(at)CORP.BESTRUN.COM.
- Пароль и Подтверждение пароля: пароль, введенный при создании учетной записи Active Directory.
Выберите Проверить пользователя в Active Directory, чтобы проверить пользователя, затем выберите Выйти.
Выберите Сохранить.
На странице Учетные данные X.509 выберите Пропустить.
Выберите Завершено.
Затем сопоставьте имя пользователя SNC (на основе имени пользователя домена Windows) с именем субъекта-пользователя SAP.
В графическом интерфейсе пользователя SAP выполните транзакцию SU01.
Введите идентификатор тестового пользователя (например, JDAVIS) в поле Пользователь, затем выберите Изменить.
Перейдите на вкладку SNC.
Введите имя субъекта-пользователя в поле Имя SNC, например, p:CN=JDAVIS(at)CORP.BESTRUN.COM.
Выберите Сохранить.
Настройка локального шлюза данных для ограниченного делегирования Kerberos
По умолчанию локальный шлюз работает как учетная запись локальной службы компьютера NT Service\PBIEgwService
. Чтобы использовать ограниченное делегирование Kerberos с расширениями протокола S4U, шлюз должен работать как учетная запись службы в домене.
Выполните следующие действия в качестве администратор домена.
На компьютере узла контроллера домена вернитесь к оснастке «Пользователи и компьютеры Active Directory».
В своем домене щелкните правой кнопкой мыши Пользователи и выберите Создать>Пользователь.
Введите GatewaySvc в качестве полного имени и имени пользователя для входа.
Выберите Далее.
Введите и подтвердите пароль для новой учетной записи службы домена.
Выберите как Пользователь не может изменить пароль, так и Срок действия пароля никогда не истекает.
Выберите Далее, затем выберите Готово.
Создав учетную запись службы домена, далее определите ее имя субъекта-службы и включите для нее ограниченное делегирование Kerberos.
В окне PowerShell с повышенными привилегиями введите следующую команду, чтобы создать имя субъекта-службы для новой учетной записи службы. Замените <имя узла OPDG> на имя узла локального шлюза данных, а <домен> — на имя вашего домена. Узнать имя узла можно, введя команду
hostname
в командной строке.setspn –s gateway/<OPDG hostname> <domain>\GatewaySvc
В оснастке Пользователи и компьютеры Active Directory щелкните правой кнопкой мыши новую учетную запись службы и выберите Свойства.
Выберите вкладку Делегирование.
Выберите параметр Доверять этому пользователю делегирование только указанных служб и Использовать любой протокол проверки подлинности.
Выберите Добавить.
Выберите Пользователи или компьютеры.
Введите Kerberos<SID> в поле имен объектов, где <SID> — это идентификатор системы SAP, например A4H.
Выберите Проверить имена, затем выберите ОК.
Список разрешенных служб теперь содержит имя субъекта-службы системы SAP. Новая учетная запись службы шлюза может запросить билет службы только для системы SAP от имени распространяемого пользователя с расширением протокола Kerberos S4U2proxy.
- Выберите Выбрать все.
- Выберите OK.
- Выберите ОК во второй раз.
- Учетная запись службы локального шлюза данных должна быть предоставлена локальным политикам на узле локального шлюза данных. Выполните эту настройку с помощью редактора локальной групповой политики, запустив gpedit.msc из командной строки Администратор.
- Выберите элементы Политика локального компьютера ->Конфигурация компьютера ->Параметры Windows ->Параметры безопасности ->Локальные политики ->Назначение прав пользователя. Предоставьте учетной записи службы домена локального шлюза данных (например, CORP\GatewaySvc) действие локальной политики как части операционной системы, дважды щелкнув ее.
- Выберите Добавить пользователя или группу.
- Введите имя учетной записи службы домена локального шлюза данных (например, GatewaySvc) и выберите Проверить имена, чтобы преобразовать его в полное существующее имя. Выберите OK. Доменное имя учетной записи службы (например, CORP\GatewaySvc) теперь добавляется в список пользователей политики. Выберите ОК, чтобы применить новую конфигурацию.
- Повторите тот же шаг для политики Олицетворение клиента после проверки подлинности, дважды щелкнув ее. Выберите Добавить пользователя или группу и преобразуйте учетную запись службы локального шлюза данных в полное существующее имя с помощью параметра Проверить имена. Выберите OK.
- Имя учетной записи службы (например, CORP\GatewaySvc) теперь добавляется в список пользователей политики. Выберите OK. Закройте Редактор локальной групповой политики.
- Запустите приложение локального шлюза данных по ссылке на рабочем столе на узле шлюза или выполнив C:\Program Files\On-premises data gateway\EnterpriseGatewayConfigurator.exe. Выберите Войти, чтобы войти в качестве пользователя-системного администратора Power Platform, который зарегистрировал локальный шлюз данных в среде.
- Выберите Настройки службы в меню конфигуратора. Выберите Изменить учетную запись.
- Выберите Применить и Перезапустить.
- Введите имя учетной записи службы локального шлюза данных (например, CORP\GatewaySvc) и пароль. Выберите Настроить.
- Предоставьте учетную запись системного администратора Power Platform для входа, выбрав Войти.
- Выберите Миграция, восстановите или переключите существующий шлюз, чтобы восстановить регистрацию шлюза.
- Выберите кластер и экземпляр шлюза из раскрывающихся списков и укажите ключ восстановления, выбранный при первоначальной регистрации. Выберите Настроить.
- После завершения восстановления экземпляр службы локального шлюза данных использует учетную запись службы домена (например, CORP\GatewaySvc).
Установка и настройка криптографической библиотеки SAP
Для обмена данными SNC между локальным шлюзом данных и системой SAP на узле шлюза вместе с SAP NCo 3.1 должна быть установлена криптографическая библиотека SAP.
- Загрузите последнюю версию криптографической библиотеки SAP из раздела Загрузка программного обеспечения на портале поддержки SAP (требуется S-пользователь) и скопируйте файл библиотеки (sapcrypto.dll) в каталог установки локального шлюза данных на узле шлюза (C:\Program Files\On-premises data gateway). Щелкните правой кнопкой мыши файл sapcrypto.dll и выберите Свойства в контекстном меню.
- Перейдите на вкладку Сведения, чтобы проверить версию библиотеки. Она должна быть 8.5.25 или новее. Выберите OK.
- Создайте новый текстовый файл sapcrypto.ini в том же каталоге (C:\Program Files\On-premises data gateway) с таким содержимым: ccl/snc/enable_kerberos_in_client_role = 1.
- Сохраните файл.
- Создайте системную переменную среды CCL_PROFILE и присвойте ее значение пути файла конфигурации sapcrypto.ini. На узле шлюза запустите Панель управления и перейдите в раздел Система и безопасность ->Система. Выберите параметры системы Дополнительно.
- Выберите Переменные среды.
- В меню Системные переменные выберите Создать.
- Введите CCL_PROFILE в качестве имени переменной. В качестве значения переменной введите полный путь к файлу sapcrypto.ini, например C:\Program Files\On-premises data gateway\sapcrypto.ini. Выберите OK.
- Выберите ОК во второй раз.
Задание настройки FullDomainResolutionEnabled OPDG
Чтобы помочь локальному шлюзу данных при поиске пользователей Active Directory, необходимо задать значение конфигурации в параметрах локального шлюза данных.
- На узле шлюза откройте в редакторе файл Microsoft.PowerBI.DataMovement.Pipeline.GatewayCore.dll.config в установочной папке локального шлюза данных (C:\Program Files\On-premises data gateway).
- Найдите параметр FullDomainResolutionEnabled и задайте для него значение True.
- Выберите Перезапустить сейчас на вкладке Параметры службы конфигуратора локального шлюза данных, чтобы применить изменения.
Настройка сопоставления пользователей в 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
для связывания двух учетных записей.
- На узле шлюза откройте в редакторе файл Microsoft.PowerBI.DataMovement.Pipeline.GatewayCore.dll.config в установочной папке локального шлюза данных (C:\Program Files\On-premises data gateway).
- Найдите параметр ADUserNameReplacementProperty и задайте для него значение SAMAccountName.
- Найдите параметр ADUserNameLookupProperty и присвойте ему значение msDS-cloudExtensionAttribute1. Сохраните изменения в файл.
- Выберите Перезапустить сейчас на вкладке Параметры службы конфигуратора локального шлюза данных, чтобы применить изменения.
- На узле Контроллер домена выберите Пуск, затем выберите в меню пункт Инструменты администрирования Windows ->ADSI Edit. В редакторе ADSI перейдите в дереве объектов слева к разделу CN=Users в контексте именования домена по умолчанию. Щелкните правой кнопкой мыши объект тестового пользователя (например, CN=Jack Davis) и выберите Свойства из контекстного меню.
- Выберите атрибут msDS-cloudExtensionAttribute1 в списке и выберите Изменить.
- Введите имя участника-пользователя Microsoft Entra ID (например, jdavis@<domainname>.onmicrosoft.com) в поле Значение. Замените <domainname> на доменное имя клиента вашего Microsoft Entra ID, например bestruncorp. Выберите OK.
Создание потока Power Automate
Все локальные компоненты (система SAP, локальный шлюз данных и AD) теперь правильно настроены для распространения субъекта на основе Kerberos. На этом шаге создайте и запустите поток Power Automate для тестирования конфигурации.
Выполните вход в Power Automate на сайте https://make.powerautomate.com.
Выберите Мои потоки ->Создать поток ->Мгновенный облачный поток
Задайте имя потока, выберите Активировать поток вручную, затем выберите Создать.
Добавьте действие соединителя SAP ERP Вызов функции SAP (V3) в поток.
Если ни одно подключение SAP ERP еще не создано, появится предложение создать его. Если имеется существующее подключение, создайте новое.
- Тип аутентификации должен быть Microsoft Entra ID (с Kerberos).
- Шлюз данных должен быть локальным шлюзом данных, который был настроен в этом руководстве.
- Выберите Вход.
В действии 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" }
Если все прошло успешно, то можно ввести параметр REQUTEXT, в который можно ввести такое значение, как Привет, мир.
Сохраните и проверьте поток.