summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJakub Hrozek <jhrozek@redhat.com>2014-08-04 13:36:42 +0200
committerJakub Hrozek <jhrozek@redhat.com>2014-08-06 10:36:53 +0200
commit6e51d44a65b15c2f0491b0a8b452caac0bc00584 (patch)
treee9a19bdde7903a9c2af0c2904c09a0b9793c9cc3 /src
parent16cd3d5599d7bfe6ef4918142b9233ae2354f200 (diff)
downloadsssd-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')
-rw-r--r--src/sss_client/sssd_pac.c11
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;