1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-15 23:24:37 +03:00

50 Commits

Author SHA1 Message Date
Andrew Tridgell
fd43e0ee09 added a uid_wrapper library
This library intercepts seteuid and related calls, and simulates them
in a manner similar to the nss_wrapper and socket_wrapper
libraries. This allows us to enable the vfs_unixuid NTVFS module in
the build farm, which means we are more likely to catch errors in the
token manipulation.

The simulation is not complete, but it is enough for Samba4 for
now. The major areas of incompleteness are:

 - no emulation of setreuid, setresuid or saved uids. These would be
   needed for use in Samba3

 - no emulation of ruid changing. That would also be needed for Samba3

 - no attempt to emulate file ownership changing, so code that (for
   example) tests whether st.st_uid matches geteuid() needs special
   handling
2009-08-05 10:51:00 +10:00
Andrew Bartlett
8ff1f50b0c s4:kerberos Add support for user principal names in certificates
This extends the PKINIT code in Heimdal to ask the HDB layer if the
User Principal Name name in the certificate is an alias (perhaps just
by case change) of the name given in the AS-REQ.  (This was a TODO in
the Heimdal KDC)

The testsuite is extended to test this behaviour, and the other PKINIT
certficate (using the standard method to specify a principal name in a
certificate) is updated to use a Administrator (not administrator).
(This fixes the kinit test).

Andrew Bartlett
2009-07-28 14:10:47 +10:00
Kai Blin
4250eab4b5 s4 auth_winbind: Internally, info3 has utf8 buffers, not utf16 buffers.
Thanks to gd for the catch.
2009-06-25 21:36:49 +02:00
Kai Blin
309924e5c1 s4 auth_winbind: Don't allocate the rids for the info3 structure within the loop 2009-06-25 19:38:51 +02:00
Kai Blin
946beae010 s4: Add libwbclient backend to auth_winbind 2009-06-25 19:18:40 +02:00
Andrew Bartlett
19413c5249 s4:kdc Allow a password change when the password is expired
This requires a rework on Heimdal's windc plugin layer, as we want
full control over what tickets Heimdal will issue.  (In particular, in
case our requirements become more complex in future).

The original problem was that Heimdal's check would permit the ticket,
but Samba would then deny it, not knowing it was for kadmin/changepw

Also (in hdb-samba4) be a bit more careful on what entries we will
make the 'change_pw' service mark that this depends on.

Andrew Bartlett
2009-06-18 13:49:30 +10:00
Andrew Tridgell
dfd56dd294 changed the auth path to use extended DN ops to avoid non-indexed searches
Logs showed that every SAM authentication was causing a non-indexed
ldb search for member=XXX. This was previously indexed in Samba4, but
since we switched to using the indexes from the full AD schema it now
isn't.

The fix is to use the extended DN operations to allow us to ask the
server for the memberOf attribute instead, with with the SIDs attached
to the result. This also means one less search on every
authentication.

The patch is made more complex by the fact that some common routines
use the result of these user searches, so we had to update all
searches that uses user_attrs and those common routines to make sure
they all returned a ldb_message with a memberOf filled in and the SIDs
attached.
2009-06-04 14:10:11 +10:00
Andrew Bartlett
6ef65389fd Don't use crossRef records to find our own domain
A single AD server can only host a single domain, so don't stuff about
with looking up our crossRef record in the cn=Partitions container.
We instead trust that lp_realm() and lp_workgroup() works correctly.

Andrew Bartlett
2009-05-26 12:37:09 +10:00
Andrew Tridgell
b335618d17 fixed interpretation of ACB_PWNOTREQ
This bit actually means that we should ignore the minimum password
length field for this user. It doesn't mean that the password should
be seen as empty
2009-05-25 15:23:54 +10:00
Andrew Bartlett
6c8f7e4005 Port Samba4 to the new combined libcli/auth functions
For example, some of the new shared functionality was previously in the wkssvc
torture test.

Andrew Bartlett
2009-04-14 16:23:41 +10:00
Andrew Bartlett
a19966375a Move ntlm_check.h into the common libcli/auth 2009-04-14 16:23:41 +10:00
Andrew Bartlett
927a8b3304 Move libcli/auth to the top level 2009-04-14 14:19:39 +10:00
Jelmer Vernooij
94069bd274 s4: Use same function signature for convert_* as s3. 2009-03-01 19:55:46 +01:00
Jelmer Vernooij
9ffb6d2d9e Add allow_badcharcnv argument to all conversion function, for
consistency with Samba 3.
2009-03-01 06:33:40 +01:00
Andrew Bartlett
cd6026135d Push sam_get_server_info_principal into the auth subsystem
This means it must be accessed via the supplied auth_context in the
GENSEC server, and should remove the hard depenceny of GENSEC on the
auth subsystem and ldb (allowing LDB not to rely on LDB is considered
a good thing, apparently)

