<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>question Re: Unable to autheticate to NIFI API using loadbalancer in Archives of Support Questions (Read Only)</title>
    <link>https://community.cloudera.com/t5/Archives-of-Support-Questions/Unable-to-autheticate-to-NIFI-API-using-loadbalancer/m-p/182608#M80523</link>
    <description>&lt;P&gt;&lt;A rel="user" href="https://community.cloudera.com/users/51412/nikhilr.html" nodeid="51412"&gt;@Nikhil&lt;/A&gt; &lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;P&gt;*** Forum tip:  Please try to avoid responding to an Answer by starting a new answer.  Instead use the "add comment" tp respond to en existing answer.  There is no guaranteed order to different answers which can make following a response thread difficult especially when multiple people are trying to assist you.&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;P&gt;You get a verbose output form your keystore using the keytool command&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;PRE&gt;keytool -v -list -keystore &amp;lt;keystore.jks file&amp;gt;&lt;/PRE&gt;&lt;P&gt;-&lt;/P&gt;&lt;P&gt;Look to see if your PrivateKeyEntry has any "ExtendedKeyUsages" listed.&lt;BR /&gt;It would look something like this:&lt;/P&gt;&lt;PRE&gt;#3: ObjectId: 2.5.29.37 Criticality=false
ExtendedKeyUsages [
  clientAuth
  serverAuth
]&lt;/PRE&gt;&lt;P&gt;-&lt;/P&gt;&lt;P&gt;Since you commented that the RPG works correctly when you use the URLs for the nodes directly, the certificates must support clientAuth then.  This sounds more like a LB configuration issue.  The certificate is being sent to the LB, but the LB is not forwarding that client cert on to the target end-point. &lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;P&gt;It is also not clear to me why you would configure your RPG to point at your LB instead of at one or more of the NiFi nodes directly?&lt;BR /&gt;----- The RPG will retrieve details about the entire target NiFi cluster when it connects and store/update that locally.  So there really is no need for a LB in front of the RPG.&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;P&gt;Thank you,&lt;/P&gt;&lt;P&gt;Matt&lt;/P&gt;</description>
    <pubDate>Thu, 12 Jul 2018 19:46:34 GMT</pubDate>
    <dc:creator>MattWho</dc:creator>
    <dc:date>2018-07-12T19:46:34Z</dc:date>
    <item>
      <title>Unable to autheticate to NIFI API using loadbalancer</title>
      <link>https://community.cloudera.com/t5/Archives-of-Support-Questions/Unable-to-autheticate-to-NIFI-API-using-loadbalancer/m-p/182605#M80520</link>
      <description>&lt;P&gt;We have an AWS loadbalancer setup for NIFI cluster. &lt;/P&gt;&lt;P&gt;
