<?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: NIFI: &amp;quot;No available buckets&amp;quot; for saving flow version to nifi registry in Support Questions</title>
    <link>https://community.cloudera.com/t5/Support-Questions/NIFI-quot-No-available-buckets-quot-for-saving-flow-version/m-p/326299#M229859</link>
    <description>&lt;P&gt;&lt;a href="https://community.cloudera.com/t5/user/viewprofilepage/user-id/92470"&gt;@Theoo&lt;/a&gt;&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;Nice job on your path to solving the authorization issues, but you left out a few pieces&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;- When NiFi cluster nodes or a standalone NiFi instance communicates with a secured NiFi-Registry that communication MUST be authenticated and authorized in the NiFi-Registry side.&amp;nbsp; The established connection between NiFi and NiFi-Registry only supports authentication via a mutual TLS handshake (Client is identified via the certificate shared to the NiFi-Registry from NiFi).&amp;nbsp; Both NiFi and NiFi-Registry have identity mapping properties that can be added to the nifi-properties/nifi-registry.properties file that are used to manipulated the DN that comes from the client certificate.&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;For example a NiFi host certificate with DN of "&lt;SPAN&gt;CN=nifi-node01, OU=NIFI" could be manipulated&amp;nbsp;so the client string is only "nifi-node-01".&lt;BR /&gt;&lt;BR /&gt;Users and NiFi nodes/instances to both NiFi and NiFi-Registry&amp;nbsp;are just clients, there is no distinction between the two.&amp;nbsp; What matters is what each client is uniquely authorized to do within each service.&lt;BR /&gt;&lt;BR /&gt;Whatever the client string happens to be, The NiFi nodes/instance must be authorized for the following global policies in NiFi-Registry:&lt;BR /&gt;&lt;BR /&gt;"&lt;STRONG&gt;Can proxy user requests&lt;/STRONG&gt;" (/proxy) with "&lt;STRONG&gt;Read, Write, and Delete&lt;/STRONG&gt;" - This allows the NiFi nodes/instance to proxy some request made by the user authenticated in NiFi to perform some authorized request against NiFi-Registry (start version control, commit a new version of a version controlled Process Group (PG), etc.) since the NiFi user is not actually authenticating&amp;nbsp;in to NiFi-Registry from NiFi. This does mean that the NiFi user string must exist as a user in NiFi-Registry and be authorized for the action they are trying perform.&lt;BR /&gt;&lt;BR /&gt;"&lt;STRONG&gt;Can Manage Buckets&lt;/STRONG&gt;" (/buckets) with "&lt;STRONG&gt;Read&lt;/STRONG&gt;" - This policy is needed by the NiFi nodes/instance so that the NiFi background thread that occasionally&amp;nbsp;communicates with NiFi-Registry to see if newer version of a version controlled PG is available or so NiFi can display a list of available buckets).&amp;nbsp; This request is not done on behalf of the user authenticated into NiFi.&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="MattWho_0-1633365611601.png" style="width: 400px;"&gt;&lt;img src="https://community.cloudera.com/t5/image/serverpage/image-id/32565i5BA4934B3A37690A/image-size/medium?v=v2&amp;amp;px=400" role="button" title="MattWho_0-1633365611601.png" alt="MattWho_0-1633365611601.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;----&lt;BR /&gt;When it comes to the NiFi user, the policies needed in NiFi-Registry vary based on what you want that user to be able to do through&amp;nbsp;NiFi or directly via the NiFi-Registry UI.&lt;BR /&gt;&lt;BR /&gt;In order for a user who is currently&amp;nbsp;authenticated&amp;nbsp;and authorized in to NiFi to interact with NiFi-Registry, that user string would need to be authorized in NiFi-Registry for the following:&lt;BR /&gt;- A NiFi-Registry admin user would need to create a bucket and authorize the NiFi user on that bucket so it can be used by the NiFi user.&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; - "&lt;STRONG&gt;READ&lt;/STRONG&gt;" on the bucket would allow the user to import and existing&amp;nbsp;version controlled flow from Nifi-Registry on the NiFi UI.&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;- "&lt;STRONG&gt;WRITE&lt;/STRONG&gt;" on the bucket would allow the user to start version control or change the version of the versioned PG in NiFi.&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; - "&lt;STRONG&gt;Delete&lt;/STRONG&gt;" on the bucket would allow a user who can authenticate&amp;nbsp;in to NiFi-Registry to delete flows within that bucket.&amp;nbsp;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="MattWho_1-1633365681781.png" style="width: 400px;"&gt;&lt;img src="https://community.cloudera.com/t5/image/serverpage/image-id/32566i3247DD1462B6CF97/image-size/medium?v=v2&amp;amp;px=400" role="button" title="MattWho_1-1633365681781.png" alt="MattWho_1-1633365681781.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;--------&lt;BR /&gt;&lt;BR /&gt;As far as authentication of users in to NiFi and/or NiFi-Registry, you can create certificates for each fo your users, but the most commonly used method is LDAP/AD based authentication.&amp;nbsp; You can add users in NiFi-Registry's authorizer so that those user string can be associated to authorization policies without those user even being able to authenticate and be authorized directly in to the NiFi-Registry's UI.&amp;nbsp; They simply need to exist for the proxied request that come from NiFi on that user's behalf.&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Hope this exposes all that is needed in this thread.&lt;BR /&gt;&lt;BR /&gt;Thanks,&lt;BR /&gt;Matt&lt;BR /&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;</description>
    <pubDate>Mon, 04 Oct 2021 16:48:16 GMT</pubDate>
    <dc:creator>MattWho</dc:creator>
    <dc:date>2021-10-04T16:48:16Z</dc:date>
  </channel>
</rss>

