使用Apache mod auth openidc模块时重定向循环

问题描述

我们已在连接到Okta OIDC的Apache服务器中使用mod auth openidc模块。 登录到okta后,我们将获得多个重定向,重新回到重定向,然后再次回到okta。 类似于以下问题:

如本期所述。 https://github.com/zmartzone/mod_auth_openidc/issues/181

我已确保redirect_uri与实际的网址页面加载网址分开

My set up is exactly as below with a vanity redirection url which is protected 
# OIDCRedirectURI is a vanity URL that must point to a path protected by this module but must NOT 
point to any content
OIDCRedirectURI https://www.example.com/example/redirect_uri
OIDCCryptoPassphrase <password>

<Location /example/>
   AuthType openid-connect
   Require valid-user
   ProxyPass        backendangular/ 
   ProxyPassReverse backendangular/
</Location>

解决方法

启用粘性会话

当拥有两个带有负载均衡器的apache后端服务器时,我们面临着连续循环重定向的类似挑战。

Load Balancer配置了Round Robin,第一台服务器进行了验证,但是下一个请求转到了另一个服务器,该服务器再次称为authenticatio。

我们修复了在负载均衡器上启用粘性会话的问题

,

我们在Apache服务器之前安装了CDN。 CDN正在缓存所有内容,因此cookie设置不正确。 CDN尊重所有标头,例如Apache的nocache标头参数。

不添加如下所示的缓存头即可解决此问题。

filesMatch "\.(html|htm|js|css)$">
   FileETag None
    <ifModule mod_headers.c>
    Header unset ETag
 Header set Cache-Control "max-age=0,no-cache,no-store,must-revalidate"
 Header set Pragma "no-cache"
 Header set Expires "Wed,11 Jan 1984 05:00:00 GMT"
  </ifModule>
  </filesMatch>