Authentication works fine when accessing the NIFI UI using the loadbalancer url. &lt;/P&gt;&lt;P&gt;While trying to configure Site-to-Site, authorization errors are encountered.&lt;/P&gt;&lt;P&gt;On checking the logs, seems like the NIFI API is trying to authenticate loadbalancer using the user "&lt;STRONG&gt;anonymous&lt;/STRONG&gt;" which doesnot exist. &lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Nifi UI AWS LB Url&lt;/STRONG&gt; : &lt;A href="https://dev-nifi-lb.dev-data.mytestdomain.io:8443/nifi" target="_blank"&gt;https://dev-nifi-lb.dev-data.mytestdomain.io:8443/nifi&lt;/A&gt; &lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Nifi API AWS LB Url&lt;/STRONG&gt; : &lt;A href="https://dev-nifi-lb.dev-data.mytestdomain.io:8443/nifi-api" target="_blank"&gt;https://dev-nifi-lb.dev-data.mytestdomain.io:8443/nifi-api&lt;/A&gt; &lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Loadbalancer&lt;/STRONG&gt; : HTTPS Listener on Port 8443 &lt;/P&gt;&lt;P&gt;Why NIFI is trying to access the api url "&lt;STRONG&gt;&lt;EM&gt;&lt;A href="https://dev-nifi-lb.dev-data.mytestdomain.io:8443/nifi-api" target="_blank"&gt;https://dev-nifi-lb.dev-data.mytestdomain.io:8443/nifi-api&lt;/A&gt;&lt;/EM&gt;&lt;/STRONG&gt;" using "&lt;EM&gt;&lt;STRONG&gt;anonymous&lt;/STRONG&gt;&lt;/EM&gt;" user&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Snippet : &lt;/STRONG&gt;nifi-app.log&lt;/P&gt;&lt;PRE&gt;2018-07-11 05:26:44,822 WARN [Timer-Driven Process Thread-7] o.a.n.r.util.SiteToSiteRestApiClient Failed to get controller from &lt;A href="https://dev-nifi-lb.dev-data.mytestdomain.io:8443/nifi-api" target="_blank"&gt;https://dev-nifi-lb.dev-data.mytestdomain.io:8443/nifi-api&lt;/A&gt; due to org.apache.nifi.remote.util.SiteToSiteRestApiClient$HttpGetFailedException: response code 401:Unauthorized with explanation: null
2018-07-11 05:26:44,822 DEBUG [Timer-Driven Process Thread-7] o.a.n.r.util.SiteToSiteRestApiClient
org.apache.nifi.remote.util.SiteToSiteRestApiClient$HttpGetFailedException: response code 401:Unauthorized with explanation: null
        at org.apache.nifi.remote.util.SiteToSiteRestApiClient.execute(SiteToSiteRestApiClient.java:1145)
        at org.apache.nifi.remote.util.SiteToSiteRestApiClient.execute(SiteToSiteRestApiClient.java:1179)
        at org.apache.nifi.remote.util.SiteToSiteRestApiClient.getController(SiteToSiteRestApiClient.java:374)
        at org.apache.nifi.remote.util.SiteToSiteRestApiClient.getController(SiteToSiteRestApiClient.java:355)
        at org.apache.nifi.remote.util.SiteToSiteRestApiClient.getController(SiteToSiteRestApiClient.java:340)
        at org.apache.nifi.remote.StandardRemoteProcessGroup.refreshFlowContents(StandardRemoteProcessGroup.java:796)
        at org.apache.nifi.controller.FlowController.updateRemoteProcessGroups(FlowController.java:4383)
        at org.apache.nifi.controller.FlowController.access$100(FlowController.java:254)
        at org.apache.nifi.controller.FlowController$3.run(FlowController.java:744)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)
2018-07-11 05:26:44,822 WARN [Timer-Driven Process Thread-7] o.apache.nifi.controller.FlowController Unable to communicate with remote instance RemoteProcessGroup[https://dev-nifi-lb.dev-data.mytestdomain.io:8443/nifi] due to org.apache.nifi.controller.exception.CommunicationsException: Unable to communicate with Remote NiFi at URI &lt;A href="https://dev-nifi-lb.dev-data.mytestdomain.io:8443/nifi" target="_blank"&gt;https://dev-nifi-lb.dev-data.mytestdomain.io:8443/nifi&lt;/A&gt; due to: response code 401:Unauthorized with explanation: null
2018-07-11 05:26:44,822 WARN [Timer-Driven Process Thread-7] o.apache.nifi.controller.FlowController
org.apache.nifi.controller.exception.CommunicationsException: Unable to communicate with Remote NiFi at URI &lt;A href="https://dev-nifi-lb.dev-data.mytestdomain.io:8443/nifi" target="_blank"&gt;https://dev-nifi-lb.dev-data.mytestdomain.io:8443/nifi&lt;/A&gt; due to: response code 401:Unauthorized with explanation: null
        at org.apache.nifi.remote.StandardRemoteProcessGroup.refreshFlowContents(StandardRemoteProcessGroup.java:817)
        at org.apache.nifi.controller.FlowController.updateRemoteProcessGroups(FlowController.java:4383)
        at org.apache.nifi.controller.FlowController.access$100(FlowController.java:254)
        at org.apache.nifi.controller.FlowController$3.run(FlowController.java:744)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)
