Hi Ashish,
Are you using OAuth for client->broker communication, inter-broker
communication, or both?
Based on the server.properties configuration that was shared, it looks like the
configuration is attempting to set up inter-broker communication using OAuth.
For a broker to *retrieve* tokens , it needs to have this configuration:
listener.name.SASL_PLAINTEXT.oauthbearer.sasl.login.callback.handler.class=org.apache.kafka.common.security.oauthbearer.OAuthBearerLoginCallbackHandler
For a broker to *validate* tokens, it needs to have this configuration:
listener.name.SASL_PLAINTEXT.oauthbearer.sasl.server.callback.handler.class=org.apache.kafka.common.security.oauthbearer.OAuthBearerValidatorCallbackHandler
Then the SASL configs would need to be included too:
listener.name.SASL_PLAINTEXT.oauthbearer.sasl.jaas.config=org.apache.kafka.common.security.oauthbearer.OAuthBearerLoginModule
required \
clientId="XXXXXXXXXXXXXXXXXX"
clientSecret="XXXXXXXXXXXXXXXXXX"
audience="https://myprovider.com"
serviceName="kafka"
scope="kafka.read kafka.write";
If possible, please share any non-sensitive logs.
Thanks,
Kirk
On Wed, Mar 19, 2025, at 3:41 AM, ashish sood wrote:
> Hi All,
>
> I am setting up oauth for my Kafka broker. I have set up an account on Auth0
> for the same and set up an application and API.
>
> With the below config in the server.properties and Jaas.config file I keep
> getting invalid token. Although if I generate a manual token via curl it
> works fine. Also Auth0 logs show successful generation of the token, still
> the Kafka shows error. Any suggestions to resolve this issue would be
> appreciated.
>
> *Server.properties*
> listeners=SASL_PLAINTEXT://:9093
> advertised.listeners=SASL_PLAINTEXT://<XXXXXX>:9093
> sasl.enabled.mechanisms=OAUTHBEARER
> sasl.oauthbearer.jwks.endpoint.url=https://XXXXXXXXX/oauth/token
> <https://xxxxxxxxx/oauth/token>
> sasl.oauthbearer.expected.audience=https://myprovider.com
> oauthbearer.sasl.jaas.config=org.apache.kafka.common.security.oauthbearer.OAuthBearerLoginModule
> required;
> listener.name.sasl_plaintext.oauthbearer.sasl.login.callback.handler.class=org.apache.kafka.common.security.oauthbearer.secured.OAuthBearerLoginCallbackHandler
> confluent.oauth.groups.claim.name=groups
> inter.broker.listener.name=SASL_PLAINTEXT
> sasl.mechanism.inter.broker.protocol=OAUTHBEARER
> super.users=User:<ClientID>
> sasl.oauthbearer.token.endpoint.url=<XXXXXXXXX>/oauth/token
> sasl.oauthbearer.audience=https://myprovider.com
> allow.everyone.if.no.acl.found=true
> **
> *Jaas Config*
> KafkaServer {
> org.apache.kafka.common.security.oauthbearer.OAuthBearerLoginModule
> required
> clientId="XXXXXXXXXXXXXXXXXX"
> clientSecret="XXXXXXXXXXXXXXXXXX"
> audience="https://myprovider.com"
> serviceName="kafka"
> scope="kafka.read kafka.write";
> };
>
> *Error*
> [2025-03-19 16:05:43,465] INFO [Controller id=0, targetBrokerId=0] Failed
> authentication with localhost/127.0.0.1 (channelId=0)
> ({"status":"invalid_token"}) (org.apache.kafka.common.network.Selector)
>
> image.png
>
> image.png
>
> Thanks & Regards
>
>
>
>
>
>
> ReplyForward
>
>
> Add reaction