Jun, 4) Agree, it does make the implementation simpler. Updated KIP. 5) Thank you, that looks neater. Updated KIP.
On Wed, Oct 26, 2016 at 6:59 PM, Jun Rao <j...@confluent.io> wrote: > Hi, Rajini, > > Thanks for the reply. > > 4. Implementation wise, it seems to me that it's simpler to read from the > cache than reading directly from ZK since the config manager already > propagates all config changes through ZK. Also, it's probably a good idea > to limit the places in the code base that directly accesses ZK. > > 5. Yes, it seems that it makes sense to add the new SCRAM configurations to > the existing /config/users/<encoded-user>. I am not sure how one would > remove the SCRAM configurations in the example though since the properties > specified in add-config is not the ones actually being stored. An > alternative is to doing sth like the following. It may still feel a bit > weird and I am wondering if there is a clearer approach. > > bin/kafka-configs.sh --zookeeper localhost:2181 --alter --add-config > 'scram_sha-256=[password=alice-secret,iterations=4096],scram_sha-1= > [password=alice-secret,iterations=4096]' --entity-type users --entity-name > alice > > bin/kafka-configs.sh --zookeeper localhost:2181 --alter --delete-config > 'scram_sha-256,scram_sha-1' --entity-type users --entity-name alice > > Thanks, > > Jun > > > On Wed, Oct 26, 2016 at 4:35 AM, Rajini Sivaram < > rajinisiva...@googlemail.com> wrote: > > > Hi Jun, > > > > Thank you for reviewing the KIP. Answers below: > > > > > > 1. Yes, agree, Updated KIP. > > 2. User specifies a password and iteration count. kaka-configs.sh > > generates a random salt and then generates StoredKey and ServerKey for > > that > > password using the same message formatter implementation used for > SCRAM > > authentication. I have added some more detail to the KIP ( > > https://cwiki.apache.org/confluence/display/KAFKA/KIP- > > 84%3A+Support+SASL+SCRAM+mechanisms#KIP-84:SupportSASLSCRAMmechanisms- > > Tools). > > Does that answer the question? > > 3. I started off thinking just one (SCRAM-SHA-256) and then thought > > another one is required to make sure that the implementation can cope > > with > > multiple SCRAM mechanisms. But actually you are right, we can support > > all. > > I haven't added the old md2/md5 mechanisms that aren't very secure, > but > > I > > have included all the SHA algorithms. > > 4. Since credentials are only required when a connection is made, it > > feels like we can just read the latest value from ZK rather than cache > > all > > users and keep them updated. Having said that, we can always add > caching > > later if we find that the overhead of reading from ZK every time is > too > > expensive. Since caching doesn't change any externals, this can be > done > > in > > a JIRA later - would that be ok? > > 5. Thanks, updated. I have changed the property names to include > > mechanism. To avoid four separate properties per mechanism in ZK, I > have > > changed the format to use a single property (lower-case mechanism > name) > > with four values concatenated in a format similar to SCRAM messages. > > > > Do you think storing SCRAM credentials in /config/users/<encoded-user> > > along with existing quota properties is okay? Or should they be under a > > different path (eg. /config/credentials/<encoded-user>)? Or should they > be > > on a completely different path like ACLs with a separate tool instead of > > reusing kaka-configs.sh? > > > > Thank you, > > > > Rajini > > > > On Tue, Oct 25, 2016 at 11:55 PM, Jun Rao <j...@confluent.io> wrote: > > > > > Hi, Rajini, > > > > > > Thanks for the proposal. Looks good overall and seems quite useful > (e.g. > > > for supporting delegation tokens). A few comments/questions below. > > > > > > 1. For the ZK data format change, should we use the same convention as > in > > > KIP-55 to use encoded user name (i.e., /config/users/<encoded-user1>)? > > > > > > 2. For tooling, could you describe how user typically generates > > > scam_server_key and scram_stored_key to be used by kafka-config.sh? > > > > > > 3. Is there a particular reason to only support sha1 and sha128? Should > > we > > > support more hashes listed below in the future? > > > http://www.iana.org/assignments/hash-function- > > > text-names/hash-function-text-names.xhtml > > > > > > 4. Is there a reason not to cache user credentials in the broker? The > > > dynamic config mechanism already supports loading configs into broker's > > > cache. Checking credentials from broker's cache is more efficient than > > > reading from ZK each time. > > > > > > 5. Typo "scram_iteration-4096" (= instead of -). > > > > > > Thanks, > > > > > > Jun > > > > > > > > > > > > On Tue, Oct 4, 2016 at 6:43 AM, Rajini Sivaram < > > > rajinisiva...@googlemail.com > > > > wrote: > > > > > > > Hi all, > > > > > > > > I have just created KIP-84 to add SCRAM-SHA-1 and SCRAM-SHA-256 SASL > > > > mechanisms to Kafka: > > > > > > > > https://cwiki.apache.org/confluence/display/KAFKA/KIP- > > > > 84%3A+Support+SASL+SCRAM+mechanisms > > > > > > > > > > > > Comments and suggestions are welcome. > > > > > > > > Thank you... > > > > > > > > Regards, > > > > > > > > Rajini > > > > > > > > > > > > > > > -- > > Regards, > > > > Rajini > > > -- Regards, Rajini