&lt;/PRE&gt;&lt;P&gt;&lt;STRONG&gt;&lt;BR /&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Snippet : &lt;/STRONG&gt;nifi-user.log&lt;/P&gt;&lt;PRE&gt;2018-07-11 05:34:44,968 DEBUG [NiFi Web Server-24] o.a.n.w.s.NiFiAuthenticationFilter Checking secure context token: null
2018-07-11 05:34:44,968 DEBUG [NiFi Web Server-24] o.a.n.w.s.x509.X509CertificateExtractor No client certificate found in request.
2018-07-11 05:34:44,968 DEBUG [NiFi Web Server-24] o.a.n.w.s.NiFiAuthenticationFilter Checking secure context token: null
2018-07-11 05:34:44,968 DEBUG [NiFi Web Server-24] o.a.n.w.s.NiFiAuthenticationFilter Checking secure context token: null
2018-07-11 05:34:44,971 DEBUG [NiFi Web Server-24] o.a.n.w.s.a.NiFiAnonymousUserFilter Populated SecurityContextHolder with anonymous token: 'anonymous'
2018-07-11 05:34:44,971 INFO [NiFi Web Server-24] o.a.n.w.a.config.NotFoundExceptionMapper com.sun.jersey.api.NotFoundException: null for uri: &lt;A href="https://dev-nifi-lb.dev-data.mytestdomain.io:8443/nifi-api/controller/users" target="_blank"&gt;https://dev-nifi-lb.dev-data.mytestdomain.io:8443/nifi-api/controller/users&lt;/A&gt;. Returning Not Found response.
2018-07-11 05:34:44,972 DEBUG [NiFi Web Server-24] o.a.n.w.a.config.NotFoundExceptionMapper
com.sun.jersey.api.NotFoundException: null for uri: &lt;A href="https://dev-nifi-lb.dev-data.mytestdomain.io:8443/nifi-api/controller/users" target="_blank"&gt;https://dev-nifi-lb.dev-data.mytestdomain.io:8443/nifi-api/controller/users&lt;/A&gt;
        at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1543)
        at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1473)
        at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1419)
        at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1409)
        at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:409)
        at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:558)
        at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:733)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
        at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:841)
        at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1634)
        at org.apache.nifi.web.filter.RequestLogger.doFilter(RequestLogger.java:66)
        at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1621)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:316)
        at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:126)
        at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:90)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
        at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:122)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
        at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:111)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
        at org.apache.nifi.web.security.NiFiAuthenticationFilter.authenticate(NiFiAuthenticationFilter.java:83)
        at org.apache.nifi.web.security.NiFiAuthenticationFilter.doFilter(NiFiAuthenticationFilter.java:57)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
        at org.apache.nifi.web.security.NiFiAuthenticationFilter.authenticate(NiFiAuthenticationFilter.java:83)
        at org.apache.nifi.web.security.NiFiAuthenticationFilter.doFilter(NiFiAuthenticationFilter.java:57)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
        at org.apache.nifi.web.security.NiFiAuthenticationFilter.authenticate(NiFiAuthenticationFilter.java:83)
        at org.apache.nifi.web.security.NiFiAuthenticationFilter.doFilter(NiFiAuthenticationFilter.java:57)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
        at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:213)
        at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:176)
        at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
        at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:262)
        at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1621)
        at org.apache.nifi.web.filter.TimerFilter.doFilter(TimerFilter.java:51)
        at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1613)
        at org.apache.nifi.web.server.JettyServer$2.doFilter(JettyServer.java:908)
        at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1621)
        at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:541)
        at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
        at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)
        at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
        at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:190)
        at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1593)
        at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:188)
        at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1239)
        at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:168)
        at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:481)
        at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1562)
        at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:166)
        at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1141)
        at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
        at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:118)
        at org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:561)
        at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
        at org.eclipse.jetty.server.Server.handle(Server.java:564)
        at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:320)
        at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:251)
        at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:279)
        at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:110)
        at org.eclipse.jetty.io.ssl.SslConnection.onFillable(SslConnection.java:258)
        at org.eclipse.jetty.io.ssl.SslConnection$3.succeeded(SslConnection.java:147)
        at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:110)
        at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:124)
        at org.eclipse.jetty.util.thread.Invocable.invokePreferred(Invocable.java:122)
        at org.eclipse.jetty.util.thread.strategy.ExecutingExecutionStrategy.invoke(ExecutingExecutionStrategy.java:58)
        at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceConsume(ExecuteProduceConsume.java:201)
        at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:133)
        at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:672)
        at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:590)
        at java.lang.Thread.run(Thread.java:748)
