Replies: 8 comments
-
We were able to determine that this is being caused by FreeIPA's OTP feature. Turning off OTP allows authentication to succeed. How can we configure mod_gssapi such that it will work properly with FreeIPA's OTP functionality? |
Beta Was this translation helpful? Give feedback.
-
The OTP is required on the server side, and mod_auth_gssapi has no way to provide an OTP. @abbra do you know of any configuration, client side, perhaps in krb5.conf, that could change gssapi's behavior in this case? |
Beta Was this translation helpful? Give feedback.
-
There is no such configuration. What I'd like to know is whether OTP is the only method allowed for this user on IPA side or not. If it is the only method, then nothing can be done because using password is not enough, one have to provide a FAST channel and GSSAPI is not able to do so. |
Beta Was this translation helpful? Give feedback.
-
Current FreeIPA configuration for the group of users affected by this is OTP only, as we want to enforce 2FA for applications that this group of users is authenticating in to. There was mention in #151 about using |
Beta Was this translation helpful? Give feedback.
-
Using OTP needs a FAST channel which is not supported for GSSAPI, so this is not going to work at all. The way how IPA Web UI does it is by performing a series of manual Neither mod_intercept_form_submit/nor mod_auth_form were designed for such usecase at all. |
Beta Was this translation helpful? Give feedback.
-
If you want to enforce use of OTP to access services protected by mod_auth_gssapi, then you can extend mod_auth_gssapi configuration by forcing presence of authentication indicators. This moves the responsibility to obtain Kerberos ticket with 2FA elsewhere. FreeIPA would set 'otp' authentication indicator for users with native OTP and 'radius' for RADIUS-proxy based one. See https://freeipa.readthedocs.io/en/latest/workshop/11-kerberos-ticket-policy.html for more details about Kerberos ticket policies and indicators. mod_auth_gssapi's README has examples how to define requirements for indicators. |
Beta Was this translation helpful? Give feedback.
-
Is there more information on how FreeIPA's web UI implementation (which uses the manual |
Beta Was this translation helpful? Give feedback.
-
Sure, you can start with https://pagure.io/freeipa/blob/master/f/ipaserver/rpcserver.py#_978. |
Beta Was this translation helpful? Give feedback.
-
We are running apache httpd 2.4.51 with mod_auth_gssapi 1.6.3 on CentOS Stream 9 and attempting to tie it to our FreeIPA deployment.
When using the Negotiate method, clients joined to FreeIPA are able to auth correctly to apache. When a fallback to basic auth occurs though (such as for external clients or Windows systems which are not joined to FreeIPA), authentication fails, with the exact error message reported in the Apache logs being the one shown below:
The section of our Apache config pertaining to GSSAPI is below as well:
Beta Was this translation helpful? Give feedback.
All reactions