[ 
https://issues.apache.org/jira/browse/CASSANDRA-4898?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13489470#comment-13489470
 ] 

Jonathan Ellis commented on CASSANDRA-4898:
-------------------------------------------

IMO this would be a good candidate for a new reference implementation.

Note that IAuth2 is kind of broken (oops) and we'll be redoing that in 
CASSANDRA-4874 and CASSANDRA-4875.  I imagine most of your work though will be 
around internals.  (I would suggest using QueryProcessor.processInternal to 
keep the pain level down -- see examples in SystemTable.)

bq. I'm not sure whether implementing a strategy to replicate data to all nodes 
is a sane idea

This is overkill.

Suggest instead creating a system_auth keyspace, default to 
SimpleStrategy/RF=1.  Users can then change this using normal tools.
                
> Authentication provider in Cassandra itself
> -------------------------------------------
>
>                 Key: CASSANDRA-4898
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-4898
>             Project: Cassandra
>          Issue Type: Improvement
>    Affects Versions: 1.1.6
>            Reporter: Dirkjan Bussink
>              Labels: authentication, authorization
>
> I've been working on an implementation for both IAuthority2 and 
> IAuthenticator that uses Cassandra itself to store the necessary credentials. 
> I'm planning on open sourcing this shortly.
> Is there any interest in this? It tries to provide reasonable security, for 
> example using PBKDF2 to store passwords with a configurable configuration 
> cycle and managing all the rights available in IAuthority2. 
> My main use goal isn't security / confidentiality of the data, but more that 
> I don't want multiple consumers of the cluster to accidentally screw stuff 
> up. Only certain users can write data, others can read it out again and 
> further process it.
> I'm planning on releasing this soon under an open source license (probably 
> the same as Cassandra itself). Would there be interest in incorporating it as 
> a new reference implementation instead of the properties file implementation 
> perhaps? Or can I better maintain it separately? I would love if people from 
> the community would want to review it, since I have been dabbling in the 
> Cassandra source code only for a short while now.
> During the development of this I've encountered a few bumps and I wonder 
> whether they could be addressed or not.
> = Moment when validateConfiguration() runs =
> Is there a deliberate reason that validateConfiguration() is executed before 
> all information about keyspaces, column families etc. is available? In the 
> current form I therefore can't validate whether column families etc. are 
> available for authentication since they aren't loaded yet.
> I've wanted to use this to make relatively easy bootstrapping possible. My 
> approach here would be to only enable authentication if the needed keyspace 
> is available. This allows for configuring the cluster, then import the 
> necessary authentication data for an admin user to bootstrap further and then 
> restart every node in the cluster.
> Basically the questions here are, can the moment when validateConfiguration() 
> runs for an authentication provider be changed? Is this approach to 
> bootstrapping reasonable or do people have better ideas?
> = AbstractReplicationStrategy has package visible constructor =
> I've added a strategy that basically says that data should be available on 
> all nodes. The amount of data use for authentication is very limited. 
> Replicating it to every node is there for not very problematic and allows for 
> every node to have all data locally available for verifying requests.
> I wanted to put this strategy into it's own package inside the authentication 
> module, but since the constructor of AbstractReplicationStrategy has no 
> visibility explicitly marked, it's only available inside the same package.
> I'm not sure whether implementing a strategy to replicate data to all nodes 
> is a sane idea and whether my implementation of this strategy is correct. 
> What do you people think of this? Would people want to review the 
> implementation?

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to