summaryrefslogtreecommitdiff
path: root/source4/rpc_server/drsuapi/addentry.c
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2009-09-15 19:26:33 -0700
committerAndrew Tridgell <tridge@samba.org>2009-09-15 19:52:25 -0700
commit5d2dfd12cf779c410e041a1815e5e3edf0ea38d8 (patch)
tree5f22b2c8eeb4159875f47055b50a2e5ee36e0143 /source4/rpc_server/drsuapi/addentry.c
parent7ded0741d9d5a4c2859769e4abfbc197aed0e5e1 (diff)
downloadsamba-5d2dfd12cf779c410e041a1815e5e3edf0ea38d8.tar.gz
samba-5d2dfd12cf779c410e041a1815e5e3edf0ea38d8.tar.bz2
samba-5d2dfd12cf779c410e041a1815e5e3edf0ea38d8.zip
s4-drs: lock down key DRS calls
The key DRS calls should only be allowed by administrators or domain controllers
Diffstat (limited to 'source4/rpc_server/drsuapi/addentry.c')
-rw-r--r--source4/rpc_server/drsuapi/addentry.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/source4/rpc_server/drsuapi/addentry.c b/source4/rpc_server/drsuapi/addentry.c
index ae478027a6..edf46aa5fb 100644
--- a/source4/rpc_server/drsuapi/addentry.c
+++ b/source4/rpc_server/drsuapi/addentry.c
@@ -30,6 +30,7 @@
#include "librpc/gen_ndr/ndr_drsblobs.h"
#include "auth/auth.h"
#include "rpc_server/drsuapi/dcesrv_drsuapi.h"
+#include "libcli/security/security.h"
/*
@@ -149,6 +150,12 @@ WERROR dcesrv_drsuapi_DsAddEntry(struct dcesrv_call_state *dce_call, TALLOC_CTX
DCESRV_PULL_HANDLE_WERR(h, r->in.bind_handle, DRSUAPI_BIND_HANDLE);
b_state = h->data;
+ if (security_session_user_level(dce_call->conn->auth_state.session_info) <
+ SECURITY_DOMAIN_CONTROLLER) {
+ DEBUG(0,("DsAddEntry refused for security token\n"));
+ return WERR_DS_DRA_ACCESS_DENIED;
+ }
+
switch (r->in.level) {
case 2:
ret = ldb_transaction_start(b_state->sam_ctx);