Bird
Raised Fist0
Kafkadevops~5 mins

SASL authentication in Kafka - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What does SASL stand for in Kafka authentication?
SASL stands for Simple Authentication and Security Layer. It is a framework for adding authentication support to connection-based protocols.
Click to reveal answer
beginner
Name two common SASL mechanisms used in Kafka.
Two common SASL mechanisms in Kafka are SASL/PLAIN and SASL/SCRAM. SASL/PLAIN sends username and password in plain text (usually over SSL), while SASL/SCRAM uses a challenge-response mechanism for better security.
Click to reveal answer
intermediate
How do you enable SASL authentication in Kafka broker configuration?
You enable SASL by setting 'security.inter.broker.protocol' and 'sasl.mechanism.inter.broker.protocol' in the broker's server.properties file. Also, configure 'sasl.enabled.mechanisms' to list allowed SASL mechanisms.
Click to reveal answer
intermediate
What is the role of JAAS in Kafka SASL authentication?
JAAS (Java Authentication and Authorization Service) is used to configure the login modules for SASL authentication in Kafka. It defines how Kafka clients and brokers authenticate using SASL mechanisms.
Click to reveal answer
beginner
Why is it important to use SSL/TLS with SASL/PLAIN in Kafka?
SASL/PLAIN sends credentials in clear text, so using SSL/TLS encrypts the connection to protect username and password from being intercepted.
Click to reveal answer
Which SASL mechanism uses a challenge-response protocol for authentication in Kafka?
ASASL/PLAIN
BSASL/GSSAPI
CSASL/SCRAM
DSASL/OAUTHBEARER
What configuration property enables SASL mechanisms on a Kafka broker?
Asecurity.protocol
Bsasl.enabled.mechanisms
Cssl.enabled.protocols
Dbroker.id
Which file is used to configure JAAS login modules for Kafka SASL authentication?
Ajaas.conf
Bserver.properties
Ckafka.properties
Dsasl.conf
Why should SASL/PLAIN be used only with SSL/TLS in Kafka?
ABecause SASL/PLAIN is deprecated
BBecause SASL/PLAIN encrypts passwords by itself
CBecause SSL/TLS disables SASL/PLAIN
DBecause SASL/PLAIN sends credentials in clear text
Which Kafka configuration property sets the protocol used between brokers for SASL?
Asecurity.inter.broker.protocol
Bsasl.mechanism.inter.broker.protocol
Clisteners
Dbroker.id
Explain how SASL authentication works in Kafka and why it is important.
Think about how Kafka verifies user identity securely.
You got /4 concepts.
    Describe the steps to configure SASL authentication on a Kafka broker.
    Focus on broker properties and JAAS file setup.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is the main purpose of SASL authentication in Kafka?
      easy
      A. To compress messages for faster transmission
      B. To verify user identity before allowing access
      C. To balance load between Kafka brokers
      D. To encrypt data stored on disk

      Solution

      1. Step 1: Understand SASL role in Kafka

        SASL is a protocol used to verify who is connecting to Kafka, ensuring only authorized users can access it.
      2. Step 2: Differentiate from other Kafka features

        Compression, load balancing, and disk encryption are unrelated to SASL authentication.
      3. Final Answer:

        To verify user identity before allowing access -> Option B
      4. Quick Check:

        SASL = user verification [OK]
      Hint: SASL is about user identity, not data or load [OK]
      Common Mistakes:
      • Confusing SASL with encryption
      • Thinking SASL manages data compression
      • Mixing SASL with load balancing
      2. Which of the following is the correct way to specify SASL mechanism in Kafka client configuration?
      easy
      A. security.protocol = SASL_PLAINTEXT
      B. sasl.config = PLAIN
      C. sasl.mechanism = PLAIN
      D. security.mechanism = SASL

      Solution

      1. Step 1: Identify correct property for SASL mechanism

        The Kafka client uses sasl.mechanism to specify the SASL mechanism like PLAIN, SCRAM, etc.
      2. Step 2: Check other options for correctness

        security.protocol sets protocol type, not mechanism; sasl.config is invalid; security.mechanism is not a valid property.
      3. Final Answer:

        sasl.mechanism = PLAIN -> Option C
      4. Quick Check:

        sasl.mechanism sets SASL type [OK]
      Hint: Use sasl.mechanism to set SASL type like PLAIN [OK]
      Common Mistakes:
      • Using security.protocol instead of sasl.mechanism
      • Writing sasl.config instead of sasl.mechanism
      • Confusing property names
      3. Given this Kafka client configuration snippet:
      props.put("security.protocol", "SASL_SSL");
      props.put("sasl.mechanism", "SCRAM-SHA-256");
      props.put("sasl.jaas.config", "org.apache.kafka.common.security.scram.ScramLoginModule required username=\"user1\" password=\"pass1\";");

      What will happen when the client tries to connect?
      medium
      A. Client connects using PLAINTEXT mechanism
      B. Client connects but without encryption
      C. Client fails due to missing SSL configuration
      D. Client connects securely using SCRAM-SHA-256 with encrypted channel

      Solution

      1. Step 1: Analyze security.protocol setting

        Setting security.protocol to SASL_SSL means the client uses SASL authentication over SSL encrypted connection.
      2. Step 2: Check SASL mechanism and JAAS config

        The mechanism is SCRAM-SHA-256 with proper JAAS config providing username and password, so authentication will succeed if credentials are correct.
      3. Final Answer:

        Client connects securely using SCRAM-SHA-256 with encrypted channel -> Option D
      4. Quick Check:

        SASL_SSL + SCRAM = secure auth [OK]
      Hint: SASL_SSL means secure auth with encryption [OK]
      Common Mistakes:
      • Assuming SASL_SSL means no encryption
      • Ignoring JAAS config for credentials
      • Confusing SCRAM with PLAINTEXT
      4. You have this Kafka client config:
      props.put("security.protocol", "SASL_PLAINTEXT");
      props.put("sasl.mechanism", "PLAIN");
      props.put("sasl.jaas.config", "org.apache.kafka.common.security.plain.PlainLoginModule required username=\"admin\" password=\"admin123\";");

      The client fails to authenticate. What is the most likely cause?
      medium
      A. Broker does not support SASL_PLAINTEXT
      B. Incorrect sasl.mechanism value
      C. Wrong format in sasl.jaas.config string
      D. Missing SSL configuration causes failure

      Solution

      1. Step 1: Check security.protocol compatibility

        SASL_PLAINTEXT means SASL without encryption. Many brokers disable this for security reasons.
      2. Step 2: Consider broker support

        If the broker is configured to reject SASL_PLAINTEXT connections, authentication will fail even if credentials and mechanism are correct.
      3. Final Answer:

        Broker does not support SASL_PLAINTEXT -> Option A
      4. Quick Check:

        Broker must allow SASL_PLAINTEXT [OK]
      Hint: Check if broker allows SASL_PLAINTEXT connections [OK]
      Common Mistakes:
      • Assuming SSL is required for SASL_PLAINTEXT
      • Misformatting sasl.jaas.config string
      • Using wrong sasl.mechanism value
      5. You want to configure a Kafka client to use SASL_SSL with SCRAM-SHA-512 mechanism. Which of the following is the correct minimal configuration snippet in Java?
      hard
      A. props.put("security.protocol", "SASL_SSL"); props.put("sasl.mechanism", "SCRAM-SHA-512"); props.put("sasl.jaas.config", "org.apache.kafka.common.security.scram.ScramLoginModule required username=\"user\" password=\"pass\";");
      B. props.put("security.protocol", "SSL"); props.put("sasl.mechanism", "SCRAM-SHA-512"); props.put("sasl.jaas.config", "org.apache.kafka.common.security.scram.ScramLoginModule required username=\"user\" password=\"pass\";");
      C. props.put("security.protocol", "SASL_PLAINTEXT"); props.put("sasl.mechanism", "SCRAM-SHA-256"); props.put("sasl.jaas.config", "org.apache.kafka.common.security.scram.ScramLoginModule required username=\"user\" password=\"pass\";");
      D. props.put("security.protocol", "SASL_SSL"); props.put("sasl.mechanism", "PLAIN"); props.put("sasl.jaas.config", "org.apache.kafka.common.security.plain.PlainLoginModule required username=\"user\" password=\"pass\";");

      Solution

      1. Step 1: Match security.protocol with SASL_SSL

        To use encrypted SASL, security.protocol must be SASL_SSL.
      2. Step 2: Confirm sasl.mechanism and JAAS config

        For SCRAM-SHA-512, sasl.mechanism must be SCRAM-SHA-512 and JAAS config must use ScramLoginModule with username and password.
      3. Step 3: Eliminate incorrect options

        props.put("security.protocol", "SSL"); props.put("sasl.mechanism", "SCRAM-SHA-512"); props.put("sasl.jaas.config", "org.apache.kafka.common.security.scram.ScramLoginModule required username=\"user\" password=\"pass\";"); uses SSL without SASL, C uses wrong mechanism and protocol, D uses PLAIN mechanism instead of SCRAM-SHA-512.
      4. Final Answer:

        Correct SASL_SSL with SCRAM-SHA-512 and proper JAAS config -> Option A
      5. Quick Check:

        SASL_SSL + SCRAM-SHA-512 + JAAS = props.put("security.protocol", "SASL_SSL"); props.put("sasl.mechanism", "SCRAM-SHA-512"); props.put("sasl.jaas.config", "org.apache.kafka.common.security.scram.ScramLoginModule required username=\"user\" password=\"pass\";"); [OK]
      Hint: Match protocol, mechanism, and JAAS module exactly [OK]
      Common Mistakes:
      • Using SSL instead of SASL_SSL
      • Mismatching mechanism and JAAS module
      • Using wrong SASL mechanism version
      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