[ 
https://issues.apache.org/jira/browse/KAFKA-13894?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Yiming Zang updated KAFKA-13894:
--------------------------------
    Component/s: clients

> Extend Kafka kerberos auth support to beyond only hostname
> ----------------------------------------------------------
>
>                 Key: KAFKA-13894
>                 URL: https://issues.apache.org/jira/browse/KAFKA-13894
>             Project: Kafka
>          Issue Type: Improvement
>          Components: clients
>            Reporter: Yiming Zang
>            Priority: Major
>
> {*}Problem{*}:
> Currently Kafka client only support using the Kafka broker hostname in the 
> kerberos authentication process ([Source 
> Code|https://github.com/apache/kafka/blob/trunk/clients/src/main/java/org/apache/kafka/common/network/SaslChannelBuilder.java#L231]).
> However, not all companies support per-host based keytabs. It is a common 
> practice that a keytabs which contains a shared identity name is used 
> instead. To support this kind of Kerberos set ups, we need to make some 
> changes to make Kafka support a customized service name apart from just using 
> the hostname for authentication.
> {*}Proposal{*}:
> To address this issue, we propose to add an extra client side configuration 
> for Kerberos authentication. If user provide that configuration, we will use 
> whatever is provided to replace the hostname, otherwise we will default back 
> to use hostnames. Here's an example:
>  
> {code:java}
> String kerberosServiceNameFromConfig = 
> (String)configs.get(SaslConfigs.SASL_KERBEROS_SERVICE_NAME);
> String hostnameOrServiceName = (kerberosServiceNameFromConfig == null || 
> kerberosServiceNameFromConfig.trim().isEmpty()) ? 
> socket.getInetAddress().getHostName() : kerberosServiceNameFromConfig;
> authenticatorCreator = () -> buildClientAuthenticator(configs,
>   saslCallbackHandlers.get(clientSaslMechanism),
>   id,
>   hostnameOrServiceName,
>   loginManager.serviceName(),
>   transportLayer,
>   subjects.get(clientSaslMechanism));{code}
>  
>  
>  



--
This message was sent by Atlassian Jira
(v8.20.7#820007)

Reply via email to