diff options
author | Jakub Hrozek <jhrozek@redhat.com> | 2014-08-04 13:36:42 +0200 |
---|---|---|
committer | Jakub Hrozek <jhrozek@redhat.com> | 2014-08-06 10:36:53 +0200 |
commit | 6e51d44a65b15c2f0491b0a8b452caac0bc00584 (patch) | |
tree | e9a19bdde7903a9c2af0c2904c09a0b9793c9cc3 /src/sss_client | |
parent | 16cd3d5599d7bfe6ef4918142b9233ae2354f200 (diff) | |
download | sssd-6e51d44a65b15c2f0491b0a8b452caac0bc00584.tar.gz sssd-6e51d44a65b15c2f0491b0a8b452caac0bc00584.tar.xz sssd-6e51d44a65b15c2f0491b0a8b452caac0bc00584.zip |
PAC: krb5_pac_verify failures should not be fatal
As noted in the MIT KRB5 documentation, some servers send PAC with no
checksum, therefire the PAC validation should not be fatal, instead, we
should treat a failure from krb5_pac_verify as if there was no PAC at
all.
Reported on sssd-devel by Thomas Sondergaard
Diffstat (limited to 'src/sss_client')
-rw-r--r-- | src/sss_client/sssd_pac.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/sss_client/sssd_pac.c b/src/sss_client/sssd_pac.c index 469758a65..d1790df50 100644 --- a/src/sss_client/sssd_pac.c +++ b/src/sss_client/sssd_pac.c @@ -151,7 +151,16 @@ static krb5_error_code sssdpac_verify(krb5_context kcontext, req->ticket->enc_part2->times.authtime, req->ticket->enc_part2->client, key, NULL); if (kerr != 0) { - return EINVAL; + /* The krb5 documentation says: + * A checksum mismatch can occur if the PAC was copied from a + * cross-realm TGT by an ignorant KDC; also Apple Mac OS X Server + * Open Directory (as of 10.6) generates PACs with no server checksum + * at all. One should consider not failing the whole authentication + * because of this reason, but, instead, treating the ticket as + * if it did not contain a PAC or marking the PAC information as + * non-verified. + */ + return 0; } sss_data.len = sssdctx->data.length; |