s4:dsdb/password_hash: Honor password complexity settings.
authorStefan Metzmacher <metze@samba.org>
Fri, 23 Nov 2012 10:49:05 +0000 (11:49 +0100)
committerAndrew Bartlett <abartlet@samba.org>
Thu, 6 Dec 2012 04:11:43 +0000 (05:11 +0100)
Honor password complexity settings when creating new users.
Without this patch, you could set simple passwords although the complexity
settings were enabled. This was an issue with 'samba-tool user add' and also
when adding new users via Windows' "Active Directory Users and Computers"
MMC Snap-In.

The following scenarios were tested successfully after applying the patch:
-'samba-tool user add' against s4
-'samba-tool user add -H' against a Windows DC
-Adding a new user on a s4 DC using Windows' "Active Directory Users and
 Computers" MMC Snap-In.

Please note that this bug was caused by a mistake in the documentation.

Fix bug #9414 - 'samba-tool user add' ignores password complexity settings.

Pair-programmed-with: Karolin Seeger <kseeger@samba.org>

Signed-off-by: Stefan Metzmacher <metze@samba.org>
Signed-off-by: Karolin Seeger <kseeger@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Autobuild-User(master): Andrew Bartlett <abartlet@samba.org>
Autobuild-Date(master): Thu Dec  6 05:11:43 CET 2012 on sn-devel-104

source4/dsdb/samdb/ldb_modules/password_hash.c

index 620de755d88e2d33a998b08a9111e2fef0b955b7..0f8920c433399f0d9d68134b2961953fc3c16418 100644 (file)
@@ -2188,8 +2188,14 @@ static int setup_io(struct ph_context *ac,
                & (UF_INTERDOMAIN_TRUST_ACCOUNT | UF_WORKSTATION_TRUST_ACCOUNT
                        | UF_SERVER_TRUST_ACCOUNT));
 
-       if ((io->u.userAccountControl & UF_PASSWD_NOTREQD) != 0) {
+       if (!ldb_req_is_untrusted(ac->req) &&
+           (io->u.userAccountControl & UF_PASSWD_NOTREQD))
+       {
                /* see [MS-ADTS] 2.2.15 */
+               /*
+                * This seems to only happen for SAMR
+                * and not for LDAP clients
+                */
                io->u.restrictions = 0;
        }