В первой части я описывал способы организации доступа пользователей к системе SAP. Во второй части опишу способы активации протокола HTTPS — SAP Web Dispatcher и nginx.
SAP Web Dispatcher – это один из способов переключения на протокол HTTPS с централизованным хранением SSL-сертификата.
В этом случае подключение выполняется по следующей схеме:
SAP Web Dispatcher работает на сервере sap. Система SAP ERP PRD (PRD) работает на сервере sapprd, SAP CRM PRD (CRP) на сервере sapcrm, Solution Manager (SMP) на сервере sapsm.
Данная схема позволит реализовать вариант, когда пользователь открывает ссылку https://sap:44301/fiori и попадает на сервер sapprd. Ссылка https://sap:44310/crm позволит работать с сервером sapcrm, а ссылка https://sap:44320/crm позволит работать с sapsm.
Для такой настройки в SAP Web Dispatcher нужны следующие настройки:
1 2 3 4 5 6 7 8 9 10 |
# SAP Web Dispatcher Ports icm/server_port_0 = PROT=HTTPS,PORT=44301 icm/server_port_1 = PROT=HTTPS,PORT=44310 icm/server_port_2 = PROT=HTTPS,PORT=44320 # Backend System wdisp/system_0 = SID=PRD, MSHOST=sapprd, MSPORT=8101, SRCSRV=*:44301, CLIENT=400 wdisp/system_1 = SID=CRP, MSHOST=sapcrp, MSPORT=8101, SRCSRV=*:44310, CLIENT=400 wdisp/system_2 = SID=SMP, MSHOST=sapsm, MSPORT=8101, SRCSRV=*:44320, CLIENT=001 |
В разделе Backend System указываем имя хоста, на котором работает Message Server системы и номер порта (его значение определением параметра ms/server_port_0 можно узнать в профиле системы SAP). Кроме того, имеется возможность сразу указать номер манданта для регистрации пользователя. Это актуально в случае работы на сервере разработок, когда параметр системы login/system_client указывает на мандант с настроек (действует на SAP Logon), а браузером надо заходить в тестовый мандант (в окне входа в Fiori нет возможности указать мандант для входа).
Конечно для активации HTTPS нужна библиотека SAP Crypto и сертификат в файле sec/SAPSSLS.pse.
NGINX – обратный прокси сервер.
Отличительной возможностью использования nginx является возможность применения с другим веб-сервером (например Apache). Кроме того появляется возможность использовать бесплатные SSL-сертификат от Let’s Encrypt.
Для реализации такого сценария необходимо следующее:
На внешнем DNS-сервере создать отдельные А-записи для серверов sapprd, sapcrm, sapsm и site на белый IP-адрес. На внутреннем DNS-сервере соответственно указывается адрес 192.168.1.1
В настройках nginx создаем отдельные файлы для каждого сервера в каталоге sites-available с соответствующей ссылкой в sites-enabled следующего вида
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
server { listen 80; listen [::]:80; server_name sapprd.office.kz; access_log /var/log/nginx/cloud-access.log; error_log /var/log/nginx/cloud-error.log; return 301 https://$server_name/fiori; } server { listen 443; listen [::]:443; server_name sapprd.office.kz; ssl on; ssl_certificate /etc/ssl/ sapprd.office.kz / sapprd.office.kz.cer; ssl_certificate_key /etc/ssl/ sapprd.office.kz / sapprd.office.kz.key; location /.well-known/acme-challenge/ { root /srv/www/sapprd/; } location / { proxy_pass http://sapprd:8001; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; } } |
Создать SSL-сертификат и автоматизировать его обновление (для этого нужен раздел /.well-known/acme-challenge/) и каталог /srv/www/sapprd/)
Аналогичные настройки нужны для каждого сервера.
В этом случае пользователь может открыть ссылку http://sapprd.office.kz. Его перенаправит на https://sapprd.office.kz/fiori, где откроется окно авторизации. При необходимости также можно указать номер клиента (https://$server_name/fiori?sap-client=300;)