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

Rajini Sivaram commented on KAFKA-4764:
---------------------------------------

[~junrao] Yes, Zookeeper does the same as Kafka does today. As an example, with 
a wrong password for the ZK client, the logs in Kafka show:
{quote}
DEBUG saslClient.evaluateChallenge(len=101) 
(org.apache.zookeeper.client.ZooKeeperSaslClient)
DEBUG ClientCnxn:sendSaslPacket:length=276 
(org.apache.zookeeper.client.ZooKeeperSaslClient)
INFO Unable to read additional data from server sessionid 0x15bd52108ef0003, 
likely server has closed socket, closing socket connection and attempting 
reconnect (org.apache.zookeeper.ClientCnxn)
{quote}

The issue with treating any disconnects during authentication as authentication 
failures is that we may incorrectly report authentication failure for a 
correctly configured client because a broker was restarting. Also, if we want 
to treat authentication exceptions as non-retriable exceptions, we need to be 
sure that the connection failure was actually an authentication exception. I 
suppose if we want the simplest solution, we could simply log that connection 
failed during authentication with a hint that it may be an authentication 
failure. And retry as we do today.

The proposal in 
[https://cwiki.apache.org/confluence/display/KAFKA/KIP-152+-+Improve+diagnostics+for+SASL+authentication+failures]
 is different from the description in this JIRA. In case you haven't seen the 
KIP, can you take a look? It is a much bigger change, but helps to ensure that 
we can identify and treat authentication failures differently from any other 
form of network error. 

Thank you....

> Improve diagnostics for SASL authentication failures
> ----------------------------------------------------
>
>                 Key: KAFKA-4764
>                 URL: https://issues.apache.org/jira/browse/KAFKA-4764
>             Project: Kafka
>          Issue Type: Improvement
>          Components: security
>    Affects Versions: 0.10.2.0
>            Reporter: Rajini Sivaram
>            Assignee: Rajini Sivaram
>             Fix For: 0.11.0.0
>
>
> At the moment, broker closes the client connection if SASL authentication 
> fails. Clients see this as a connection failure and do not get any feedback 
> for the reason why the connection was closed. Producers and consumers retry, 
> attempting to create successful connections, treating authentication failures 
> as transient failures. There are no log entries on the client-side which 
> indicate that any of these connection failures were due to authentication 
> failure.
> This JIRA will aim to improve diagnosis of authentication failures with the 
> following changes:
> - Broker will send an authentication error code if SASL authentication fails, 
> just before closing the connection. This will be treated as an invalid token 
> by the client authenticator, and the error handling for invalid tokens will 
> be updated to report authentication failure for this case. This is a bit of a 
> hack, but would work with GSSAPI, PLAIN and SCRAM. SASL itself doesn't 
> provide a mechanism-independent way of reporting authentication failures. An 
> alternative would be to wrap SASL authentication in Kafka request/response to 
> enables error codes to be sent as Kafka response, but that would be a much 
> bigger change.
> - Log a warning in clients for authentication failures, distinguishing these 
> from EOF exceptions due to connection failure
> - Blackout nodes to which connection failed due to authentication error, no 
> more attempts will be made to connect to these nodes.
> - We should use the connection state to improve handling of producer/consumer 
> requests, avoiding unnecessary blocking. This will not be addressed in this 
> JIRA, KAFKA-3899 should be able to use the additional state from JIRA to fix 
> this issue.
> This JIRA also does not change handling of SSL authentication failures. 
> javax.net.debug provides sufficient diagnostics for this case, I don't 
> believe there is sufficient information in `SslTransportLayer` to treat these 
> in a consistent way with SASL authentication failures.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to