&lt;/PRE&gt;</description>
      <pubDate>Wed, 11 Jul 2018 12:58:08 GMT</pubDate>
      <guid>https://community.cloudera.com/t5/Archives-of-Support-Questions/Unable-to-autheticate-to-NIFI-API-using-loadbalancer/m-p/182605#M80520</guid>
      <dc:creator>nikhilr</dc:creator>
      <dc:date>2018-07-11T12:58:08Z</dc:date>
    </item>
    <item>
      <title>Re: Unable to autheticate to NIFI API using loadbalancer</title>
      <link>https://community.cloudera.com/t5/Archives-of-Support-Questions/Unable-to-autheticate-to-NIFI-API-using-loadbalancer/m-p/182606#M80521</link>
      <description>&lt;P&gt;&lt;A rel="user" href="https://community.cloudera.com/users/51412/nikhilr.html" nodeid="51412"&gt;@Nikhil&lt;/A&gt;&lt;/P&gt;&lt;P&gt;NiFi Site-To-Site uses two-way TLS authentication.&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;P&gt;Check to make sure the keystore file being used on each of your NiFi nodes contains a single "PrivateKeyEntry" and make sure the PrivateKeyEntry supports both the ClientAuth and ServerAuth key usage.&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;P&gt;If the PrivateKeyEntry supports serverAuth only, the NiFi service will not be able to provide a client certificate in the TLS handshake.&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;P&gt;I also noticed timestamps for entries in your nifi-user.log to not match with timestamps from the shared nifi-app.log file.  The entries specifically shared are not directly related to one another.&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;P&gt;Thank you,&lt;/P&gt;&lt;P&gt;Matt&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;</description>
      <pubDate>Thu, 12 Jul 2018 00:28:30 GMT</pubDate>
      <guid>https://community.cloudera.com/t5/Archives-of-Support-Questions/Unable-to-autheticate-to-NIFI-API-using-loadbalancer/m-p/182606#M80521</guid>
      <dc:creator>MattWho</dc:creator>
      <dc:date>2018-07-12T00:28:30Z</dc:date>
    </item>
    <item>
      <title>Re: Unable to autheticate to NIFI API using loadbalancer</title>
      <link>https://community.cloudera.com/t5/Archives-of-Support-Questions/Unable-to-autheticate-to-NIFI-API-using-loadbalancer/m-p/182607#M80522</link>
      <description>&lt;P&gt;Hi Matt,&lt;/P&gt;&lt;P&gt;Thanks for your update and sorry for the delay in getting back&lt;/P&gt;&lt;P&gt;Regarding, &lt;/P&gt;&lt;PRE&gt;Check to make sure the keystore file being used on each of your NiFi nodes contains a single "PrivateKeyEntry" and make sure the PrivateKeyEntry supports both the ClientAuth and ServerAuth key usage.

