This fixes the case where an account is locked on one or more servers and the password is reset by an administrator. The account would remain locked on those servers for the duration of the lockout. This is done by setting krbLastAdminUnlock to the current date and time. The lockout plugin will see this and unlock the account. Since the value should be replicated along with the password any server that has the new password will also be unlocked. This does incur an additional attribute that must be replicated, whether it is needed or not, but since lockout is computed per-server this is the only guaranteed way to be sure that the account will be unlocked everywhere. My original thought was to grab password replication events and detect whether the user was locked out and unlock them. On any given server you can only know if the user is locked out on that server by computing it. Doing this would require generalizing the lockout code so it could be computed on password change. krbLastFailedAuth could be wiped which would unlock the account on that master (the attribute is not replicated by default). So it is complexity vs additional replication. Assuming that admin reset is relatively rare let's start with that. This doesn't lock us into this solution for the future. We could set this attribute on user-driven password changes as well but the original ask and my thinking are that if you forgot your password and got locked out, how can you change it yourself? Upon reflection I guess a user could fat-finger it a bunch of times against one IPA server then have a revelation and log in against a different server. So they would still be locked out for the duration on the first one. I'm not sure the extra replication is worth it for user-generated password changes or that users would be saavy enough to try another server for the change. https://pagure.io/freeipa/issue/8551 Signed-off-by: Rob Crittenden <rcritten@redhat.com> Reviewed-By: Alexander Bokovoy <abokovoy@redhat.com>
FreeIPA Server
FreeIPA allows Linux administrators to centrally manage identity, authentication and access control aspects of Linux and UNIX systems by providing simple to install and use command line and web based management tools.
FreeIPA is built on top of well known Open Source components and standard protocols with a very strong focus on ease of management and automation of installation and configuration tasks.
FreeIPA can seamlessly integrate into an Active Directory environment via cross-realm Kerberos trust or user synchronization.
Benefits
FreeIPA:
- Allows all your users to access all the machines with the same credentials and security settings
- Allows users to access personal files transparently from any machine in an authenticated and secure way
- Uses an advanced grouping mechanism to restrict network access to services and files only to specific users
- Allows central management of security mechanisms like passwords, SSH Public Keys, SUDO rules, Keytabs, Access Control Rules
- Enables delegation of selected administrative tasks to other power users
- Integrates into Active Directory environments
Components
The FreeIPA project provides unified installation and management tools for the following components:
- LDAP Server - based on the 389 project
- KDC - based on MIT Kerberos implementation
- PKI based on Dogtag project
- Samba libraries for Active Directory integration
- DNS Server based on BIND and the Bind-DynDB-LDAP plugin
Project Website
Releases, announcements and other information can be found on the IPA server project page at http://www.freeipa.org/ .
Documentation
The most up-to-date documentation can be found at http://freeipa.org/page/Documentation .
Quick Start
To get started quickly, start here: http://www.freeipa.org/page/Quick_Start_Guide
For developers
- Building FreeIPA from source
- http://www.freeipa.org/page/Build
- See the BUILD.txt file in the source root directory
Licensing
Please see the file called COPYING.
Contacts
- If you want to be informed about new code releases, bug fixes, security fixes, general news and information about the IPA server subscribe to the freeipa-announce mailing list at https://www.redhat.com/mailman/listinfo/freeipa-interest/ .
- If you have a bug report please submit it at: https://pagure.io/freeipa/issues
- If you want to participate in actively developing IPA please subscribe to the freeipa-devel mailing list at https://lists.fedoraproject.org/archives/list/freeipa-devel@lists.fedorahosted.org/ or join us in IRC at irc://irc.freenode.net/freeipa