Hi Sebastien,

I don't think empty jaas.conf file is a problem here. This file is
created just to satisfy some preconditions which check for existence of
that file. The actual values are passed in memory.

Usually when I had problems with kerberos it was due to hostname checks.
Make sure you use FQDN for kafka brokers.

Best,

Dawid


On 13/09/18 16:17, Aljoscha Krettek wrote:
> Hi,
>
> this definitely needs some investigation! Did you try setting the JAAS
> settings in the sasl.jaas.config property as described
> in 
> https://docs.confluent.io/current/kafka/authentication_sasl/index.html#jaas-configurations?
>
> Best,
> Aljoscha
>
>> On 11. Sep 2018, at 10:08, Sebastien Pereira <spere...@parigo.com
>> <mailto:spere...@parigo.com>> wrote:
>>
>> Hi,
>>
>> We are using Flink 1.5.3 where the Kafka producer talks with a
>> kerberized kafka (kerberos only, no SSL).
>>
>> It fails to connect to kafka with a root Exception:
>> javax.security.auth.callback.UnsupportedCallbackException: Could not
>> login: the client is being asked for a password, but the Kafka client
>> code does not currently support obtaining a password from the user.
>>
>> We have the following configuration for kerberos in flink-conf.yaml:
>> # ----------------------------------------------
>> security.kerberos.login.use-ticket-cache: false
>> security.kerberos.login.keytab:  /etc/krb5/flink.keytab
>> security.kerberos.login.principal: kafka/the.host.n...@example.com
>> <mailto:kafka/the.host.n...@example.com>
>> security.kerberos.login.contexts: KafkaClient
>> # ----------------------------------------------
>>
>> We use
>> org.apache.flink.streaming.connectors.kafka.FlinkKafkaProducer011
>> with the following properties for kerberos:
>> # ----------------------------------------------
>> security.protocol=SASL_PLAINTEXT
>> sasl.kerberos.service.name=kafka
>> # ----------------------------------------------
>>
>> From job/task managers hosts we can login with the same user which
>> runs flink processes, and successfully get a kerberos ticket:
>>
>> # ----------------------------------------------
>> kubectl exec -it <manager> -- /bin/bash
>> $ kinit kafka/hdp-2641.fyre.ibm....@example.com
>> <mailto:kafka/hdp-2641.fyre.ibm....@example.com> -k -t
>> /etc/krb5/flink.keytab
>>
>> Done!
>> New ticket is stored in cache file /opt/flink/krb5cc_bai
>> $ klist
>>
>> Credentials cache: /opt/flink/krb5cc_bai
>> Default principal: kafka/the.host.n...@example.com
>> <mailto:kafka/the.host.n...@example.com>
>> Number of entries: 1
>>
>> [1] Service principal: krbtgt/example....@example.com
>> <mailto:krbtgt/example....@example.com>
>> Valid starting: Monday, September 10, 2018 at 4:58:29 PM
>> Expires: Tuesday, September 11, 2018 at 4:58:29 PM
>> # ----------------------------------------------
>>
>> However,
>> When we check the content of the JAAS file generated in /temp, we see
>> no content apart the comments:
>>
>> /tmp$ cat jaas-4651713797960840940.conf
>> /**
>> ################################################################################
>> #  Licensed to the Apache Software Foundation (ASF) under one
>> #  or more contributor license agreements.  See the NOTICE file
>> #  distributed with this work for additional information
>> #  regarding copyright ownership.  The ASF licenses this file
>> #  to you under the Apache License, Version 2.0 (the
>> #  "License"); you may not use this file except in compliance
>> #  with the License.  You may obtain a copy of the License at
>> #
>> #      http://www.apache.org/licenses/LICENSE-2.0
>> #
>> #  Unless required by applicable law or agreed to in writing, software
>> #  distributed under the License is distributed on an "AS IS" BASIS,
>> #  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
>> implied.
>> #  See the License for the specific language governing permissions and
>> # limitations under the License.
>> ################################################################################
>> # We are using this file as an workaround for the Kafka and ZK SASL
>> implementation
>> # since they explicitly look for java.security.auth.login.config property
>> # Please do not edit/delete this file - See FLINK-3929
>> **/
>>
>> /tmp$
>>
>> - Could you confirm that we should have more in the generated JAAS file?
>> - We strongly suspect the UnsupportedCallbackException is caused by
>> missing content in the generated JAAS file.
>>
>> Thanks,
>>
>> Sebastien Pereira
>

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to