Andrew Bartlett
2009-02-13 14:02:49 +11:00
Andrew Bartlett
71632a1697 Remove auth/ntlm as a dependency of GENSEC by means of function pointers.
When starting GENSEC on the server, the auth subsystem context must be
passed in, which now includes function pointers to the key elements.

This should (when the other dependencies are fixed up) allow GENSEC to
exist as a client or server library without bundling in too much of
our server code.

Andrew Bartlett
2009-02-13 10:24:16 +11:00
Stefan Metzmacher
40c3ab2fbc s4:auth/ntlm: fix c++ warning
metze
2009-02-05 18:18:09 +01:00
Stefan Metzmacher
a83feb2fe3 s4:auth: move make_server_info_netlogon_validation() function arround
metze
2009-01-21 13:36:11 +01:00
Stefan Metzmacher
183c379fe5 s4:lib/tevent: rename structs
list=""
list="$list event_context:tevent_context"
list="$list fd_event:tevent_fd"
list="$list timed_event:tevent_timer"

for s in $list; do
	o=`echo $s | cut -d ':' -f1`
	n=`echo $s | cut -d ':' -f2`
	r=`git grep "struct $o" |cut -d ':' -f1 |sort -u`
	files=`echo "$r" | grep -v source3 | grep -v nsswitch | grep -v packaging4`
	for f in $files; do
		cat $f | sed -e "s/struct $o/struct $n/g" > $f.tmp
		mv $f.tmp $f
	done
done

metze
2008-12-29 20:46:40 +01:00
Jelmer Vernooij
05adbbc8c9 s4: Always link in auth, as some of the core infrastructure depends on it. 2008-12-22 18:12:22 +01:00
Stefan Metzmacher
180245fce0 s4:kdc: allow a trusted domain to get kerberos tickets
metze
2008-12-04 15:45:16 +01:00
Jelmer Vernooij
ff36c52d8c Remove another use of global_loadparm.
Eventually, we should move some of these parameters into a separate
struct (perhaps into smb_transport_options?), to avoid the long lists of
parameters.
2008-11-02 16:07:28 +01:00
Jelmer Vernooij
b034c519f5 Add gensec_settings structure. This wraps loadparm_context for now, but
should in the future only contain some settings required for gensec.
2008-11-02 02:05:48 +01:00
Jelmer Vernooij
7a6190e9a7 Remove another use of global_loadparm. 2008-11-02 01:03:26 +01:00
Jelmer Vernooij
8c4e2eb49d Remove use of lp_*() from ntlm_check.c. 2008-11-01 17:55:57 +01:00
Jelmer Vernooij
37d885c51a Remove iconv_convenience argument from convert_string{,talloc}() but
make them wrappers around convert_string{,talloc}_convenience().
2008-10-24 14:26:46 +02:00
Jelmer Vernooij
8b06312f7e Eliminate another instance of global_loadparm. 2008-10-24 13:13:27 +02:00
Jelmer Vernooij
922a29992e Remove iconv_convenience parameter from simple string push/pull
functions.
2008-10-24 03:40:09 +02:00
Jelmer Vernooij
87ec1d2532 Make sure prototypes are always included, make some functions static and
remove some unused functions.
2008-10-20 18:59:51 +02:00
Andrew Bartlett
7c88ea8aad Create a 'straight paper path' for UTF16 passwords.
This uses a virtual attribute 'clearTextPassword' (name chosen to
match references in MS-SAMR) that contains the length-limited blob
containing an allegidly UTF16 password.  This ensures we do no
validation or filtering of the password before we get a chance to MD4
it.  We can then do the required munging into UTF8, and in future
implement the rules Microsoft has provided us with for invalid inputs.

All layers in the process now deal with the strings as length-limited
inputs, incluing the krb5 string2key calls.

This commit also includes a small change to samdb_result_passwords()
to ensure that LM passwords are not returned to the application logic
if LM authentication is disabled.

The objectClass module has been modified to allow the
clearTextPassword attribute to pass down the stack.

Andrew Bartlett
2008-10-16 12:48:16 +11:00
Jelmer Vernooij
235e68f7b7 Remove unused variable. 2008-10-15 00:09:08 +02:00
Jelmer Vernooij
9565999755 Fix include paths to new location of libutil. 2008-10-11 21:31:42 +02:00
Jelmer Vernooij
181ee01da6 Pass session options around; saves another use of global_loadparm. 2008-09-30 02:47:19 +02:00
Jelmer Vernooij
6925202bde Move source4/lib/crypto to lib/crypto. 2008-09-24 15:30:23 +02:00
Andrew Bartlett
185788f416 Always set a session key, even for the 'no password' case.
This is for bug 5664 reported by Tom <hto@arcor.de>.

