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


Настройка Secure Network Communications

Безопасные сетевые коммуникации Secure Network Communications (SNC) повышает безопасность интеграции SAP с Power Platform за счет шифрования данных между локальным шлюзом данных и системой SAP. В этой статье описывается настройка SNC в качестве доказательства концепции.

Внимание!

Представленные в этой статье настройки и рекомендации не предназначены для использования в рабочей среде. Проконсультируйтесь со своей командой по безопасности, внутренними политиками и партнером Microsoft для получения рекомендаций по настройке SNC в производственной среде.

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

  1. У вас есть подключение SAP, использующее соединитель SAP ERP.
  2. У вас есть доступ к экземпляру SAP, который можно перезапустить и администрировать.
  3. Графический пользовательский интерфейс SAP установлен и настроен.
  4. Вы знакомы с технологиями открытого и закрытого ключей.
  5. OpenSSL установлен и настроен. Если у вас Git для Windows, добавьте C:\Program Files\Git\usr\bin\ в переменную PATH системы, чтобы можно было использовать команду openssl.

Установка библиотеки шифрования SAP Common Crypto Library

Общая криптографическая библиотека SAP Common Crypto Library позволяет соединителю SAP для Microsoft .NET (NCo) шифровать обмен данными между локальным шлюзом данных и SAP. Чтобы извлечь библиотеку, вам понадобится проприетарная утилита распаковки под названием SAPCAR.

Получение SAPCAR

  1. Перейдите в центр загрузки программного обеспечения SAP и войдите в систему с учетными данными SAP.
  2. Выполните поиск по запросу SAPCAR и выберите последнюю неархивированную версию.
  3. Выберите операционную систему.
  4. Загрузите файл .EXE в папку C:\sap\SAR.

Получение библиотеки шифрования SAP Common Crypto Library

  1. В Центре загрузки программного обеспечения SAP выполните поиск по запросу "COMMONCRYPTOLIB" и выберите последнюю версию.
  2. Выберите операционную систему.
  3. Загрузите файл . SAR с самой последней датой выпуска в папку C:\sap\SAR.

Извлечение библиотеки шифрования SAP Common Crypto Library

  1. Откройте PowerShell и перейдите в папку C:\sap\SAR.

  2. Введите следующую команду, заменив xxxx своими значениями:

    .\SAPCAR_xxxx.EXE -xvf .\SAPCRYPTOLIBP_xxxx.SAR -R .\..\libs\sapcryptolib
    
  3. Убедитесь, что sapgenpse.exe находится в каталоге C:\sap\libs\sapcryptolib.

Создание сертификатов

Теперь, когда вы установили библиотеку шифрования SAP Common Crypto Library, вы можете создавать сертификаты для установления доверия и шифрования между локальным шлюзом данных и системой SAP.

Предупреждение

Этот метод предназначен только для демонстрационных целей и не рекомендуется для производственных систем. Для производственных систем обратитесь к внутреннему руководству PKI или группе безопасности.

В этом примере наши сертификаты имеют структуру, показанную на следующей схеме. Корневой ЦС [O=Contoso, CN=Корневой ЦС] подписывает сертификат шифрования SNC [O=Contoso, CN=SNC] и пользовательские сертификаты [O=Contoso, CN=UserIDs]. Эта статья посвящена настройке сертификатов корневого центра сертификации и SNC.

Схема, показывающая поток сертификатов из корневого ЦС до сертификата шифрования, сертификата подписи и идентификаторов пользователей.

