aboutsummaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorRafael Weingärtner <rafael@apache.org>2024-06-26 10:50:37 -0300
committerRafael Weingärtner <rafael@apache.org>2025-10-09 20:07:00 -0300
commita87bd3350d6ca989aece8b8764042bf3759623b7 (patch)
tree3cdf216403b13170b14b3df363d5102fac2eb0d5 /doc
parent2569e450eb0d38cd4567ff36713bf54f74265a0b (diff)
downloadkolla-ansible-a87bd3350d6ca989aece8b8764042bf3759623b7.tar.gz
kolla-ansible-a87bd3350d6ca989aece8b8764042bf3759623b7.zip
Customize the authentication error timeout page in modOIDC
There is a situation that happens when a user triggers an authentication in OpenStack that uses Identity federation, which leads users to a blank page with an error message that might not be that clear to users. If the user takes too long to enter his/her credentials in the login page of the IdP, the user sees a page saying that the authentication took too much and that the user must try it again. However, if the user tries again, she/he is already logged in to the IdP, and then the user gets access direct to Horizon. This whole process can be a bit confusing for users, and they saw an error page after the login, which leads them to think that there was an error in the authentication, but then when he/she tries again, everything just works. Therefore, to handle such cases we propose Kolla-ansble to use a custom error page that has an automatic redirect if the error happens. The timeout is managed by "OIDCStateTimeout" variable. The default (which is what we have in place now) is 300 seconds (5 minutes): https://github.com/zmartzone/mod_auth_openidc/blob/d13ee0e4bd2cef94c4d2b55829310175288e0bdf/src/mod_auth_openidc.c#L651). I would not recommend the increase of this timeout though. I would rather decrease this value; 5 minutes to such an operation is already too much. This variable can be overridden via wsgi-keystone.conf file. To customize the error page we have the following variable "OIDCHTMLErrorTemplate". The template is processed in the following line: https://github.com/zmartzone/mod_auth_openidc/blob/f2b8315cd48faba04320e9a06fc52b57f0989dcb/src/util.c#L1619. As we can see, there is no default page. The default HTML is hardcoded in C++, and the template requires two "%s" placeholders that will receive the title of the error message and the full description of the error. Change-Id: Iebda3ca7a5f9cef7e5e0930fc4f70764774d6ed5 Signed-off-by: Rafael Weingärtner <rafael@apache.org>
Diffstat (limited to 'doc')
-rw-r--r--doc/source/reference/shared-services/keystone-guide.rst14
1 files changed, 14 insertions, 0 deletions
diff --git a/doc/source/reference/shared-services/keystone-guide.rst b/doc/source/reference/shared-services/keystone-guide.rst
index d0958a3f9..b92230dcb 100644
--- a/doc/source/reference/shared-services/keystone-guide.rst
+++ b/doc/source/reference/shared-services/keystone-guide.rst
@@ -104,6 +104,20 @@ Example for Keycloak shown below:
keystone_federation_oidc_additional_options:
OIDCTokenBindingPolicy: disabled
+When using OIDC, operators can also use the following variable
+to customize the delay to retry authenticating in the IdP if the
+authentication has timeout:
+
+``keystone_federation_oidc_error_page_retry_login_delay_milliseconds``
+ Default is 5000 milliseconds (5 seconds).
+
+It is also possible to override the ``OIDCHTMLErrorTemplate``,
+the custom error template page via:
+
+.. code-block:: yaml
+
+ {{ node_custom_config }}/keystone/federation/modoidc-error-page.html
+
Identity providers configurations
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~