Andrew Bartlett
(This used to be commit a106a4ccc435d149072fb884caf95e5517cd4204)
2008-08-08 14:05:16 +10:00
Stefan Metzmacher
ca086c9e2c auth_server: set the workstation name
metze
(This used to be commit 6d640ee4b84c72f6c2da0ee047c9bac916bf3e57)
2008-08-01 17:27:18 +02:00
Stefan Metzmacher
f1cdce5963 auth_server: fix the logic of server_get_challenge()
metze
(This used to be commit 699e3cdb52acdf2524347d8c053730306c579dd9)
2008-08-01 15:54:57 +02:00
Stefan Metzmacher
5d68244a27 auth_server: fix segfault reported by Julien Kerihuel <j.kerihuel@openchange.org>
metze
(This used to be commit c2cc8ef943e8c2e02edb1eb20214de245cc6914c)
2008-08-01 15:22:25 +02:00
Stefan Metzmacher
93bc9f49a2 auth: don't force the build of auth_server as shared_module
metze
(This used to be commit b5187dd58ccae03e22ba8857c344a2d7d94f13b3)
2008-06-30 09:25:30 +02:00
Andrew Bartlett
868c45102d Don't regenerate pam_errors.h any more.
Due to the new rules on prototypes, it must be a static header file.

Andrew Bartlett
(This used to be commit cf60a9b34ec2419b2bc03a37190cb17ad4cf3d5f)
2008-05-20 08:06:50 +10:00
Andrew Bartlett
343fea32cc Merge branch 'v4-0-test' of ssh://git.samba.org/data/git/samba into 4-0-local
Fix config.mk due to changing syntax.

Conflicts:

	source/libcli/config.mk
	source/nbt_server/config.mk
(This used to be commit 6a1c76f29f78183f44dfac6f468c5e728d2cb2cf)
2008-05-20 08:03:35 +10:00
Jelmer Vernooij
60ae8f0657 Fix a bunch of dependencies.
(This used to be commit a63f458462d207d215a6e4ef8e480b0c8daedf6a)
2008-05-18 23:40:23 +02:00
Jelmer Vernooij
4c70cda986 Fix a couple (well, little more than that..) of typos.
(This used to be commit a6b52119940a900fb0de3864b8bca94e2965cc24)
2008-05-18 23:02:47 +02:00
Jelmer Vernooij
4c8756f147 Create prototype headers from Makefile directory, without smb_build in the middle.
(This used to be commit f4a77b96f9c17d853348b70794026e5b9e384942)
2008-05-18 22:30:08 +02:00
Jelmer Vernooij
137ec6e340 Use variables for source directory in a couple more places.
(This used to be commit 2860a7db5968c7007522cdb300eba390da929ab8)
2008-05-18 19:46:09 +02:00
Jelmer Vernooij
6267dd7853 Clean up some git merges gone wrong.
(This used to be commit 42eb6b33462228467e65a51bbf624c481802b090)
2008-05-10 20:59:17 +02:00
Jelmer Vernooij
7b45a4d7fa Merge branch 'v4-0-test' into v4-0-gmake3
Conflicts:

	source/auth/config.mk
	source/auth/gensec/config.mk
	source/torture/smbtorture.c
(This used to be commit edfd02e59bba86b977bd60848f57a614691fff7a)
2008-05-10 18:08:00 +02:00
Tiago Batista
674d089bea Tiago Batista posted a patch to fix the build:
Trying to compile the latest git tree, I got some errors
"auth/pam_error.h not found" errors, it looks like it moved to
auth/ntlm/pam_errors.h.

Andrew Bartlett
(This used to be commit 95831a015ae076b52256961f771f50dd9b278e33)
2008-05-06 08:12:03 +10:00
Andrew Bartlett
714b3a87d2 Fix the build after the auth/ -> auth/ntlm/ rename
I need to fix up the header inclusion, but this fixes things for now.

Andrew Bartlett
(This used to be commit 7c07edb24b31e7dc3e9b836ec4a6680ee2b04276)
2008-05-05 19:28:38 +10:00
Andrew Bartlett
7ee76eeae5 Move NTLM authentication details into auth/ntlm
This should help clarify the role of the various files around here
(done on Jelmer's request).

Andrew Bartlett
(This used to be commit efa399037511ced8978f2e7661a71aac7a384883)
2008-05-05 15:23:57 +10:00