Создание сертификатов

  1. Настройте структуру папок:

    mkdir rootCA
    mkdir sncCert
    
    # Create the necessary serial and index files if they don't exist
    if (-Not (Test-Path "rootCA\index.txt")) { New-Item -Path "rootCA\index.txt" -ItemType File }
    if (-Not (Test-Path "rootCA\serial")) { Set-Content -Path "rootCA\serial" -Value "01" }
    
  2. Создайте корневой ЦС:

    openssl genpkey -algorithm RSA -out rootCA/ca.key.pem -pkeyopt rsa_keygen_bits:2048
    openssl req -x509 -new -key rootCA/ca.key.pem -days 7305 -sha256 -extensions v3_ca -out rootCA/ca.cert.pem -subj "/O=Contoso/CN=Root CA"
    
  3. Создайте сертификат SNC:

    openssl genrsa -out sncCert/snc.key.pem 2048
    openssl req -key sncCert/snc.key.pem -new -sha256 -out sncCert/snc.csr.pem -subj "/O=Contoso/CN=SNC"
    
  4. Создайте конфигурационный файл OpenSSL sncCert/extensions.cnf для подписи:

    subjectKeyIdentifier = hash
    authorityKeyIdentifier = keyid,issuer
    basicConstraints = critical,CA:false
    keyUsage = critical,digitalSignature,keyEncipherment,dataEncipherment
    extendedKeyUsage = clientAuth,emailProtection
    
  5. Подпишите сертификат SNC в корневом центре сертификации:

    openssl x509 -req `
       -in sncCert/snc.csr.pem `
       -CA rootCA/ca.cert.pem `
       -CAkey rootCA/ca.key.pem `
       -CAcreateserial `
       -out sncCert/snc.cert.pem `
       -days 3650 `
       -sha256 `
       -extfile sncCert\extensions.cnf `
       -extensions v3_leaf
    

Создание личной безопасной среды

Создайте персональную безопасную среду (PSE) для локального шлюза данных. Библиотека NCo ищет сертификат SNC внутри PSE.

  1. Создайте контейнер PKCS#12:

    openssl pkcs12 -export -out snc.p12 -inkey sncCert\snc.key.pem -in sncCert\snc.cert.pem -certfile rootCA\ca.cert.pem
    
  2. Создайте переменную среды SECUDIR:

    1. Откройте Свойства системы: в проводнике щелкните правой кнопкой мыши Этот компьютер, затем выберите Свойства>Дополнительные параметры системы.
    2. Выберите Переменные среды.
    3. В меню Системные переменные выберите Создать.
    4. Задайте имя переменной как SECUDIR.
    5. Задайте значение C:\sapsecudir.
    6. Выберите OK.
  3. Импортируйте контейнер PKCS#12 в PSE:

    C:\sap\libs\sapcryptolib\sapgenpse.exe import_p12 -p SAPSNCSKERB.pse C:\pki-certs\snc.p12
    

Настройка SAP для SNC

  1. Войдите в графический пользовательский интерфейс SAP.

  2. Перейдите к коду транзакции SNC0.

  3. Введите E в качестве рабочей области.

  4. Выберите Создать запись на верхней панели и введите необходимую информацию.

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

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

  6. Вернитесь на домашнюю страницу графического пользовательского интерфейса SAP.

  7. Перейдите к коду транзакции RZ10.

  8. Задайте следующие параметры профиля:

    snc/accept_insecure_gui: 1
    snc/accept_insecure_rfc: 1
    snc/enable: 1
    snc/extid_login_diag: 1
    snc/extid_login_rfc: 1
    snc/gssapi_lib: $(SAPCRYPTOLIB)
    snc/identity/as: p:CN=ID3, O=Contoso
    snc/permit_insecure_start: 1
    snc/data_protection/max: 3```
    
    
  9. Сохраните параметры профиля и перезапустите систему SAP.

Обмен сертификатами между SAP и локальным шлюзом данных

Для установления доверия необходимо обменяться сертификатами между локальным шлюзом данных и SAP.

Добавление сертификата SNC шлюза в SAP

  1. В графическом пользовательском интерфейсе SAP перейдите к коду транзакции STRUST.
  2. Если пункт SNC SAPCryptolib помечен красным крестиком, щелкните его правой кнопкой мыши и выберите Создать.
  3. В противном случае дважды щелкните SNC SAPCryptolib, затем дважды щелкните Собственный сертификат.
  4. Выберите Импортировать сертификат и выберите общедоступный сертификат sncCert\snc.cert.pem.
  5. Выберите Добавить в список сертификатов.

Добавление сертификата SNC SAP в локальный шлюз данных

  1. В графическом пользовательском интерфейсе SAP перейдите к коду транзакции STRUST.

  2. Дважды щелкните SNC SAPCryptolib, затем дважды щелкните Собственный сертификат.

  3. Экспортируйте открытый сертификат.

  4. Переместите открытый сертификат на компьютер шлюза (например, C:\sap\contoso-public-key.crt).

  5. Импортируйте сертификат в PSE шлюза:

    C:\sap\libs\sapcryptolib\sapgenpse.exe maintain_pk -p SAPSNCSKERB.pse -v -a C:\pki-certs\sncCert\sapkerb.public.cert
    

Проверка безопасного подключения

Следуйте инструкциям, чтобы проверить безопасное соединение. После успешного завершения теста можно приступать к внедрению SNC в рабочую среду.

  1. Создайте мгновенный поток в Power Automate.

  2. Добавьте действие SAP ERP Call Function.

  3. Добавьте следующие параметры SNC в строку Подключение SAP:

    {
    "AppServerHost": "xxx",
    "Client": "xx",
    "SystemNumber": "xx",
    "LogonType": "ApplicationServer",
    "SncLibraryPath": "C:\\sap\\libs\\sapcryptolib\\sapcrypto.dll",
    "SncMyName": "p:CN=SNC, O=Contoso",
    "SncPartnerName": "p:CN=ID3, O=Contoso",
    "SncQop": "Default",
    "UseSnc": "true",
    "SncSso": "Off"
    }```
    
    
  4. Протестируйте соединение с помощью функции RFC STFC_CONNECTION.

    Снимок экрана, показывающий результаты теста в потоке Power Automate.

Внимание!

Убедитесь, что вы безопасно работаете с закрытыми ключами и удалите их по завершении этой настройки.

Следующий шаг

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