Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
kafka-keycloak-oauth — Apache Kafka 4.1.0 (KRaft) Keycloak OAuth2 प्रमाणीकरण के साथ Strimzi का उपयोग करते हुए - CVE-2025-27817 URL अनुमति-सूची प्रतिबंध को बायपास करता है | Kitploit
उपकरण/GitHubGitHub/oriolrius/kafka-keycloak-oauth
क्लाउड इन्फ्रास्ट्रक्चर सुरक्षाभेद्यता विश्लेषणकॉन्फ़िगरेशन ऑडिटिंगDevSecOpsप्रमाणीकरणलर्निंग और शिक्षा
GitHuboriolrius/kafka-keycloak-oauth

kafka-keycloak-oauth

Apache Kafka 4.1.0 (KRaft) Keycloak OAuth2 प्रमाणीकरण के साथ Strimzi का उपयोग करते हुए - CVE-2025-27817 URL अनुमति-सूची प्रतिबंध को बायपास करता है

रिपॉजिटरी देखें
531011 महीने पहलेअभी तक समीक्षित नहीं

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

Apache Kafka 4.1.0 Keycloak OAuth2 प्रमाणीकरण के साथ

प्रोडक्शन-रेडी Apache Kafka 4.1.0 (KRaft मोड) Keycloak 26.1.1 OAuth2/OIDC प्रमाणीकरण के साथ, Strimzi Kafka इमेज का उपयोग करते हुए।

यह प्रोजेक्ट kafka-oauth-keycloak-tls-demo से क्यों बेहतर है

