我对PeopleSoft WebServer和Apache OIDC模块以及用于SSO身份验证的Azure Identity进行了非常独特的集成。这是我当前的性能测试设置:
下面的流程显示了带有PeopleSoft的Apache OIDC的初始化和重定向是如何发生的。
浏览器->负载均衡器-> Apache(OIDC)-> <-Azure->(Apache中的标头翻译)-> Weblogic Server
因此,总共有4个Apache实例和12个weblogic实例在这4个VM上运行。
现在,在当前的产品中,我具有与LB集成的用于身份验证的CAMS SSO,并且我们在LB节点中添加了weblogic服务器(12),该服务器在高峰时间内用时少于5秒为超过10,000个用户提供服务登录时间SLA。
因此,我们计划使用带有Apache OIDC模块的Azure SSO,将我们的Apache(4)节点添加到了LB,并且在通过Azure进行身份验证后,Apache会将声明传递给后端Weblogic服务器。
但是,瓶颈是登录的响应时间,因为使用上述架构我们无法扩展超过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来减少登录时间,因为将更多的VM添加到架构中将无济于事,因为设置等效于Production。任何帮助将不胜感激!