]> git.ipfire.org Git - thirdparty/krb5.git/commit
Use kadm5_auth interface in kadmind
authorGreg Hudson <ghudson@mit.edu>
Fri, 30 Jun 2017 15:54:09 +0000 (11:54 -0400)
committerGreg Hudson <ghudson@mit.edu>
Thu, 17 Aug 2017 15:51:14 +0000 (11:51 -0400)
commit92a1a7efe2fc43337416098f2227038a72f1e35a
treefea726b9f44925b6992eaa55242e827dc2fdc798
parentd92114795fee2bdfa855263797aea7eaa47e0fc0
Use kadm5_auth interface in kadmind

Convert the ACL code to a kadm5_auth module, and create a new module
for self-service authorization.  Use the kadm5_auth consumer code
instead of directly using the ACL code to authorize requests.

Do not assume self-service authorization in the RPC stubs or in
schpw_util_wrapper().  For key change requests, enforce the initial
ticket requirement whenever a client changes its own keys, regardless
of how it is authorized or which protocol it uses.  The initial ticket
check for protocol version 1 in process_chpw_request() is redundant
after this change, so remove it.

The old kadmin-based password change client authenticates to
kadmin/changepw and performs self-service get_principal, get_policy,
and chpass requests.  Continue to allow these operations, enforcing
the self-service requirement in addition to checking through the
kadm5_auth interface.  For get_policy requests, always look up the
client principal's policy name, for this check and for the
authorization layer's use.

The error messages for rename authorization failures are now more
vague (because there is a specific rename operation check in the
kadm5_auth interface, and we do not find out whether it failed due to
missing add or delete privileges).  Adjust t_kadmin_acl.py
accordingly.

ticket: 8595
19 files changed:
doc/admin/conf_files/kadm5_acl.rst
doc/admin/conf_files/kdc_conf.rst
doc/admin/conf_files/krb5_conf.rst
src/kadmin/server/Makefile.in
src/kadmin/server/auth.c
src/kadmin/server/auth.h
src/kadmin/server/auth_acl.c
src/kadmin/server/auth_acl.h [deleted file]
src/kadmin/server/auth_self.c [new file with mode: 0644]
src/kadmin/server/deps
src/kadmin/server/ipropd_svc.c
src/kadmin/server/misc.c
src/kadmin/server/misc.h
src/kadmin/server/ovsec_kadmd.c
src/kadmin/server/schpw.c
src/kadmin/server/server_stubs.c
src/lib/kadm5/kadm_err.et
src/lib/krb5/krb/plugin.c
src/tests/t_kadmin_acl.py