[39477] in Kerberos

home help back first fref pref prev next nref lref last post

Re: macOS API ccache,

daemon@ATHENA.MIT.EDU (Ken Hornstein via Kerberos)
Wed Feb 12 19:22:01 2025

Message-Id: <202502130017.51D0Hgug009261@hedwig.cmf.nrl.navy.mil>
To: "A. Karl Kornel" <karl@kornel.us>
cc: kerberos@mit.edu
In-Reply-To: <454ad95255b0e02a0ad42e2f2687740e@kornel.us>
MIME-Version: 1.0
Date: Wed, 12 Feb 2025 19:17:42 -0500
From: Ken Hornstein via Kerberos <kerberos@mit.edu>
Reply-To: Ken Hornstein <kenh@cmf.nrl.navy.mil>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: kerberos-bounces@mit.edu

>I have run into an issue with krb5 1.21.1 on macOS 14+, related to the 
>new API ccache type: If I already have a credential cache, doing a 
>`kinit` for a different principal will return "Internal credentials 
>cache error while generating new ccache".  However, using macOS 
>Kerberos' `kinit` works fine.  I thought to report it here, in case it 
>is fixable.

I cannot reproduce this.  I was able to use MIT Kerberos to kdestroy -A,
kinit to two different principals, and it worked fine.

However, some caveats.

- We are using our own MIT build with a few custom patches.  Nothing that
  affected the Apple credential cache support (which I contributed to MIT
  Kerberos so I know how it works).  It is based on 1.21.3.

- HOWEVER ... I just did a test build of stock MIT Kerberos 1.21.3 and
  repeated the same steps: works fine.  On a long shot I thought that
  maybe the -F option affected things, so I tried again using that;
  still worked fine.

- I tested on Sequoia (MacOS 15), not Sonoma.  I developed this support
  before Sonoma so I have a hard time believing that it is broken on
  Sonoma, but I could be wrong.

- I tested principals in two different realms.  I don't think this should
  affect anything, but I just wanted to state it for completeness.

As a note, it has been my experience that MacPorts can create a dependency
hell where package behavior can depend on what you have installed when you
go to build a package.  For this reason (and others) I exclusively recommend
Homebrew to people instead of MacPorts.

The way that the MacOS X credential cache support works is that it
explicitly links in the MacOS X Kerberos framework when building MIT
Kerberos via the '-framework Kerberos' command-line option and then
makes calls to the ccapi functions to do the appropriate things.  From
my memory, Heimdal took a slightly different approach and decided to
dlopen that framework library instead and then do the ccapi calls.

My gut feeling is that this is a MacPorts problem, but I am open to
being proven wrong.  I think, however, you're going to have to debug
this yourself further; this looks like it is failing inside of
api_macos_gen_new(), and is probably failing in either cc_initialize(),
cc_context_create_new_ccache(), or cc_ccache_get_name().

--Ken
________________________________________________
Kerberos mailing list           Kerberos@mit.edu
https://mailman.mit.edu/mailman/listinfo/kerberos

home help back first fref pref prev next nref lref last post