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 |
> >> +---------------------------------------------------------------+
> >>
> >>
>