Microsoft Entra ID (с сертификатами) — единый вход
В этом руководстве описывается настройка соединителя, чтобы пользователи могли получать доступ к данным SAP и запускать RFC (дистанционный вызов функций) в Microsoft Power Platform, используя свой Microsoft Entra ID для проверки подлинности. Этот процесс включает в себя настройку как открытых, так и частных сертификатов для безопасного обмена данными.
Внимание!
Эта статья предназначена только для настройки обоснования концепции. Настройки и рекомендации не предназначены для использования в рабочей среде. За дополнительными сведениями по этой теме обращайтесь в отдел безопасности, к внутренним политикам и к партнеру Microsoft.
Предварительные требования
Убедитесь, что у вас уже:
- Настроено подключение SAP. Обязательно используйте июльскую версию 2024 года — 3000.230 или более позднюю локального шлюза данных.
- Настроены безопасные сетевые коммуникации Secure Network Communications.
Вы также должны быть знакомы с технологиями открытого и закрытого ключей.
Сертификат
Мы создаем пример самозаверяющего корневого сертификата, аналогичного сертификатам, предоставляемым центром сертификации. Вы можете использовать его для выпуска токенов для своих пользователей.
Создание демонстрационной инфраструктуры открытых ключей
Разверните документацию Настройка безопасных сетевых коммуникаций, реализовав вторую половину нашей демонстрационной инфраструктуры открытых ключей (PKI).
Создайте структуру папок.
cd C:\
mkdir pki-certs
cd C:\pki-certs\
mkdir signingUsersCert
mkdir userCerts
Создайте файлы расширения, чтобы убедиться, что наши сертификаты созданы с правильными метаданными и ограничениями.
signingUsersCert/extensions.cnf
subjectKeyIdentifier=hash
authorityKeyIdentifier=keyid:always,issuer
basicConstraints = critical,CA:true,pathlen:0
keyUsage = cRLSign, keyCertSign
userCerts/extensions.cnf
subjectKeyIdentifier=hash
authorityKeyIdentifier=keyid,issuer
keyUsage = digitalSignature, keyEncipherment
extendedKeyUsage = clientAuth
Создайте необходимые файлы index.txt
и serial
для отслеживания подписанных сертификатов.
# Create the necessary serial and index files if they don't exist
if (-Not (Test-Path "signingUsersCert\index.txt")) { New-Item -Path "signingUsersCert\index.txt" -ItemType File }
if (-Not (Test-Path "signingUsersCert\serial")) { Set-Content -Path "signingUsersCert\serial" -Value "0001" }
Сгенерируйте наш промежуточный сертификат для пользователей.
openssl genrsa -out signingUsersCert/users.key.pem 2048
# Create Certificate Signing Request
openssl req -new -key signingUsersCert/users.key.pem -sha256 -out signingUsersCert/users.csr.pem -subj "/O=Contoso/CN=Users Intermediate Cert"
# Sign the certificate with the rootCA cert.
openssl x509 -req -in signingUsersCert/users.csr.pem -days 3650 `
-CA rootCA/ca.cert.pem -CAkey rootCA/ca.key.pem `
-out signingUsersCert/users.cert.pem `
-extfile signingUsersCert/extensions.cnf -extensions v3_ca `
-CAserial rootCA/serial
Создание пользовательских сертификатов
Выполните следующую команду, чтобы сгенерировать и подписать сертификат для пользователя с именем SAP TESTUSER01
:
# Create the private key.
openssl genrsa -out userCerts/TESTUSER01.key.pem 2048
# Generate the certificate signing request
openssl req -key userCerts/TESTUSER01.key.pem -new -sha256 -out userCerts/TESTUSER01.csr.pem -subj "/CN=TESTUSER01"
# Sign the certificate + add extensions with the intermediate cert.
openssl x509 -req -days 365 -in userCerts/TESTUSER01.csr.pem -sha256 `
-CA signingUsersCert/users.cert.pem -CAkey signingUsersCert/users.key.pem `
-out userCerts/TESTUSER01.cert.pem -extfile userCerts/extensions.cnf `
-CAserial signingUsersCert/serial
Заметка
CN=TESTUSER01 должен быть первым параметром.
Теперь у вас есть корневой сертификат, промежуточный сертификат SNC (сокращение от Secure Network Communications), промежуточный сертификат пользователей и сертификат для идентификации сертификата пользователя.
Проверьте цепочку с помощью следующей команды:
$ openssl verify -CAfile rootCA/ca.cert.pem -untrusted signingUsersCert/users.cert.pem userCerts/TESTUSER01.cert.pem
userCerts/TESTUSER01.cert.pem: OK
Магазин Windows
Выполните следующие действия, чтобы добавить сертификат для подписи пользователей и цепочку сертификатов в Магазин Windows.
- Сгенерируйте файл .p12 из сертификата для подписи пользователей и закрытого ключа.
openssl pkcs12 -export -out user_signing_cert.p12 -inkey .\signingUsersCert\users.key.pem -in .\signingUsersCert\users.cert.pem
- Откройте диспетчер сертификатов Windows:
- Нажмите
Win + R
, введитеcertlm.msc
и нажмите клавишу ВВОД.
- Нажмите
- Импортируйте общедоступный сертификат корневого центра сертификации.
- Импортируйте в
Trusted Root Certification Authorities
.
- Импортируйте в
- Импорт сертификата пользователя + ключа:
- В Диспетчере сертификатов перейдите к соответствующему хранилищу сертификатов (например, Персональный).
- Щелкните правой кнопкой мыши и выберите
All Tasks > Import
. - Следуйте указаниям мастера, чтобы импортировать файл
.p12
, обязательно пометив ключ как экспортируемый, чтобы OPDG (сокращение от On Premises Data Gateway, локальный шлюз данных ) мог использовать его для шифрования данных. - Щелкните правой кнопкой мыши
Users Intermediate Cert
и выберитеAll Tasks>Manage Private Keys...
.
- Добавьте пользователя
NT SERVICE\PBIEgwService
в список пользователей с разрешениями. - Проверьте имя субъекта сертификата в хранилище сертификатов Windows:
Get-ChildItem -Path Cert:\LocalMachine\My | Where-Object { $_.Subject -like "*Users Intermediate Cert*" } | Format-List -Property Subject
Сопоставление Entra ID с пользователем SAP
Сертификаты X.509 можно сопоставить с пользователями явно, используя правила, или добавив промежуточный сертификат пользователя в SAP.
Явное сопоставление сертификатов X.509 с пользователями
Явное сопоставьте небольшое число пользователей Entra ID с пользователями SAP.
Перейдите в графическом интерфейсе пользователей SAP в T-Code SM30
.
Войдите в таблицу VUSREXTID
и выберите кнопку ведения.
Выберите вариант DN
при появлении запроса для Type of ACL
.
Выберите New Entry
и введите CN=TESTUSER01@CONTOSO.COM
(заменив содержимое для собственного имени участника-пользователя) для внешнего идентификатора. Убедитесь, что CN стоит на первом месте. Выберите имя участника-пользователя в поле имени пользователя; и, наконец, отметьте опцию Activated
и сохраните результаты.
Заметка
НЕ ВКЛЮЧАЙТЕ префикс p:
.
Сопоставление сертификатов X.509 с пользователями с помощью правил
Используйте Правила сертификации, чтобы упростить массовое сопоставление пользователей Entra ID с пользователями SAP.
Убедитесь, что для параметра профиля login/certificate_mapping_rulebased
задано текущее значение 1
.
Заметка
Этот метод сопоставления не сохраняется между перезапусками.
Затем создайте следующее правило в t-code CERTRULE
Заметка
Подождите две минуты, чтобы убедиться, что срок действия кэшированных подключений к SAP истек, затем повторно проверьте подключение. В противном случае вы можете столкнуться с ошибкой Не найден подходящий пользователь SAP для сертификата клиента X.509.
Промежуточный сертификат пользователя
Чтобы добавить промежуточный сертификат пользователя в SAP, выполните следующие действия:
- Откройте t-code
STRUST
и дважды щелкнитеSTRUST
, чтобы добавить файл открытого сертификата users.cert.pem в поле. - В графическом пользовательском интерфейсе SAP перейдите к коду транзакции STRUST.
- Если пункт SNC SAPCryptolib помечен красным крестиком, щелкните правой кнопкой мыши и выберите Создать.
- Выберите SNC SAPCryptolib , а затем дважды щелкните свой собственный сертификат.
- Выберите Импортировать сертификат и выберите общедоступный сертификат
signingUsersCert\users.cert.pem
. - Выберите Добавить в список сертификатов.
Обновление системы SAP
Добавьте SsoCertificateSubject
в параметры системы SAP.
"SsoCertificateSubject": "CN=Users Intermediate Cert, O=Contoso",
Также включите
"SncSso": "On"
Замените подключение новым, которое использует Microsoft Entra ID (using certificates)
для входа в SAP с вашей учетной записью Microsoft Entra ID.
Внимание!
Удалите временные открытый и закрытый ключи TESTUSER01 по завершении работы с этим руководством.
Внимание!
Обеспечьте безопасную обработку и последующее удаление закрытых ключей после завершения этой настройки, чтобы сохранить целостность безопасности.
Подробнее: Вопросы и ответы по локальному шлюзу данных