[AFS3-std] rxgk-afs tokens for ptservers, etc.
Benjamin Kaduk
kaduk@MIT.EDU
Wed, 13 Feb 2013 12:21:32 -0500 (EST)
On Wed, 13 Feb 2013, Simon Wilkinson wrote:
>
> On 12 Feb 2013, at 22:06, Jeffrey Hutzelman wrote:
>
>> I'm not sure what to do about the bosserver. It's really more of a
>> management tool than part of the main protocol suite. It seems like, at
>> a minimum, it ought to be possible to obtain a token for a given
>> bosserver by negotiating directly with that server, the same as for any
>> other rxgk service. Arguably the same should be possible for volservers
>> and maybe even fileservers, though in practice that doesn't seem as
>> useful.
>
> The approach I took with bosservers was to treat them as a completely
> different service. It's hard to define what cell a bosserver belongs to,
> as well as the need to be able to talk to bos before the vlserver is up.
> So, making them separate from the afs3 service seemed to make a lot of
> sense.
Just to make sure I'm understanding correctly, "completely different
service" means that you do not attempt to use a cell-wide key to
negotiate a token with the RXGK_GSSNegotiate service offered by a
bosserver?
> In this model, all machines running bos have their own
> afs3-bos/machine.name@REALM key. There is a gss negotiation service
> running on the bosserver port which is used purely for connections to
> bos. The downside of this is that we no longer use tokens held in the
> kernel for connections to bos. This might result in some user confusion
> where their tokens don't match the contents of their Kerberos
> credentials cache, but does mean that bos can be used from machines
> which aren't running a cache manager.
Hmm, being able to use bos without a cache manager could be nice.
I see the point that the bosservers are a completely different service,
essentially an administrative service tied to a particular machine. After
all, all the bos commands require a server argument (and there's not a
ubik database behind them or anything). However, I do like the ability to
treat dbserver machines as interchangable, or even as identical (in the
sense that they are just different faces of the same distributed
database); this makes me inclined to allow the dbserver machines to use
the cell-wide key (aka the afs-rxgk@_afs.<cellname> GSS identity) for
fielding GSSNegotiate calls on the bosserver port. Do you oppose allowing
this? I guess it would make the code more complicated, with the client
needing to try both the cell-wide identity and a server-specific identity.
I'll think about it more; I could still be convinced that always using an
afs-bos (or afs3-bos? We should be consistent about whether we use a '3')
identity for bosserver tokens is the right thing to to.
I'm having second thoughts about the BOZO_GetUUID proposal I made last
night; it seems to be violating some abstraction barriers.
-Ben