If the PrivateKeyEntry supports serverAuth only, the NiFi service will not be able to provide a client certificate in the TLS handshake.
&lt;/PRE&gt;&lt;P&gt;I am using a self signed certificate for all the NIFI servers and Load Balancer, which is signed by a private CA. Each NIFI certificates has the its hostname and LB name as SAN. All these certificates has only a single private key for each.&lt;/P&gt;&lt;P&gt;I have also used the toolkit for creating the SSL certificates for NIFI servers and LB. But still the results are the same.&lt;/P&gt;&lt;P&gt;Also if the PrivateKeyEntry doesnot support both ClientAuth and ServerAuth, it should not work if I provide a single NIFI server url or the group of NIFI server urls in the RPG. But in my case it works&lt;/P&gt;&lt;P&gt;Regarding&lt;/P&gt;&lt;PRE&gt;I also noticed timestamps for entries in your nifi-user.log to not match with timestamps from the shared nifi-app.log file. The entries specifically shared are not directly related to one another.&lt;/PRE&gt;&lt;P&gt;You can ignore the timestamps. There are sync issues. I copied it randomly.&lt;/P&gt;&lt;P&gt;Also i have a query regarding "If the PrivateKeyEntry supports serverAuth only, the NiFi service will not be able to provide a client certificate in the TLS handshake." &amp;gt;&amp;gt; Is there a way to find out whether the private key supports both client and server auth ?&lt;/P&gt;&lt;P&gt;Thank You&lt;/P&gt;&lt;P&gt;Nikhil&lt;/P&gt;</description>
      <pubDate>Thu, 12 Jul 2018 18:59:51 GMT</pubDate>
      <guid>https://community.cloudera.com/t5/Archives-of-Support-Questions/Unable-to-autheticate-to-NIFI-API-using-loadbalancer/m-p/182607#M80522</guid>
      <dc:creator>nikhilr</dc:creator>
      <dc:date>2018-07-12T18:59:51Z</dc:date>
    </item>
    <item>
      <title>Re: Unable to autheticate to NIFI API using loadbalancer</title>
      <link>https://community.cloudera.com/t5/Archives-of-Support-Questions/Unable-to-autheticate-to-NIFI-API-using-loadbalancer/m-p/182608#M80523</link>
      <description>&lt;P&gt;&lt;A rel="user" href="https://community.cloudera.com/users/51412/nikhilr.html" nodeid="51412"&gt;@Nikhil&lt;/A&gt; &lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;P&gt;*** Forum tip:  Please try to avoid responding to an Answer by starting a new answer.  Instead use the "add comment" tp respond to en existing answer.  There is no guaranteed order to different answers which can make following a response thread difficult especially when multiple people are trying to assist you.&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;P&gt;You get a verbose output form your keystore using the keytool command&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;PRE&gt;keytool -v -list -keystore &amp;lt;keystore.jks file&amp;gt;&lt;/PRE&gt;&lt;P&gt;-&lt;/P&gt;&lt;P&gt;Look to see if your PrivateKeyEntry has any "ExtendedKeyUsages" listed.&lt;BR /&gt;It would look something like this:&lt;/P&gt;&lt;PRE&gt;#3: ObjectId: 2.5.29.37 Criticality=false
