freeipa/ipatests
Alexander Bokovoy 1d2897e3d7 ipa-pwd-extop: allow enforcing 2FA-only over LDAP bind
When authentication indicators were introduced in 2016, ipa-pwd-extop
plugin gained ability to reject LDAP BIND when an LDAP client insists
the authentication must use an OTP token. This is used by ipa-otpd to
ensure Kerberos authentication using OTP method is done with at least
two factors (the token and the password).

This enfrocement is only possible when an LDAP client sends the LDAP
control. There are cases when LDAP clients cannot be configured to send
a custom LDAP control during BIND operation. For these clients an LDAP
BIND against an account that only has password and no valid token would
succeed even if admins intend it to fail.

Ability to do LDAP BIND without a token was added to allow users to add
their own OTP tokens securely. If administrators require full
enforcement over LDAP BIND, it is cannot be achieved with LDAP without
sending the LDAP control to do so.

Add IPA configuration string, EnforceLDAPOTP, to allow administrators to
prevent LDAP BIND with a password only if user is required to have OTP
tokens. With this configuration enabled, it will be not possible for
users to add OTP token if one is missing, thus ensuring no user can
authenticate without OTP and admins will have to add initial OTP tokens
to users explicitly.

Fixes: https://pagure.io/freeipa/issue/5169

Signed-off-by: Alexander Bokovoy <abokovoy@redhat.com>
Reviewed-By: Florence Blanc-Renaud <flo@redhat.com>
2024-03-12 13:53:11 +01:00
..
azure azure tests: move to fedora 39 2024-01-09 08:40:47 +01:00
man Simplify ipa-run-tests script 2019-07-16 13:23:21 +03:00
prci_definitions rpcserver: validate Kerberos principal name before running kinit 2024-02-21 17:07:33 -05:00
pytest_ipa ipa-restore: adapt for 389-ds switch to LMDB 2024-02-23 14:11:25 +01:00
test_cmdline pylint: Fix used-before-assignment 2023-01-10 08:30:58 +01:00
test_custodia pylint: disable comparison-of-constants 2023-01-10 08:30:58 +01:00
test_install Unify access to FQDN 2020-10-26 17:11:19 +11:00
test_integration ipa-pwd-extop: allow enforcing 2FA-only over LDAP bind 2024-03-12 13:53:11 +01:00
test_ipaclient ipaclient: do not set TLS CA options in ldap.conf anymore 2022-10-10 09:50:39 +02:00
test_ipalib Compatibility fix for PyCA cryptography 42.0.0 2024-01-24 14:54:24 +01:00
test_ipalib_install validate_principal: Don't try to verify that the realm is known 2024-02-22 14:35:59 -05:00
test_ipaplatform ipatests/test_ipaplatform: Skip test_ipa_version on Debian 2021-11-25 21:02:56 -05:00
test_ipapython get_directive: don't error out on substring mismatch 2024-01-11 17:19:47 +01:00
test_ipaserver Integration tests for verifying Referer header in the UI 2024-01-10 10:27:06 +01:00
test_ipatests_plugins ipatests: Don't turn Pytest IPA deprecation warnings into errors 2020-07-29 15:10:00 -04:00
test_webui ipatests: test new columns in group details 2024-01-12 15:26:45 +01:00
test_xmlrpc pylint: fix errors 2024-01-09 08:40:47 +01:00
__init__.py Make an ipa-tests package 2013-06-17 19:22:50 +02:00
conftest.py pylint: Fix useless-suppression 2022-03-11 13:37:08 -05:00
create_external_ca.py Use datetime.timezone.utc instead of newer datetime.UTC alias 2023-09-29 15:06:33 -04:00
data.py Fix more bytes/unicode issues 2015-10-22 18:34:46 +02:00
i18n.py pylint: Fix useless-suppression 2022-03-11 13:37:08 -05:00
ipa-run-tests ipatests: Specify shell implementation 2020-04-21 13:24:50 +02:00
ipa-test-config Rename pytest_plugins to ipatests.pytest_ipa 2018-08-02 17:07:43 +02:00
ipa-test-task ipatests: Fetch sudo rules without time offset 2021-06-03 09:21:45 +03:00
Makefile.am Build: fix distribution of static files for web UI 2016-11-09 13:08:32 +01:00
setup.cfg Port all setup.py to setuptools 2016-10-20 18:43:37 +02:00
setup.py rpcserver: validate Kerberos principal name before running kinit 2024-02-21 17:07:33 -05:00
test_util.py pylint: Fix unnecessary-lambda-assignment 2023-01-10 08:30:58 +01:00
util.py Integration tests for verifying Referer header in the UI 2024-01-10 10:27:06 +01:00