यह पिछले POC का विकास है जिसमें महत्वपूर्ण सुधार हैं:

  • Strimzi OAuth 0.17.0 (बनाम 1.0.0) - Strimzi Kafka 0.48.0 इमेज में बंडल किया गया स्थिर प्रोडक्शन संस्करण
  • कोई कस्टम Docker बिल्ड आवश्यक नहीं - OAuth पूर्व-स्थापित के साथ आधिकारिक Strimzi इमेज का उपयोग करता है, Dockerfile जटिलता को समाप्त करता है
  • CVE-2025-27817 जागरूकता - URL allowlist प्रतिबंध और Strimzi OAuth इसे क्यों बायपास करता है, इसका दस्तावेज़ीकरण
  • सरलीकृत आर्किटेक्चर - एकल KRaft संयुक्त मोड (broker+controller), विभाजित आर्किटेक्चर नहीं
  • librdkafka क्लाइंट फोकस - confluent-kafka-python के साथ परीक्षण किया गया (URL allowlist समस्याओं के बिना काम करता है), Java नेटिव क्लाइंट नहीं
  • व्यापक तकनीकी दस्तावेज़ीकरण - प्रोडक्शन चेकलिस्ट, समस्या निवारण, प्रदर्शन ट्यूनिंग, principal मैपिंग विवरण
  • स्वच्छ प्रमाणपत्र प्रबंधन - तत्काल परीक्षण के लिए शामिल उदाहरण प्रमाणपत्र
  • स्वचालित Keycloak सेटअप - audience कॉन्फ़िगरेशन के साथ स्क्रिप्टेड realm/client/mapper निर्माण
  • कार्यशील Python परीक्षण सूट - एंड-टू-एंड OAuth संदेश वितरण को मान्य करता है
  • स्पष्ट issuer URL हैंडलिंग - token endpoint बनाम issuer सत्यापन के लिए आंतरिक बनाम बाहरी URL द्वंद्व का दस्तावेज़ीकरण
  • आर्किटेक्चर

    • Kafka वितरण: Strimzi Kafka इमेज 0.48.0 (Apache Kafka 4.1.0 + Strimzi OAuth 0.17.0 पूर्व-बंडल शामिल)
    • Kafka संस्करण: Apache Kafka 4.1.0 (KRaft संयुक्त broker+controller)
    • OAuth लाइब्रेरी: Strimzi Kafka OAuth 0.17.0 (इमेज में बंडल, CVE-2025-27817 URL allowlist प्रतिबंध को बायपास करता है)
    • OAuth प्रदाता: Keycloak 26.1.1
    • सुरक्षा: बाहरी क्लाइंट के लिए SASL_SSL (OAuth), inter-broker के लिए PLAINTEXT, self-signed CA के साथ SSL

    CVE-2025-27817 संदर्भ

    Apache Kafka 4.0.0+ ने SSRF/मनमाना फ़ाइल पढ़ने की भेद्यता को ठीक करने के लिए URL allowlist (org.apache.kafka.sasl.oauthbearer.allowed.urls) को JVM सिस्टम प्रॉपर्टी के रूप में पेश किया। यह नेटिव Apache Kafka क्लाइंट में मानक OAuth उपयोग को तोड़ देता है।

    समाधान: Strimzi Kafka OAuth लाइब्रेरी इस प्रतिबंध को लागू नहीं करती है, जिससे Kafka 4.1.0 के साथ OAuth कार्यक्षमता सक्षम होती है।

    पूर्वापेक्षाएँ

    • Docker Compose
    • Python 3.x uv के साथ (परीक्षण के लिए)
    • OpenSSL (प्रमाणपत्र निर्माण के लिए)

    त्वरित प्रारंभ

    root@kitploit:~
    # SSL प्रमाणपत्र उत्पन्न करें
    cd kafka-security
    ./generate-certs.sh
    cd ..
    
    # सेवाएँ प्रारंभ करें
    docker compose up -d
    
    # Keycloak सत्यापित करें
    curl http://localhost:8080/health/ready
    
    # Keycloak realm और क्लाइंट सेटअप करें
    ./scripts/setup-keycloak.sh
    
    # OAuth प्रोड्यूसर का परीक्षण करें
    source ~/.venv/bin/activate
    uv pip install confluent-kafka
    python tests/quick_test.py
    

    नेटवर्क टोपोलॉजी

    root@kitploit:~
    keycloak:8080 (HTTP) ←→ kafka-broker:9093 (SASL_SSL/OAuth)
                          ↔ kafka-broker:19092 (PLAINTEXT/inter-broker)
                          ↔ kafka-broker:29093 (PLAINTEXT/KRaft controller)
    

    SSL कॉन्फ़िगरेशन

    CA संरचना

    • रूट CA: kafka-security/ca-cert + ca-key
    • Broker Keystore: kafka-security/broker/kafka.server.keystore.jks (सर्वर प्रमाणपत्र + निजी कुंजी शामिल)
    • Broker Truststore: kafka-security/broker/kafka.server.truststore.jks (CA प्रमाणपत्र शामिल)
    • पासवर्ड: changeit (सभी keystores/truststores)

    प्रमाणपत्र विवरण

    root@kitploit:~
    # Broker प्रमाणपत्र
    CN=kafka-broker
    SAN=DNS:kafka-broker,DNS:localhost,IP:127.0.0.1
    
    # वैधता: 3650 दिन
    # कुंजी एल्गोरिथ्म: RSA 2048-बिट
    # हस्ताक्षर एल्गोरिथ्म: SHA256withRSA
    

    Keycloak OAuth कॉन्फ़िगरेशन

    Realm: kafka-realm

    क्लाइंट

    kafka-broker (confidential)

    • क्लाइंट ID: kafka-broker
    • क्लाइंट सीक्रेट: setup-keycloak.sh द्वारा स्वतः-जनित
    • उद्देश्य: Broker inter-broker OAuth प्रमाणीकरण
    • Mappers:
      • Audience mapper: JWT aud दावे में kafka-broker जोड़ता है
      • Username mapper: टोकन में preferred_username शामिल करता है

    kafka-producer (confidential)

    • क्लाइंट ID: kafka-producer
    • क्लाइंट सीक्रेट: स्वतः-जनित
    • उद्देश्य: बाहरी प्रोड्यूसर क्लाइंट
    • Grant: client_credentials
    • Mappers: kafka-broker के समान

    kafka-consumer (confidential)

    • क्लाइंट ID: kafka-consumer
    • क्लाइंट सीक्रेट: स्वतः-जनित
    • उद्देश्य: बाहरी कंज़्यूमर क्लाइंट
    • Grant: client_credentials
    • Mappers: kafka-broker के समान

    टोकन एंडपॉइंट

    root@kitploit:~
    POST http://localhost:8080/realms/kafka-realm/protocol/openid-connect/token
    Content-Type: application/x-www-form-urlencoded
    
    grant_type=client_credentials
    &client_id=kafka-producer
    &client_secret=<secret>
    &scope=profile email
    

    JWT टोकन संरचना

    root@kitploit:~
    {
      "aud": ["kafka-broker", "account"],
      "iss": "http://localhost:8080/realms/kafka-realm",
      "azp": "kafka-producer",
      "preferred_username": "service-account-kafka-producer",
      "scope": "profile email"
    }
    

    Kafka कॉन्फ़िगरेशन

    KRaft मोड (kraft-config.properties)

    root@kitploit:~
    # नोड पहचान
    node.id=1
    process.roles=broker,controller
    controller.quorum.voters=1@kafka-broker:29093
    
    # Listeners
    listeners=SASL_SSL://0.0.0.0:9093,PLAINTEXT://0.0.0.0:19092,CONTROLLER://0.0.0.0:29093
    advertised.listeners=SASL_SSL://localhost:9093,PLAINTEXT://kafka-broker:19092
    listener.security.protocol.map=SASL_SSL:SASL_SSL,PLAINTEXT:PLAINTEXT,CONTROLLER:PLAINTEXT
    inter.broker.listener.name=PLAINTEXT
    controller.listener.names=CONTROLLER
    
    # SASL तंत्र
    sasl.enabled.mechanisms=OAUTHBEARER
    
    # Strimzi OAuth हैंडलर (SASL_SSL के लिए प्रति-listener)
    listener.name.sasl_ssl.oauthbearer.sasl.login.callback.handler.class=io.strimzi.kafka.oauth.client.JaasClientOauthLoginCallbackHandler
    listener.name.sasl_ssl.oauthbearer.sasl.server.callback.handler.class=io.strimzi.kafka.oauth.server.JaasServerOauthValidatorCallbackHandler
    
    # JAAS के माध्यम से OAuth कॉन्फ़िगरेशन
    listener.name.sasl_ssl.oauthbearer.sasl.jaas.config=org.apache.kafka.common.security.oauthbearer.OAuthBearerLoginModule required \
      oauth.client.id="kafka-broker" \
      oauth.client.secret="<secret>" \
      oauth.token.endpoint.uri="http://keycloak:8080/realms/kafka-realm/protocol/openid-connect/token" \
      oauth.valid.issuer.uri="http://localhost:8080/realms/kafka-realm" \
      oauth.jwks.endpoint.uri="http://keycloak:8080/realms/kafka-realm/protocol/openid-connect/certs" \
      oauth.username.claim="preferred_username";
    

    मुख्य Strimzi OAuth पैरामीटर

    • oauth.client.id: टोकन अधिग्रहण के लिए क्लाइंट पहचानकर्ता
    • oauth.client.secret: टोकन अधिग्रहण के लिए क्लाइंट सीक्रेट
    • oauth.token.endpoint.uri: Keycloak टोकन एंडपॉइंट (broker आंतरिक होस्टनाम keycloak:8080 का उपयोग करता है)
    • oauth.valid.issuer.uri: अपेक्षित JWT issuer (टोकन iss दावे से मेल खाना चाहिए, बाहरी localhost:8080 का उपयोग करता है)
    • oauth.jwks.endpoint.uri: JWT हस्ताक्षर सत्यापन के लिए JWKS एंडपॉइंट
    • oauth.username.claim: principal निष्कर्षण के लिए JWT दावा

    प्राधिकरण

    root@kitploit:~
    authorizer.class.name=org.apache.kafka.metadata.authorizer.StandardAuthorizer
    super.users=User:kafka-broker;User:ANONYMOUS
    allow.everyone.if.no.acl.found=true
    

    नोट: वर्तमान में परीक्षण के लिए अनुमेय। प्रोडक्शन को ACL का उपयोग करना चाहिए।

    क्लाइंट कॉन्फ़िगरेशन

    Python प्रोड्यूसर (confluent-kafka)

    root@kitploit:~
    from confluent_kafka import Producer
    
    conf = {
        'bootstrap.servers': 'localhost:9093',
        'security.protocol': 'SASL_SSL',
        'sasl.mechanisms': 'OAUTHBEARER',
        'sasl.oauthbearer.method': 'oidc',
        'sasl.oauthbearer.client.id': 'kafka-producer',
        'sasl.oauthbearer.client.secret': '<secret>',
        'sasl.oauthbearer.token.endpoint.url': 'http://localhost:8080/realms/kafka-realm/protocol/openid-connect/token',
        'ssl.ca.location': 'kafka-security/ca-cert',
        'ssl.endpoint.identification.algorithm': 'none',
    }
    
    producer = Producer(conf)
    producer.produce('topic', b'message')
    producer.flush()
    

    Python कंज़्यूमर (confluent-kafka)

    root@kitploit:~
    from confluent_kafka import Consumer
    
    conf = {
        'bootstrap.servers': 'localhost:9093',
        'group.id': 'test-group',
        'security.protocol': 'SASL_SSL',
        'sasl.mechanisms': 'OAUTHBEARER',
        'sasl.oauthbearer.method': 'oidc',
        'sasl.oauthbearer.client.id': 'kafka-consumer',
        'sasl.oauthbearer.client.secret': '<secret>',
        'sasl.oauthbearer.token.endpoint.url': 'http://localhost:8080/realms/kafka-realm/protocol/openid-connect/token',
        'ssl.ca.location': 'kafka-security/ca-cert',
        'ssl.endpoint.identification.algorithm': 'none',
        'auto.offset.reset': 'earliest',
    }
    
    consumer = Consumer(conf)
    consumer.subscribe(['topic'])
    while True:
        msg = consumer.poll(1.0)
        if msg: print(msg.value())
    

    librdkafka क्यों काम करता है

    confluent-kafka-python librdkafka (C लाइब्रेरी) का उपयोग करता है जो sasl.oauthbearer.method=oidc के माध्यम से OAuth लागू करती है। यह कार्यान्वयन org.apache.kafka.sasl.oauthbearer.allowed.urls सिस्टम प्रॉपर्टी की जाँच नहीं करता है जो नेटिव Apache Kafka Java क्लाइंट को ब्लॉक करती है।

    समस्या निवारण

    OAuth टोकन सत्यापित करें

    root@kitploit:~
    TOKEN=$(curl -s -X POST http://localhost:8080/realms/kafka-realm/protocol/openid-connect/token \
      -d "grant_type=client_credentials" \
      -d "client_id=kafka-producer" \
      -d "client_secret=<secret>" | jq -r .access_token)
    
    echo $TOKEN | cut -d. -f2 | base64 -d 2>/dev/null | jq .
    

    अपेक्षित दावे:

    root@kitploit:~
    {
      "aud": ["kafka-broker", "account"],
      "iss": "http://localhost:8080/realms/kafka-realm",
      "azp": "kafka-producer",
      "preferred_username": "service-account-kafka-producer"
    }
    

    Broker OAuth लॉग जाँचें

    root@kitploit:~
    docker logs kafka-broker 2>&1 | grep -E "Strimzi|JWTSignatureValidator|OAUTHBEARER"
    

    अपेक्षित:

    root@kitploit:~
    [io.strimzi.kafka.oauth.validator.JWTSignatureValidator] JWKS keys change detected
    

    Broker Listeners सत्यापित करें

    root@kitploit:~
    docker exec kafka-broker netstat -tlnp | grep java
    

    अपेक्षित:

    root@kitploit:~
    tcp6  0.0.0.0:9093   LISTEN  (SASL_SSL)
    tcp6  0.0.0.0:19092  LISTEN  (PLAINTEXT)
    tcp6  0.0.0.0:29093  LISTEN  (CONTROLLER)
    

    KRaft मेटाडेटा जाँचें

    root@kitploit:~
    docker exec kafka-broker cat /var/lib/kafka/data/meta.properties
    

    अपेक्षित:

    root@kitploit:~
    version=1
    cluster.id=kafka-cluster-01
    node.id=1
    

    सामान्य समस्याएँ

    समस्या: {"status":"invalid_token"}

    • कारण: JWT हस्ताक्षर सत्यापन विफलता
    • समाधान: सत्यापित करें कि oauth.jwks.endpoint.uri broker कंटेनर से पहुंच योग्य है
    • जाँच: docker exec kafka-broker curl http://keycloak:8080/realms/kafka-realm/protocol/openid-connect/certs

    समस्या: Token audience mismatch

    • कारण: JWT aud दावे में kafka-broker शामिल नहीं है
    • समाधान: audience mapper जोड़ने के लिए ./scripts/setup-keycloak.sh चलाएँ
    • सत्यापन: टोकन डिकोड करें और जाँचें कि aud दावे में kafka-broker शामिल है

    समस्या: Token issuer mismatch

    • कारण: JWT iss oauth.valid.issuer.uri से मेल नहीं खाता
    • समाधान: सुनिश्चित करें कि oauth.valid.issuer.uri=http://localhost:8080/realms/kafka-realm (बाहरी होस्टनाम)
    • नोट: Broker टोकन एंडपॉइंट के लिए http://keycloak:8080 का उपयोग करता है लेकिन http://localhost:8080 issuer के विरुद्ध सत्यापित करता है

    समस्या: नेटिव Java Kafka क्लाइंट URL allowlist त्रुटि के साथ विफल होते हैं

    • कारण: Apache Kafka 4.1.0 में CVE-2025-27817 फिक्स
    • समाधान: librdkafka-आधारित क्लाइंट (confluent-kafka-python) या broker पक्ष पर Strimzi OAuth का उपयोग करें (पहले से कॉन्फ़िगर किया गया)

    प्रदर्शन ट्यूनिंग

    टोकन रीफ्रेश

    Keycloak से JWT टोकन की समाप्ति 5 मिनट है। Strimzi OAuth स्वचालित रूप से रीफ्रेश संभालता है:

    • oauth.refresh.token: उपयोग नहीं किया गया (client_credentials grant)
    • टोकन कैश किया जाता है और समाप्ति से 30 सेकंड पहले रीफ्रेश किया जाता है

    JWKS कैशिंग

    root@kitploit:~
    sasl.oauthbearer.jwks.endpoint.refresh.ms=3600000  # 1 घंटा
    sasl.oauthbearer.jwks.endpoint.retry.backoff.ms=100
    sasl.oauthbearer.jwks.endpoint.retry.backoff.max.ms=10000
    

    कनेक्शन सेटिंग्स

    root@kitploit:~
    connections.max.idle.ms=600000
    connection.failed.authentication.delay.ms=1000
    

    प्रोडक्शन चेकलिस्ट

    • Self-signed प्रमाणपत्रों को CA-हस्ताक्षरित प्रमाणपत्रों से बदलें
    • ssl.endpoint.identification.algorithm=https अपडेट करें (none हटाएँ)
    • उचित ACL कॉन्फ़िगर करें (allow.everyone.if.no.acl.found=true हटाएँ)
    • ACL सेटअप करें:
      root@kitploit:~
      kafka-acls --bootstrap-server localhost:9093 \
        --command-config admin.properties \
        --add --allow-principal User:kafka-producer \
        --operation Write --topic '*'
      
    • Keycloak क्लाइंट सीक्रेट घुमाएँ
    • Keycloak HTTPS सक्षम करें
    • oauth.token.endpoint.uri और oauth.jwks.endpoint.uri को HTTPS URL में अपडेट करें
    • Kafka मॉनिटरिंग कॉन्फ़िगर करें (JMX, Prometheus)
    • OAuth ऑडिट ट्रेल के लिए लॉग एकत्रीकरण सेटअप करें
    • फेलओवर परिदृश्यों का परीक्षण करें
    • सीक्रेट रोटेशन प्रक्रियाओं का दस्तावेज़ीकरण करें
    • यदि आवश्यक हो तो Keycloak उपयोगकर्ता फेडरेशन (LDAP/AD) सक्षम करें

    निर्देशिका संरचना

    root@kitploit:~
    .
    ├── docker-compose.yml              # ऑर्केस्ट्रेशन
    ├── .env                            # सीक्रेट (gitignored)
    ├── kafka-config/
    │   ├── kraft-config.properties     # Kafka broker कॉन्फ़िगरेशन
    │   ├── producer.properties         # प्रोड्यूसर OAuth कॉन्फ़िग (CLI टूल्स के लिए)
    │   └── consumer.properties         # कंज़्यूमर OAuth कॉन्फ़िग (CLI टूल्स के लिए)
    ├── kafka-security/
    │   ├── generate-certs.sh           # SSL प्रमाणपत्र जनरेटर
    │   ├── ca-cert                     # रूट CA प्रमाणपत्र
    │   ├── ca-key                      # रूट CA निजी कुंजी
    │   └── broker/
    │       ├── kafka.server.keystore.jks
    │       └── kafka.server.truststore.jks
    ├── scripts/
    │   └── setup-keycloak.sh           # Keycloak realm/client सेटअप
    └── tests/
        └── quick_test.py               # OAuth सत्यापन परीक्षण
    
    

    तकनीकी नोट्स

    Apache Kafka आधिकारिक इमेज के बजाय Strimzi Kafka इमेज क्यों

    आधिकारिक Apache Kafka इमेज के बजाय Strimzi Kafka इमेज (quay.io/strimzi/kafka:0.48.0-kafka-4.1.0) का उपयोग किया जाता है क्योंकि:

    1. बंडल OAuth समर्थन: Strimzi OAuth 0.17.0 लाइब्रेरी पूर्व-स्थापित शामिल है (क्लासेस: io.strimzi.kafka.oauth.*)
    2. CVE-2025-27817 बायपास: Strimzi OAuth लाइब्रेरी URL allowlist प्रतिबंध लागू नहीं करती है जो नेटिव Kafka OAuth को तोड़ती है
    3. प्रोडक्शन रेडी: Strimzi Operator के माध्यम से Kubernetes वातावरण में युद्ध-परीक्षित
    4. एकल इमेज: OAuth JAR फ़ाइलों को मैन्युअल रूप से डाउनलोड और माउंट करने की आवश्यकता नहीं

    इमेज विवरण:

    • Strimzi Kafka 0.48.0 = Docker इमेज संस्करण/रिलीज़
    • Apache Kafka 4.1.0 = अंदर बंडल किया गया Kafka broker संस्करण
    • Strimzi OAuth 0.17.0 = अंदर बंडल किया गया OAuth लाइब्रेरी संस्करण

    Issuer URL द्वंद्व

    Broker कॉन्फ़िगरेशन में दो URL हैं:

    • oauth.token.endpoint.uri=http://keycloak:8080/... (आंतरिक Docker नेटवर्क)
    • oauth.valid.issuer.uri=http://localhost:8080/... (बाहरी, JWT iss दावे से मेल खाता है)

    ऐसा इसलिए है क्योंकि:

    • Broker आंतरिक DNS नाम का उपयोग करके टोकन प्राप्त करता है
    • Keycloak बाहरी issuer URL के साथ टोकन जारी करता है (realm सेटिंग्स में कॉन्फ़िगर किया गया)
    • JWT सत्यापन के लिए सटीक issuer मिलान आवश्यक है

    Principal मैपिंग

    Broker JWT preferred_username दावे से principal निकालता है:

    root@kitploit:~
    service-account-kafka-producer → User:service-account-kafka-producer
    

    ACL प्राधिकरण के लिए इस principal को संदर्भित करते हैं।

    संस्करण संगतता

    घटकसंस्करणनोट्स
    Apache Kafka4.1.0KRaft मोड (कोई ZooKeeper नहीं)
    Strimzi Kafka इमेज0.48.0Docker इमेज: quay.io/strimzi/kafka:0.48.0-kafka-4.1.0
    Strimzi OAuth लाइब्रेरी0.17.0Strimzi Kafka 0.48.0 इमेज में पूर्व-बंडल
    Keycloak26.1.1नवीनतम LTS
    librdkafka2.12.0+OIDC OAuth समर्थन
    confluent-kafka-python2.12.0+librdkafka संस्करण से मेल खाता है

    संदर्भ

    • Strimzi Kafka OAuth
    • Apache Kafka सुरक्षा
    • Keycloak OIDC
    • CVE-2025-27817
    • KRaft मोड
    टूल डाउनलोड करें