You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cassandra.apache.org by Joel Shepherd <sh...@amazon.com> on 2026/04/29 21:10:19 UTC

Re: [RESULT] [VOTE] CEP-50: Authentication Negotiation

I've submitted a PR for the server-side implementation of authenticator 
negotiation:
     https://github.com/apache/cassandra/pull/4773

Happy for any feedback but there are a couple areas where I'm personally 
less confident:

* How to identify authenticators in the protocol. I'm torn between using 
the current approach of passing the full server-side authenticator class 
name to the client and expecting the client to understand it, or using 
the more abstract authentication mode identifiers.

* Handling anonymous (unauthenticated) clients. The upshot is that if 
you're allowing anonymous clients today (i.e., using AllowAll or similar 
authentication), and want to use authn negotiation to help upgrade to 
some form of actual authentication, you will need to first ensure your 
'anonymous' role is explicitly granted necessary permissions. With no 
authentication, 'anonymous' acts essentially as super-user; with 
negotiation and any authenticator that requires authentication, 
'anonymous' cannot escalate privileges to super-user.

* Testing: I tried to provide decent unit and dtest coverage but am 
happy for further suggestions.

I'm going to add an addendum to the CEP regarding a couple 
implementation details that diverged, and add operational notes as well.

Thanks -- Joel.

On 7/24/2025 10:55 AM, Joel Shepherd wrote:
> Binding: 11 +1, no -1
> Non-binding: 1 +1, no -1
>
> I think the vote to adopt CEP-50 can be considered as passed. I'll 
> update the CEP, move the related JIRA back to open state (if possible; 
> if not I'll cut a new one) and move ahead on it.
>
> In the spirit of minimizing surprise, I plan on approaching this in 
> several phases/patches, along the lines of:
>
> 1) Refactoring existing code to move logic with hardcoded references 
> to specific authenticators (e.g., PasswordAuthenticator) behind 
> DatabaseDescriptor APIs.
>
> 2) Refactoring to associate ClientState with the specific 
> authenticator used by the client.
>
> 3) Configuration support for negotiation and related logic changes in 
> DatabaseDescriptor and AuthConfig.
>
> 4) Integration w/SUPPORTED and STARTUP messages and handlers, and Java 
> driver reference implementation.
>
> As always, guidance, suggestions and feedback welcome. Thanks for your 
> support of this proposal!
>
> -- Joel.
>
>
> On 7/21/2025 8:51 AM, Joel Shepherd wrote:
>> Hi dev@ - I'd like to request voting for adoption of CEP-50: 
>> Authentication Negotiation.
>>
>> Proposal: 
>> https://cwiki.apache.org/confluence/display/CASSANDRA/CEP-50%3A+Authentication+Negotiation 
>>
>> Discussion: 
>> https://lists.apache.org/thread/cdx4fttq72j4dz7cyhxp14pt7k6rd6bc
>>
>> Feedback has been incorporated in the proposal, or (I believe) closed 
>> out in the discussion thread.
>>
>> The vote will be open for 72 hours. A vote passes if there are at 
>> least 3 binding +1s and no binding vetoes.
>>
>> Thanks! -- Joel.
>