[ https://issues.apache.org/jira/browse/CASSANDRA-1237?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12893806#action_12893806 ]
Folke Behrens commented on CASSANDRA-1237: ------------------------------------------ I don't think you can make authorization pluggable: authorization is very specific, it requires predefined permissions and/or group/role names, and authz is done at many places in the code. I recommend an authorization infrastructure that does not authorize users directly but groups or roles. An authenticator must return a list of groups a user belongs to and the authz infrastructure renders a list of permissions. In Cassandra you just ask if UserX.isAllowedTo(READ, "Keyspace1"); > Store AccessLevels externally to IAuthenticator > ----------------------------------------------- > > Key: CASSANDRA-1237 > URL: https://issues.apache.org/jira/browse/CASSANDRA-1237 > Project: Cassandra > Issue Type: Bug > Components: Core > Reporter: Stu Hood > Assignee: Stu Hood > Fix For: 0.7 beta 1 > > Attachments: > 0001-Consolidate-KSMetaData-mutations-into-copy-methods.patch, > 0002-Thrift-and-Avro-interface-changes.patch, > 0003-Add-user-and-group-access-maps-to-Keyspace-metadata.patch, > 0004-Remove-AccessLevel-return-value-from-login-and-retur.patch, > 0005-Move-per-thread-state-into-a-ClientState-object-1-pe.patch, > 0006-Apply-access.properties-to-keyspaces-during-an-upgra.patch, > sample-usage.patch, simple-jaas-authenticator.patch > > > Currently, the concept of authentication (proving the identity of a user) is > mixed up with permissions (determining whether a user is able to > create/read/write databases). Rather than determining the permissions that a > user has, the IAuthenticator should only be capable of authenticating a user, > and permissions (specifically, an AccessLevel) should be stored consistently > by Cassandra. > The primary goal of this ticket is to separate AccessLevels from > IAuthenticators, and to persist a map of User->AccessLevel along with: > * EDIT: Separating the addition of 'global scope' permissions into a separate > ticket > * each keyspace, where the AccessLevel continues to have its current meaning > ---- > In separate tickets, we would like to improve the AccessLevel structure so > that it can store role/permission bits independently, rather than being level > based. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.