Whamcloud - gitweb
LU-17015 gss: support large kerberos token for rpc sec init
authorSebastien Buisson <sbuisson@ddn.com>
Thu, 7 Sep 2023 07:28:45 +0000 (09:28 +0200)
committerAndreas Dilger <adilger@whamcloud.com>
Sat, 14 Oct 2023 10:48:14 +0000 (10:48 +0000)
commit4daf43ac3c2da018d3f3aa493ccfeec6d55218f9
treef6f8ef858e07e7e822491011f923d75e1fb34d04
parent4515e5365fef9c5abcb37eaad69e870b72986398
LU-17015 gss: support large kerberos token for rpc sec init

If the current Kerberos setup is using large token, like when PAC
feature is enabled for Kerberos, authentication can fail due to server
side unable to exchange token between kernel and userspace.
This limitation is inherent to the sunrpc cache mechanism, that can
only handle tokens up to PAGE_SIZE.

For RPC sec init phase, use Lustre's upcall cache mechanism
instead of deprecated kernel's sunrpc cache. The upcall calls a new
userspace command 'l_getauth', that fowards the sec init request to
the lsvcgssd daemon via Unix domain sockets.

Lustre-change: https://review.whamcloud.com/52224
Lustre-commit: TBD (from 8acd059ee2b8d1e4c48c3d9dbb380bca75e1b3be)

Test-Parameters: kerberos=true testlist=sanity-krb5
Change-Id: I709cd79894a5a13fc4cdfab2109c86f2230db3b8
Signed-off-by: Sebastien Buisson <sbuisson@ddn.com>
Reviewed-on: https://review.whamcloud.com/c/ex/lustre-release/+/52653
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
26 files changed:
libcfs/libcfs/crypto/fname.c
libcfs/libcfs/crypto/llcrypt_private.h
lustre/include/lustre_sec.h
lustre/include/uapi/linux/lustre/lgss.h
lustre/include/uapi/linux/lustre/lustre_disk.h
lustre/include/uapi/linux/lustre/lustre_idl.h
lustre/include/upcall_cache.h
lustre/obdclass/Makefile.in
lustre/obdclass/upcall_cache.c
lustre/ptlrpc/gss/gss_api.h
lustre/ptlrpc/gss/gss_internal.h
lustre/ptlrpc/gss/gss_svc_upcall.c
lustre/ptlrpc/gss/lproc_gss.c
lustre/ptlrpc/wiretest.c
lustre/tests/sanity-sec.sh
lustre/tests/test-framework.sh
lustre/utils/gss/.gitignore
lustre/utils/gss/Makefile.am
lustre/utils/gss/l_getauth.c [new file with mode: 0644]
lustre/utils/gss/lsupport.h
lustre/utils/gss/svcgssd.c
lustre/utils/gss/svcgssd.h
lustre/utils/gss/svcgssd_main_loop.c
lustre/utils/gss/svcgssd_proc.c
lustre/utils/wirecheck.c
lustre/utils/wiretest.c