Bird
Raised Fist0
Kafkadevops~5 mins

Client authentication configuration in Kafka - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is client authentication in Kafka?
Client authentication in Kafka is the process of verifying the identity of a client (producer or consumer) before allowing access to the Kafka cluster.
Click to reveal answer
beginner
Name two common methods for client authentication in Kafka.
Two common methods are SSL (using certificates) and SASL (Simple Authentication and Security Layer) mechanisms like PLAIN or SCRAM.
Click to reveal answer
intermediate
What configuration property is used to enable SSL client authentication in Kafka?
The property 'ssl.client.auth' is used to require client authentication over SSL. Setting it to 'required' enforces client certificate verification.
Click to reveal answer
intermediate
How do you configure SASL authentication for a Kafka client?
You set 'security.protocol' to a SASL protocol like 'SASL_SSL' and configure 'sasl.mechanism' (e.g., PLAIN or SCRAM), along with credentials in JAAS config.
Click to reveal answer
beginner
Why is client authentication important in Kafka?
It protects the Kafka cluster by ensuring only authorized clients can connect, preventing unauthorized data access or manipulation.
Click to reveal answer
Which Kafka property enables client certificate verification over SSL?
Assl.client.auth
Bsecurity.protocol
Csasl.mechanism
Dssl.keystore.location
What value should 'security.protocol' have to use SASL with SSL in Kafka?
APLAINTEXT
BSSL
CSASL_SSL
DSASL_PLAINTEXT
Which SASL mechanism is NOT commonly used in Kafka client authentication?
AOAUTHBEARER
BSCRAM
CGSSAPI
DPLAIN
What is the purpose of the JAAS configuration in Kafka client authentication?
ATo specify SSL certificates
BTo define broker addresses
CTo set Kafka topic permissions
DTo configure SASL login credentials
If 'ssl.client.auth' is set to 'none', what happens?
AClient certificates are required
BClient certificates are not requested
CClient certificates are optional
DSSL is disabled
Explain how to configure Kafka client authentication using SSL certificates.
Think about how SSL certificates prove identity and how Kafka uses keystores.
You got /4 concepts.
    Describe the steps to set up SASL authentication for a Kafka client.
    Focus on protocol, mechanism, and credentials.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is the main purpose of client authentication in Kafka?
      easy
      A. To verify the identity of clients connecting to the Kafka broker
      B. To increase the speed of message delivery
      C. To compress messages before sending
      D. To store messages permanently on the client side

      Solution

      1. Step 1: Understand client authentication

        Client authentication is about confirming who is connecting to Kafka to ensure security.
      2. Step 2: Identify the purpose in Kafka context

        Kafka uses client authentication to verify client identity before allowing access.
      3. Final Answer:

        To verify the identity of clients connecting to the Kafka broker -> Option A
      4. Quick Check:

        Client authentication = verify identity [OK]
      Hint: Authentication means verifying who you are [OK]
      Common Mistakes:
      • Confusing authentication with message compression
      • Thinking authentication speeds up delivery
      • Mixing authentication with data storage
      2. Which Kafka client configuration property is used to enable SSL authentication?
      easy
      A. enable.ssl.auth=true
      B. ssl.enabled=true
      C. security.protocol=SSL
      D. auth.method=ssl

      Solution

      1. Step 1: Recall Kafka SSL config property

        The correct property to enable SSL is 'security.protocol' set to 'SSL'.
      2. Step 2: Check other options for correctness

        Other options are not valid Kafka config keys for SSL authentication.
      3. Final Answer:

        security.protocol=SSL -> Option C
      4. Quick Check:

        SSL enabled by security.protocol=SSL [OK]
      Hint: Use security.protocol=SSL to enable SSL [OK]
      Common Mistakes:
      • Using non-existent properties like ssl.enabled
      • Confusing property names with auth.method
      • Adding extra words like enable.ssl.auth
      3. Given this Kafka client config snippet:
      security.protocol=SASL_SSL
      sasl.mechanism=PLAIN
      sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="user" password="pass";

      What type of client authentication is configured?
      medium
      A. SSL without SASL
      B. SASL with PLAIN mechanism over SSL
      C. SASL with SCRAM mechanism
      D. No authentication

      Solution

      1. Step 1: Analyze security.protocol and sasl.mechanism

        security.protocol=SASL_SSL means SASL authentication over SSL. sasl.mechanism=PLAIN means using PLAIN SASL mechanism.
      2. Step 2: Confirm authentication type

        The config uses SASL PLAIN mechanism secured by SSL transport.
      3. Final Answer:

        SASL with PLAIN mechanism over SSL -> Option B
      4. Quick Check:

        SASL_SSL + PLAIN = SASL PLAIN over SSL [OK]
      Hint: SASL_SSL means SASL over SSL, check sasl.mechanism [OK]
      Common Mistakes:
      • Ignoring sasl.mechanism and assuming only SSL
      • Confusing PLAIN with SCRAM mechanism
      • Thinking no authentication is set
      4. You have this Kafka client config:
      security.protocol=SSL
      ssl.keystore.location=/path/to/keystore
      ssl.keystore.password=wrongpass

      The client fails to authenticate. What is the most likely cause?
      medium
      A. Incorrect keystore password
      B. Missing sasl.mechanism property
      C. security.protocol should be PLAINTEXT
      D. ssl.keystore.location path is not needed

      Solution

      1. Step 1: Check SSL keystore config

        The keystore password is set to 'wrongpass', which likely does not match the actual password.
      2. Step 2: Evaluate other options

        Missing sasl.mechanism is irrelevant for SSL-only config. PLAINTEXT disables security. Keystore location is required.
      3. Final Answer:

        Incorrect keystore password -> Option A
      4. Quick Check:

        Wrong password causes SSL auth failure [OK]
      Hint: Check passwords carefully for SSL keystore [OK]
      Common Mistakes:
      • Assuming sasl.mechanism is needed for SSL-only
      • Changing security.protocol to PLAINTEXT by mistake
      • Ignoring keystore location requirement
      5. You want to configure a Kafka client to authenticate using SASL SCRAM-SHA-512 over SSL. Which configuration snippet is correct?
      hard
      A. security.protocol=SASL_SSL sasl.mechanism=PLAIN sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="user" password="pass";
      B. security.protocol=SSL sasl.mechanism=SCRAM-SHA-512 sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required username="user" password="pass";
      C. security.protocol=SASL_PLAINTEXT sasl.mechanism=SCRAM-SHA-512 sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required username="user" password="pass";
      D. security.protocol=SASL_SSL sasl.mechanism=SCRAM-SHA-512 sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required username="user" password="pass";

      Solution

      1. Step 1: Identify correct security.protocol for SASL SCRAM over SSL

        It must be 'SASL_SSL' to use SASL authentication over SSL.
      2. Step 2: Match sasl.mechanism and jaas config

        For SCRAM-SHA-512, sasl.mechanism must be 'SCRAM-SHA-512' and jaas config must use ScramLoginModule.
      3. Step 3: Verify options

        security.protocol=SASL_SSL sasl.mechanism=SCRAM-SHA-512 sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required username="user" password="pass"; matches all requirements. security.protocol=SSL sasl.mechanism=SCRAM-SHA-512 sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required username="user" password="pass"; misses SASL in protocol. security.protocol=SASL_PLAINTEXT sasl.mechanism=SCRAM-SHA-512 sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required username="user" password="pass"; uses PLAINTEXT transport. security.protocol=SASL_SSL sasl.mechanism=PLAIN sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="user" password="pass"; uses PLAIN mechanism, not SCRAM.
      4. Final Answer:

        security.protocol=SASL_SSL sasl.mechanism=SCRAM-SHA-512 sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required username="user" password="pass"; -> Option D
      5. Quick Check:

        SASL_SSL + SCRAM-SHA-512 + ScramLoginModule = security.protocol=SASL_SSL sasl.mechanism=SCRAM-SHA-512 sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required username="user" password="pass"; [OK]
      Hint: Use SASL_SSL with matching SCRAM mechanism and login module [OK]
      Common Mistakes:
      • Using SSL without SASL for SCRAM
      • Mixing PLAIN mechanism with SCRAM config
      • Setting security.protocol to PLAINTEXT
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard