Как масштабировать модуль Apache OIDC для утверждений Azure AD с бэкэнд-серверами PeopleSoft - PullRequest
0 голосов
/ 22 марта 2019

У меня очень уникальная интеграция PeopleSoft WebServer с модулем Apache OIDC и Azure Identity для аутентификации SSO. Это моя текущая Настройка тестирования производительности :

  • Количество виртуальных машин - 4
  • CPU / RAM - 4 ВЦП / 32 ГБ
  • Weblogic - 12 экземпляров

Следующий поток показывает, как происходит аутентификация и перенаправление для Apache OIDC с PeopleSoft.

Браузер -> Балансировщик нагрузки -> Apache (OIDC) -> <-Azure -> (перевод заголовка в Apache) -> Weblogic Server

Итак, у меня есть 4 экземпляра Apache и 12 экземпляров weblogic, работающих на этих 4 виртуальных машинах.

Теперь в текущем производстве у меня есть CAMS SSO для аутентификации, который интегрирован с LB, и мы добавили наши weblogic-серверы (12) в узлы LB, которые обслуживают более 10 000 пользователей в час пик менее чем за 5 секунд. время входа SLA.

Поскольку мы планируем перейти с единого входа Azure с модулем Apache OIDC, мы добавили наши узлы Apache (4) в LB, и после проверки подлинности с помощью Azure Apache передаст заявки на серверные веб-логические серверы.

Но узким местом является время отклика при входе в систему, поскольку мы не можем масштабировать более 1000 пользователей с вышеупомянутой архитектурой и получать большое время отклика. Мы могли видеть, что он достигает более 11 секунд только для входа в систему, а остаток транзакции или навигации меньше 4 секунд.

PFB Фрагмент Apache httpd.conf:

LoadModule authn_core_module modules/mod_authn_core.so
LoadModule authz_host_module modules/mod_authz_host.so
LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
LoadModule authz_user_module modules/mod_authz_user.so
LoadModule authz_core_module modules/mod_authz_core.so
LoadModule access_compat_module modules/mod_access_compat.so
LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule mime_module modules/mod_mime.so
LoadModule env_module modules/mod_env.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule setenvif_module modules/mod_setenvif.so
LoadModule version_module modules/mod_version.so
LoadModule ssl_module modules/mod_ssl.so
LoadModule headers_module modules/mod_headers.so
LoadModule status_module modules/mod_status.so
LoadModule autoindex_module modules/mod_autoindex.so
LoadModule weblogic_module  modules/mod_wl_24.so
LoadModule auth_openidc_module modules/mod_auth_openidc.so
LoadModule mpm_event_module modules/mod_mpm_event.so

Listen 443
ServerName *****
SSLEngine On
SSLCertificateFile ****
SSLCertificateKeyFile ****

OIDCProviderMetadataURL <Microsoft URL>
OIDCRedirectURI <Vanity URL>
OIDCResponseType id_token
OIDCCacheShmMax 50000
OIDCSessionMaxDuration 1200
OIDCStateMaxNumberOfCookies 7
OIDCClientID ******
OIDCClientSecret ******
OIDCCryptoPassphrase *****

<Location />
  AuthType openid-connect
  Require valid-user
  RequestHeader set AUTH-USER "%{OIDC_CLAIM_samaccountname}e"
</Location>

<IfModule mod_weblogic.c>
   WebLogicCluster 123.123.123.123:8000,123.123.123.123:8020,123.123.123.123:8030
   MatchExpression /
   WLCookieName SITE-PSJSESSIONID
</IfModule>

<IfModule mpm_event_module>
    ServerLimit 16
    StartServers 8
    ThreadLimit 256
    ThreadsPerChild 128
    MinSpareThreads 512
    MaxSpareThreads 2048
    MaxRequestWorkers 2048
    MaxConnectionsPerChild 0
    MaxKeepAliveRequests 1000
</IfModule>



У нас нет опыта в определении размера Apache для одновременной загрузки, и вышеупомянутая настройка была основана на результатах PT. Но не смог точно настроить его так, чтобы получить оптимальные результаты.

Итак, я не уверен, как мне масштабировать Infra, чтобы уменьшить время входа в систему, так как добавление большего количества виртуальных машин в archicture не поможет, так как установка эквивалентна производственной. Любая помощь будет оценена!

...