I think you can implement this as a single authenticator that has separate 
configuration of the supported mechanisms. So the single authenticator 
maintained is the “negotiating authenticator” which can proxy off to which ever 
other mechanisms you want.

> On Dec 3, 2024, at 6:37 PM, Joel Shepherd <sheph...@amazon.com> wrote:
> 
> I'm interested, at least in a more narrowly-scoped subset of CEP-31: 
> authentication negotiation only, configured via YAML (not dynamically), with 
> CQL integration, proxy authorization, multiple role managers and new authn 
> mechanisms out of scope.
> 
> I've started working through Derek's proposal in 
> https://issues.apache.org/jira/browse/CASSANDRA-11471 , to use the 
> OPTIONS/SUPPORTED exchange to start the negotiation, and continue it by 
> extending STARTUP to optionally include the client's preferred authentication 
> mechanism. I believe this can be done in a way that is compatible (i.e., 
> maintains the status quo) for clients and/or nodes that aren't 
> negotiation-aware. Having such a mechanism in place would make it much safer 
> to roll out new authenticators, which is something else I'm interested in.
> 
> This is looking like a more invasive change on the Cassandra core side, 
> however. If I'm reading things correctly, the DatabaseDescriptor maintains a 
> single authenticator across all clients. Negotiation would be much more 
> useful if different clients could use different node-supported authentication 
> mechanisms: e.g., automated clients could use mTLS and apps for humans could 
> use Kerberos, both against a single node. This means that authenticator needs 
> to be pushed down to connection- or session-level, which will affect 
> everything from the daemon startup code to the authentication workflow. 
> That's not a reason not to do it, but it is a little invasive. Maybe I'm 
> overlooking a better way.
> 
> If time allows, I'll put together a rough patch this month for initial 
> feedback, but am happy to discuss here or however folks want to proceed.
> 
> -- Joel.
> 
> 
> On 2024/09/19 17:56:07 Dinesh Joshi wrote:
> > This is an area of interest for me personally and is an important feature.
> > Not sure if the original author is going to see it through since we've not
> > had any discussion on it for a while.
> >
> > Is anybody interested in picking this up?
> >
> > Dinesh
> >
> > On Thu, Sep 19, 2024 at 10:54 AM Patrick McFadin <pm...@gmail.com> wrote:
> >
> > > Hi Jacek,
> > >
> > > I was doing some housekeeping on CEPs and noticed this stalled. Is this
> > > still a CEP you are advocating for?
> > >
> > > Anyone else that knows the status, feel free to add in.
> > >
> > > Patrick
> > >
> > > On Wed, May 31, 2023 at 8:26 AM Derek Chen-Becker <de...@chen-becker.org>
> > > wrote:
> > >
> > >> Hi Jacek,
> > >>
> > >> I took a quick look through the CEP and I think I understand the
> > >> implementation you're donating. I don't think that the approach you're
> > >> taking and the approach I proposed are contradictory, but I want to make
> > >> sure I'm understanding some aspects of the CEP:
> > >>
> > >> 1. Is there any mechanism for discovery so that the client knows which
> > >> authenticators are supported? The main use case I see here is that since
> > >> the client drives selection of the authenticator, the client probably 
> > >> wants
> > >> to utilize the strongest mutually supported mechanism
> > >> 2. Can you specify the client/server exchange in a state diagram or more
> > >> clearly detail which messages are involved? The CEP states that "The 
> > >> driver
> > >> sends an additional preamble along with the initial SASL authentication
> > >> message". Is the "initial SASL auth message" the AUTH_RESPONSE? Are you
> > >> basically saying that the server sends the AUTHENTICATE message with a
> > >> class name, so does the client basically respond with "No, here's the
> > >> authenticator I want to use" in the preamble?
> > >> 3. Does the donated code for the server already handle hot
> > >> reconfiguration of authenticators? The CEP states "We want to make it
> > >> possible to add, ..." so I wasn't sure if that was future work or not
> > >>
> > >> I think I need to re-read and digest, but on first run-through this looks
> > >> really interesting!
> > >>
> > >> Cheers,
> > >>
> > >> Derek
> > >>
> > >> On Fri, May 26, 2023 at 8:09 AM Jacek Lewandowski <
> > >> lewandowski.ja...@gmail.com> wrote:
> > >>
> > >>> Hi,
> > >>>
> > >>> I'd like to start a discussion on negotiated authentication and
> > >>> improvements to authentication, authorization, and role management in
> > >>> general. A draft of proposed changes is included in CEP-31.
> > >>>
> > >>>
> > >>> https://cwiki.apache.org/confluence/display/CASSANDRA/CEP-31+%28DRAFT%29+Negotiated+authentication+and+authorization
> > >>>
> > >>> thanks,
> > >>> - - -- --- ----- -------- -------------
> > >>> Jacek Lewandowski
> > >>>
> > >>
> > >>
> > >> --
> > >> +---------------------------------------------------------------+
> > >> | Derek Chen-Becker |
> > >> | GPG Key available at https://keybase.io/dchenbecker and |
> > >> | https://pgp.mit.edu/pks/lookup?search=derek%40chen-becker.org |
> > >> | Fngrprnt: EB8A 6480 F0A3 C8EB C1E7 7F42 AFC5 AFEE 96E4 6ACC |
> > >> +---------------------------------------------------------------+
> > >>
> > >>
> >

Reply via email to