ExtendedKeyUsages [
  clientAuth
  serverAuth
]&lt;/PRE&gt;&lt;P&gt;-&lt;/P&gt;&lt;P&gt;Since you commented that the RPG works correctly when you use the URLs for the nodes directly, the certificates must support clientAuth then.  This sounds more like a LB configuration issue.  The certificate is being sent to the LB, but the LB is not forwarding that client cert on to the target end-point. &lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;P&gt;It is also not clear to me why you would configure your RPG to point at your LB instead of at one or more of the NiFi nodes directly?&lt;BR /&gt;----- The RPG will retrieve details about the entire target NiFi cluster when it connects and store/update that locally.  So there really is no need for a LB in front of the RPG.&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;P&gt;Thank you,&lt;/P&gt;&lt;P&gt;Matt&lt;/P&gt;</description>
      <pubDate>Thu, 12 Jul 2018 19:46:34 GMT</pubDate>
      <guid>https://community.cloudera.com/t5/Archives-of-Support-Questions/Unable-to-autheticate-to-NIFI-API-using-loadbalancer/m-p/182608#M80523</guid>
      <dc:creator>MattWho</dc:creator>
      <dc:date>2018-07-12T19:46:34Z</dc:date>
    </item>
    <item>
      <title>Re: Unable to autheticate to NIFI API using loadbalancer</title>
      <link>https://community.cloudera.com/t5/Archives-of-Support-Questions/Unable-to-autheticate-to-NIFI-API-using-loadbalancer/m-p/182609#M80524</link>
      <description>&lt;P&gt;&lt;A rel="user" href="https://community.cloudera.com/users/525/mclarke.html" nodeid="525"&gt;@Matt Clarke&lt;/A&gt;&lt;/P&gt;&lt;P&gt;Thanks for the info regarding the keystore.&lt;/P&gt;&lt;P&gt;Regarding &lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;"Since you commented that the RPG works correctly when you use the URLs for the nodes directly, the certificates must support clientAuth then. This sounds more like a LB configuration issue. The certificate is being sent to the LB, but the LB is not forwarding that client cert on to the target end-point.&lt;/STRONG&gt;&lt;STRONG&gt;"&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;gt;&amp;gt; I am able to access NIFI UI using the LB url. If the loadbalancer is not working I should not get the UI as well. But here the issue is related to nifi-api access, from the servers, using LB url. But its still strange that I am able to access the UI. I believe that the web UI also uses API to get the access tokens , flow details and other details.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;"It is also not clear to me why you would configure your RPG to point at your LB instead of at one or more of the NiFi nodes directly?"&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;gt;&amp;gt; Initially we were using a single NIFI instance as RPG but it was SPOF. So we thought of adding an LB on top of NIFI. If we add the list of NIFI url's , it would be difficult to update the RPG url list in scenarios like adding/removing nifi instance. Also RPG cannot be edited and it has to be recreated. In our case we have large number of workflows, so recreating them wont be a practical approach. Hope you got my point &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/P&gt;&lt;P&gt;Thank You&lt;/P&gt;&lt;P&gt;Nikhil&lt;/P&gt;</description>
      <pubDate>Fri, 13 Jul 2018 08:18:09 GMT</pubDate>
      <guid>https://community.cloudera.com/t5/Archives-of-Support-Questions/Unable-to-autheticate-to-NIFI-API-using-loadbalancer/m-p/182609#M80524</guid>
      <dc:creator>nikhilr</dc:creator>
      <dc:date>2018-07-13T08:18:09Z</dc:date>
    </item>
    <item>
      <title>Re: Unable to autheticate to NIFI API using loadbalancer</title>
      <link>https://community.cloudera.com/t5/Archives-of-Support-Questions/Unable-to-autheticate-to-NIFI-API-using-loadbalancer/m-p/182610#M80525</link>
      <description>&lt;P&gt;&lt;A rel="user" href="https://community.cloudera.com/users/51412/nikhilr.html" nodeid="51412"&gt;@Nikhil&lt;/A&gt; &lt;/P&gt;&lt;P&gt;What I was getting at was that the authentication methods are different here.&lt;/P&gt;&lt;P&gt;-&lt;BR /&gt;I am assuming your users who access the NIFi UI via the load balancer are using a user/password authentication method?  That method results in a token being issued to the authenticated user which is then passed by the client in every subsequent request to the NiFi API.&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;P&gt;With Site-To-Site, there are no tokens involved in the authentication process since certificate authentication occurs via two-way TLS in every single rest api call.&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;P&gt;Admittedly, I know nothing about your specific LB or how it is configured, so these are just suggested things to consider.&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;P&gt;Also want to let you know you must be running an older HDF version. Newer versions support editing the URL string without needing to recreate the RPG.&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;P&gt;Thank you,&lt;/P&gt;&lt;P&gt;Matt&lt;/P&gt;</description>
      <pubDate>Fri, 13 Jul 2018 20:23:33 GMT</pubDate>
      <guid>https://community.cloudera.com/t5/Archives-of-Support-Questions/Unable-to-autheticate-to-NIFI-API-using-loadbalancer/m-p/182610#M80525</guid>
      <dc:creator>MattWho</dc:creator>
      <dc:date>2018-07-13T20:23:33Z</dc:date>
    </item>
    <item>
      <title>Re: Unable to autheticate to NIFI API using loadbalancer</title>
      <link>https://community.cloudera.com/t5/Archives-of-Support-Questions/Unable-to-autheticate-to-NIFI-API-using-loadbalancer/m-p/182611#M80526</link>
      <description>&lt;P&gt;&lt;A rel="user" href="https://community.cloudera.com/users/525/mclarke.html" nodeid="525"&gt;@Matt Clarke&lt;/A&gt; &lt;/P&gt;&lt;P&gt;Sorry for the delay in getting back.&lt;/P&gt;&lt;P&gt;Thanks for the info.&lt;/P&gt;&lt;P&gt;I was able to setup lb for nifi now.&lt;/P&gt;&lt;P&gt;Had to configure two lbs. ALB for webui and NLB for rpg.&lt;/P&gt;&lt;P&gt;Thank You&lt;/P&gt;&lt;P&gt;Nikhil&lt;/P&gt;</description>
      <pubDate>Wed, 18 Jul 2018 12:13:06 GMT</pubDate>
      <guid>https://community.cloudera.com/t5/Archives-of-Support-Questions/Unable-to-autheticate-to-NIFI-API-using-loadbalancer/m-p/182611#M80526</guid>
      <dc:creator>nikhilr</dc:creator>
      <dc:date>2018-07-18T12:13:06Z</dc:date>
    </item>
    <item>
      <title>Re: Unable to autheticate to NIFI API using loadbalancer</title>
      <link>https://community.cloudera.com/t5/Archives-of-Support-Questions/Unable-to-autheticate-to-NIFI-API-using-loadbalancer/m-p/341797#M80527</link>
      <description>&lt;P&gt;Hi &lt;a href="https://community.cloudera.com/t5/user/viewprofilepage/user-id/40106"&gt;@nikhilr&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have set up a 3node secure nifi cluster. Now I am trying to set up AWS LB&amp;nbsp; for nifi web UI and getting an error saying [Anonymous authentication has not been configured.].Could you please help me how could I resolve the anonymous authentication issue while accessing from load balancer url.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;o.a.n.w.s.NiFiAuthenticationFilter Authentication Failed 10.XXX.XXX.159 GET &lt;A href="https://10.XXX.XXX.162:8443/nifi-api/flow/status" target="_blank"&gt;https://10.XXX.XXX.162:8443/nifi-api/flow/status&lt;/A&gt; [Anonymous authentication has not been configured.]&lt;/P&gt;</description>
      <pubDate>Wed, 20 Apr 2022 09:18:08 GMT</pubDate>
      <guid>https://community.cloudera.com/t5/Archives-of-Support-Questions/Unable-to-autheticate-to-NIFI-API-using-loadbalancer/m-p/341797#M80527</guid>
      <dc:creator>Naresh_n</dc:creator>
      <dc:date>2022-04-20T09:18:08Z</dc:date>
    </item>
    <item>
      <title>Re: Unable to autheticate to NIFI API using loadbalancer</title>
      <link>https://community.cloudera.com/t5/Archives-of-Support-Questions/Unable-to-autheticate-to-NIFI-API-using-loadbalancer/m-p/341803#M80528</link>
      <description>&lt;P&gt;&lt;a href="https://community.cloudera.com/t5/user/viewprofilepage/user-id/97423"&gt;@Naresh_n&lt;/a&gt;&amp;nbsp;as this is an older post, you would have a better chance of receiving a resolution by&lt;A href="“https://community.cloudera.com/t5/forums/postpage/board-id/Questions”" target="_blank"&gt; starting a new thread&lt;/A&gt;. This will also be an opportunity to provide details specific to your environment that could aid others in assisting you with a more accurate answer to your question. You can link this thread as a reference in your new post.&lt;/P&gt;</description>
      <pubDate>Wed, 20 Apr 2022 11:27:34 GMT</pubDate>
      <guid>https://community.cloudera.com/t5/Archives-of-Support-Questions/Unable-to-autheticate-to-NIFI-API-using-loadbalancer/m-p/341803#M80528</guid>
      <dc:creator>VidyaSargur</dc:creator>
      <dc:date>2022-04-20T11:27:34Z</dc:date>
    </item>
  </channel>
</rss>

