This error indicates that the client krb5 configuration file (i.e.
krb5.conf or
krb5.ini) is not being referenced by the TIBCO Streaming application, or it does not define the Kerberos realm name in which the Kafka service runs.
First, make sure that the application is referencing the krb5 configuration file. This can be done by setting the Java system property '
java.security.krb5.conf'. For example, in a StreamBase Engine HOCON configuration:
StreamBaseEngine = {
jvmArgs = [
"-Djava.security.auth.login.config=C:/configs/kafka_client_jaas.conf"
"-Djava.security.krb5.conf=C:/configs/krb5.conf"
]
}
In addition, confirm that your krb5 configuration file includes the definition for the Kerberos realm in which Kafka is run. For example:
[realms]
KAFKA.SECURE = {
kdc = ec2-174-129-102-157.compute-1.amazonaws.com
admin_server = ec2-174-129-102-157.compute-1.amazonaws.com
}
[domain_realm]
.amazonaws.com = KAFKA.SECURE
amazonaws.com = KAFKA.SECURE
Confirm that the client machine (i.e. the machine running your TIBCO Streaming application) can reach the kdc and admin servers noted in the krb5 configuration file. The default communication port for Kerberos is tcp/udp port 88. Check with your Kerberos administrator to confirm.
To assist in troubleshooting, set the
sun.security.krb5.debug system property to 'true'. Again, you may do this in your SB Engine configuration:
StreamBaseEngine = {
jvmArgs = [
"-Djava.security.auth.login.config=C:/configs/kafka_client_jaas.conf"
"-Djava.security.krb5.conf=C:/configs/krb5.conf"
"-Dsun.security.krb5.debug=true"
]
}
For detailed guidance on configuring the Kafka adapters for Kerberos authentication, refer to the Knowledge article entitled
"How to enable Kerberos SASL/SSL authentication for the TIBCO Streaming Kafka adapters".