[ https://issues.apache.org/jira/browse/NIFI-3528?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15934756#comment-15934756 ]
ASF GitHub Bot commented on NIFI-3528: -------------------------------------- GitHub user pvillard31 opened a pull request: https://github.com/apache/nifi/pull/1606 NIFI-3528 Added support for keytab/principal to Kafka 0.10 processors Thank you for submitting a contribution to Apache NiFi. In order to streamline the review of the contribution we ask you to ensure the following steps have been taken: ### For all changes: - [X] Is there a JIRA ticket associated with this PR? Is it referenced in the commit message? - [X] Does your PR title start with NIFI-XXXX where XXXX is the JIRA number you are trying to resolve? Pay particular attention to the hyphen "-" character. - [X] Has your PR been rebased against the latest commit within the target branch (typically master)? - [X] Is your initial contribution a single, squashed commit? ### For code changes: - [X] Have you ensured that the full suite of tests is executed via mvn -Pcontrib-check clean install at the root nifi folder? - [X] Have you written or updated unit tests to verify your changes? ### Note: Please ensure that once the PR is submitted, you check travis-ci for build issues and submit an update to your PR as soon as possible. ================================================== At the moment, it is not possible to have multi-tenancy when using Kafka processors: a single JAAS configuration file must be set in JVM variables to allow communication with Kerberos enabled Kafka cluster. Since the release of Kafka client 0.10.2, this has been improved and it gives the possibility to define a Login Module at processor level. Here is a summary of the tests performed: on a standalone NiFi instance, only the ``krb5.conf`` file path has been set in ``nifi.properties``. And the following workflow has been used: <img width="1009" alt="screen shot 2017-03-21 at 4 06 44 pm" src="https://cloud.githubusercontent.com/assets/11541012/24154067/7546606a-0e50-11e7-9502-d6607fd3f3fd.png"> Each Publish/Consume is using its own pair of user keytab/principal and consume/publish from/to a queue where correct ACLs have been set for the corresponding users. By looking at the audit logs, we can confirm that the authentication on each queue is correctly performed and that we have the expected behavior. At the moment, I used the following JAAS input as the standard: ```` KafkaClient { com.sun.security.auth.module.Krb5LoginModule required useTicketCache=false renewTicket=true serviceName="kafka" useKeyTab=true keyTab="/path/to/keytab" principal="princi...@example.com"; }; ```` and I only exposed the keytab and principal as new properties. The other properties are not exposed but that's something we could add if necessary/useful. You can merge this pull request into a Git repository by running: $ git pull https://github.com/pvillard31/nifi NIFI-3528 Alternatively you can review and apply these changes as the patch at: https://github.com/apache/nifi/pull/1606.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #1606 ---- commit e8571a5be32dc2201973ef491d267e592038b552 Author: Pierre Villard <pierre.villard...@gmail.com> Date: 2017-03-21T14:48:53Z NIFI-3528 Added support for keytab/principal to Kafka 0.10 processors ---- > Include dynamic JAAS configuration for Kafka processors 0.10+ > ------------------------------------------------------------- > > Key: NIFI-3528 > URL: https://issues.apache.org/jira/browse/NIFI-3528 > Project: Apache NiFi > Issue Type: Improvement > Components: Extensions > Reporter: Pierre Villard > Assignee: Pierre Villard > Fix For: 1.2.0 > > > Kafka 0.10.2.0 has been released few days ago and introduced KAFKA-4259. > It should now be possible to dynamically specify the client when using Kafka > client library. Consequently, in a multi-tenant context, it won't be > necessary anymore to write as a single user (defined in JAAS configuration > file and loaded by the JVM) in all running Kafka processors. > More details here: > https://cwiki.apache.org/confluence/display/KAFKA/KIP-85%3A+Dynamic+JAAS+configuration+for+Kafka+clients -- This message was sent by Atlassian JIRA (v6.3.15#6346)