<?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: About NiFi Registry LDAP Configuration in Support Questions</title>
    <link>https://community.cloudera.com/t5/Support-Questions/About-NiFi-Registry-LDAP-Configuration/m-p/408559#M252742</link>
    <description>&lt;P&gt;&lt;a href="https://community.cloudera.com/t5/user/viewprofilepage/user-id/126452"&gt;@melek6199&lt;/a&gt;&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;Let me try to address each of your statements as there appears to be some misunderstanding of how authentication and authorization works between NiFi and NiFi-Registry.&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;I have a 3-node NiFi cluster, and I want to manage it using NiFi Registry. I configured both NiFi and NiFi Registry with a single certificate using the TLS Toolkit. I also set up LDAP integration. I can successfully connect to both NiFi and NiFi Registry individually using my LDAP users.&lt;/LI-CODE&gt;&lt;UL&gt;&lt;LI&gt;NiFi-Registry does not manage your NiFi cluster.&amp;nbsp; These are two different services.&amp;nbsp; NiFi-Registry is used by NiFi to version control process groups created and managed in NiFi.&amp;nbsp;&amp;nbsp;&lt;/LI&gt;&lt;LI&gt;It is not a security best practice to use one certificate for all your servers.&amp;nbsp; You should have one certificate per server.&amp;nbsp; If you have two services (A NiFi node and NiFi-Registry on the same server, they would both use the same certificate).&amp;nbsp; In production I would recommend using certificates signed by actual legitimate signing authorities versus TLS toolkit generated certificates and truststore)&lt;UL&gt;&lt;LI&gt;Your keystores must meet the following requirements:&lt;UL&gt;&lt;LI&gt;Contain only one PrivateKey Entry&lt;/LI&gt;&lt;LI&gt;That PrivateKey entry supports both ClientAuth and ServerAuth ExtendedKeyUsage (EKU). (Note: NiFi-Registry does not require ClientAuth, but no harm in having it)&lt;/LI&gt;&lt;LI&gt;Contains at least one SAN entry that matches the server's hostname on which the certificate is being used.&amp;nbsp;&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;LI&gt;Your NiFi/NiFi-Registry Truststore must meet following requirements:&lt;UL&gt;&lt;LI&gt;Contain a TrustedCertEntry for every signer/issuer of the certificates passed in a mutualTLS handshake (The compete trustchain for every certificate that will be used to communicate between NiFi node and with NiFi-Registry).&lt;/LI&gt;&lt;LI&gt;You can use the NiFi TLS toolkit to generate 4 keystores and 1 truststore you can use with your NiFi and NiFi-Registry services, but make sure you are running with the "--subjectAlternativeNames" option.&amp;nbsp; Those SAN should include the hostnames of the servers on which the services will run. (Now technically you could create one certificate with SANs for all the hosts and then use that one cert on all hosts, but as I said, not a security best practice).&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;However, the LDAP user that I added and authorized in the Registry does not appear in NiFi. With the certificate user, I can view the bucket in NiFi Registry from NiFi and perform flow version control. But I cannot do this with my LDAP user.&lt;/LI-CODE&gt;&lt;UL&gt;&lt;LI&gt;The user that authenticates into NiFi-Registry does not need to exist in NiFi; however, any authenticated user identity authenticated into NiFi must exist and have proper authorization in NiFi-Registry in order to conduct version control operation within NiFi.&lt;/LI&gt;&lt;LI&gt;When you ldap-user authenticates into NiFi you will see that user's "user identity" displayed in the upper right corner (Keep in mind that your user is only authenticated into the NiFi node you access the cluster from and not all the NiFi nodes).&amp;nbsp; When that user attempts to start version control on a process group, NiFi connects and authenticates with NiFi-Registry via a MutualTLS exchange/handshake. In that connection it will proxy the request on behalf of that "user identity" (case sensitive).&amp;nbsp; This means that not only do the NiFi node clientAuth certificates need to be authorized in NiFi-Registry to read on "&lt;SPAN&gt;Can Manage Buckets&amp;nbsp;"&lt;/SPAN&gt; and read,write,delete on "&lt;SPAN&gt;Can Proxy Requests", the NiFi "user identity" need to be authorized on any bucket you want that "user identity" to be able to use for version control.&amp;nbsp; (let me know if you need help with how a mutualTLS handshake works)&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN&gt;Since your NiFi authenticated ldap "user-identity" has not been added and authorized in NiFi-Registry on any buckets, nothing will appear in the list of available buckets for that "user-identity" in NiFi.&lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P class=""&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;NOTE: Even if I generate separate certificates for NiFi and NiFi Registry and trust each certificate independently, the certificate user does not have permission to view the bucket. This is because the certificate user from the Registry is also not created in NiFi. For this reason, I generated both from the same certificate.&lt;/LI-CODE&gt;&lt;UL&gt;&lt;LI&gt;From what i shared in response to two section above, you can see that the certificates used by the NiFi host are only used to proxy requests to NiFi-Registry on behalf of the "user identity" authenticated with NiFi.&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;There are few things that don't make sense to me in your shared NiFi-Registry configuration:&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;NiFi-Registry identity-providers.xml:&lt;/SPAN&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;SPAN&gt;I see you set "&amp;nbsp;&amp;lt;property name="Authentication Strategy"&amp;gt;SIMPLE&amp;lt;/property&amp;gt;", yet your ldap URL is "ldaps".&amp;nbsp; This should then also be set to "LDAPS".&lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;SPAN&gt;NiFi-Registry&amp;nbsp;authorizers.xml:&lt;/SPAN&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;SPAN&gt;You are using the file-user-group-provider which allows you to manually define an initial set of "user identities" on first startup (node edits after to this config will happen if the users.xml already exists during startup).&amp;nbsp; This provider also allows for the adding of additional "user identities" later via the NiFi-Registry UI directly.&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN&gt;NOTE: There is also an available ldap-user-group-provider that can be used to sync select users "user identity" and groups "group-identity" from ldap into your NiFi-Registry list of identities.&amp;nbsp; This is helpful if you don;t want to manage your ldap user and group identities manually within NiFi and NIFi-Registry.&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN&gt;You are the file-access-policy provider which only created the authorizations.xml file if it does not already exist on startup. In it I can see&amp;nbsp;&lt;EM&gt;&lt;STRONG&gt;"Initial Admin Identity"&amp;gt;CN=nifi_amadeus_admin&lt;/STRONG&gt;&lt;/EM&gt;&lt;/SPAN&gt;&amp;nbsp; is set; however, in your ldap-provider you have configured&amp;nbsp;&lt;SPAN&gt;&lt;STRONG&gt;"Identity Strategy"&amp;gt;USE_USERNAME. &lt;/STRONG&gt;I can only assume you did similar in your NiFi setup?&amp;nbsp;It is unlikely that when you are logging into your NiFi you are typing the username as "CN=nifi_amadeua_admin" since this would not be the expected value in the "sAMAccountName" ldap field/attribute.&amp;nbsp; That means your initial admin "user identity" does not match the identity of your authenticated user (unless you have this set because you are using the a certificate to auth in to the services with the above).&lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;SPAN&gt;In the end, there are the following key things that need to know:&lt;/SPAN&gt;&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;&lt;SPAN&gt;user-identities must match and are case sensitive.&amp;nbsp; ("Bob" and "bob" would be treated as two unique user identities.&amp;nbsp; So the user identity as displayed in upper right corner in NiFi UI must be authorized on specific bucket(s) in NiFi-Registry in order to successfully use&amp;nbsp; version control in NIFi.&amp;nbsp; This you do not have setup correctly yet.&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN&gt;NiFi nodes also need to be properly authorized in NiFi-Registry for mange buckets and all proxy permissions.&amp;nbsp; The node's user identity is comes from the NiFi node's clientAuth certificate full DN.&amp;nbsp; That full DN can be modified through the use of the identity.mapping properties in the NiFi-Registry.properties file. Note: In your shared NiFi-Registry.properties file the identity.mapping properties are commented out are not in use, so full DN of NiFi node would be used as node's user identity and need to be authorized which corresponds to with full DN used in the file-access-policy provider you have configured.&lt;BR /&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;&lt;SPAN&gt;I know above is a lot of information, but wanted you to fully understand how the authentication&amp;nbsp; and authorization between NiFi and NiFi-Registry works.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;Please help our community grow. If you found&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;any&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;of the suggestions/solutions provided helped you with solving your issue or answering your question, please take a moment to login and click "&lt;SPAN&gt;&lt;EM&gt;&lt;STRONG&gt;&lt;FONT color="#FF0000"&gt;Accept as Solution&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/EM&gt;" on&amp;nbsp;&lt;STRONG&gt;one or more&lt;/STRONG&gt;&amp;nbsp;of them that helped.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Thank you,&lt;BR /&gt;Matt&lt;/SPAN&gt;&lt;/P&gt;</description>
    <pubDate>Wed, 21 May 2025 13:32:39 GMT</pubDate>
    <dc:creator>MattWho</dc:creator>
    <dc:date>2025-05-21T13:32:39Z</dc:date>
    <item>
      <title>About NiFi Registry LDAP Configuration</title>
      <link>https://community.cloudera.com/t5/Support-Questions/About-NiFi-Registry-LDAP-Configuration/m-p/408552#M252740</link>
      <description>&lt;P class=""&gt;&lt;SPAN&gt;Hello,&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;I have a 3-node NiFi cluster, and I want to manage it using NiFi Registry. I configured both NiFi and NiFi Registry with a single certificate using the TLS Toolkit. I also set up LDAP integration. I can successfully connect to both NiFi and NiFi Registry individually using my LDAP users.&lt;/P&gt;&lt;P class=""&gt;However, the LDAP user that I added and authorized in the Registry does not appear in NiFi. With the certificate user, I can view the bucket in NiFi Registry from NiFi and perform flow version control. But I cannot do this with my LDAP user.&lt;/P&gt;&lt;P class=""&gt;&lt;STRONG&gt;NOTE:&lt;/STRONG&gt; Even if I generate separate certificates for NiFi and NiFi Registry and trust each certificate independently, the certificate user does not have permission to view the bucket. This is because the certificate user from the Registry is also not created in NiFi. For this reason, I generated both from the same certificate.&lt;/P&gt;&lt;P class=""&gt;Nifi / Nifi Registry version: 1.28.1&lt;/P&gt;&lt;P class=""&gt;Nifi Registry nifi-registry.properties&lt;/P&gt;&lt;TABLE border="1" width="99.72489683631362%"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD width="100%"&gt;&lt;P&gt;&lt;FONT size="2"&gt;# Licensed to the Apache Software Foundation (ASF) under one or more&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2"&gt;# contributor license agreements. See the NOTICE file distributed with&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2"&gt;# this work for additional information regarding copyright ownership.&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2"&gt;# The ASF licenses this file to You under the Apache License, Version 2.0&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2"&gt;# (the "License"); you may not use this file except in compliance with&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2"&gt;# the License. You may obtain a copy of the License at&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2"&gt;#&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2"&gt;# &lt;A href="http://www.apache.org/licenses/LICENSE-2.0" target="_blank" rel="noopener"&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/A&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2"&gt;#&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2"&gt;# Unless required by applicable law or agreed to in writing, software&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2"&gt;# distributed under the License is distributed on an "AS IS" BASIS,&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2"&gt;# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2"&gt;# See the License for the specific language governing permissions and&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2"&gt;# limitations under the License.&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;# web properties #&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2"&gt;nifi.registry.web.war.directory=./lib&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2"&gt;nifi.registry.web.http.host=&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2"&gt;nifi.registry.web.http.port=&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2"&gt;nifi.registry.web.https.host=vtmnosqlnifip04.yyy.com&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2"&gt;nifi.registry.web.https.port=18084&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2"&gt;nifi.registry.web.https.application.protocols=http/1.1&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2"&gt;nifi.registry.web.jetty.working.directory=./work/jetty&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2"&gt;nifi.registry.web.jetty.threads=200&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2"&gt;nifi.registry.web.should.send.server.version=true&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;# security properties #&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2"&gt;nifi.registry.security.keystore=/data/certs/keystore.jks&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2"&gt;nifi.registry.security.keystoreType=jks&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2"&gt;nifi.registry.security.keystorePasswd=PBSckF3zHJj8h7iAsZqes2zJhXyzjXVanE0F8Cy4NEA&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2"&gt;nifi.registry.security.keyPasswd=PBSckF3zHJj8h7iAsZqes2zJhXyzjXVanE0F8Cy4NEA&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2"&gt;nifi.registry.security.truststore=/data/certs/truststore.jks&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2"&gt;nifi.registry.security.truststoreType=jks&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2"&gt;nifi.registry.security.truststorePasswd=rFXj+NsPyiH1tf43/sD6NCYW9mdXI9hZs+T/8DHs8b4&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2"&gt;nifi.registry.security.needClientAuth=false&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2"&gt;nifi.registry.security.authorizers.configuration.file=./conf/authorizers.xml&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2"&gt;nifi.registry.security.authorizer=managed-authorizer&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2"&gt;nifi.registry.security.identity.providers.configuration.file=./conf/identity-providers.xml&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2"&gt;nifi.registry.security.identity.provider=ldap-identity-provider&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;# sensitive property protection properties #&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2"&gt;# nifi.registry.sensitive.props.additional.keys=&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;# providers properties #&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2"&gt;nifi.registry.providers.configuration.file=./conf/providers.xml&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;# registry alias properties #&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2"&gt;nifi.registry.registry.alias.configuration.file=./conf/registry-aliases.xml&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;# extensions working dir #&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2"&gt;nifi.registry.extensions.working.directory=./work/extensions&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;# legacy database properties, used to migrate data from original DB to new DB below&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2"&gt;# NOTE: Users upgrading from 0.1.0 should leave these populated, but new installs after 0.1.0 should leave these empty&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2"&gt;nifi.registry.db.directory=&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2"&gt;nifi.registry.db.url.append=&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;# database properties&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2"&gt;nifi.registry.db.url=jdbc:h2:./database/nifi-registry-primary;AUTOCOMMIT=OFF;DB_CLOSE_ON_EXIT=FALSE;LOCK_MODE=3;LOCK_TIMEOUT=25000;WRITE_DELAY=0;AUTO_SERVER=FALSE&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2"&gt;nifi.registry.db.driver.class=org.h2.Driver&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2"&gt;nifi.registry.db.driver.directory=&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2"&gt;nifi.registry.db.username=nifireg&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2"&gt;nifi.registry.db.password=nifireg&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2"&gt;nifi.registry.db.maxConnections=5&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2"&gt;nifi.registry.db.sql.debug=false&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;# extension directories #&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2"&gt;# Each property beginning with "nifi.registry.extension.dir." will be treated as location for an extension,&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2"&gt;# and a class loader will be created for each location, with the system class loader as the parent&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2"&gt;#&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2"&gt;#nifi.registry.extension.dir.1=/path/to/extension1&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2"&gt;#nifi.registry.extension.dir.2=/path/to/extension2&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;nifi.registry.extension.dir.aws=./ext/aws/lib&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;# Identity Mapping Properties #&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2"&gt;# These properties allow normalizing user identities such that identities coming from different identity providers&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2"&gt;# (certificates, LDAP, Kerberos) can be treated the same internally in NiFi. The following example demonstrates normalizing&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2"&gt;# DNs from certificates and principals from Kerberos into a common identity string:&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2"&gt;#&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2"&gt;# nifi.registry.security.identity.mapping.pattern.dn=^CN=(.*?), OU=(.*?), O=(.*?), L=(.*?), ST=(.*?), C=(.*?)$&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2"&gt;# nifi.registry.security.identity.mapping.value.dn=$1@$2&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2"&gt;# nifi.registry.security.identity.mapping.transform.dn=NONE&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;# nifi.registry.security.identity.mapping.pattern.kerb=^(.*?)/instance@(.*?)$&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2"&gt;# nifi.registry.security.identity.mapping.value.kerb=$1@$2&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2"&gt;# nifi.registry.security.identity.mapping.transform.kerb=UPPER&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;# Group Mapping Properties #&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2"&gt;# These properties allow normalizing group names coming from external sources like LDAP. The following example&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2"&gt;# lowercases any group name.&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2"&gt;#&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2"&gt;# nifi.registry.security.group.mapping.pattern.anygroup=^(.*)$&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2"&gt;# nifi.registry.security.group.mapping.value.anygroup=$1&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2"&gt;# nifi.registry.security.group.mapping.transform.anygroup=LOWER&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;FONT size="2"&gt;# kerberos properties #&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2"&gt;#nifi.registry.kerberos.krb5.file=&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2"&gt;#nifi.registry.kerberos.spnego.principal=&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2"&gt;#nifi.registry.kerberos.spnego.keytab.location=&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2"&gt;#nifi.registry.kerberos.spnego.authentication.expiration=12 hours&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;# OIDC #&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2"&gt;#nifi.registry.security.user.oidc.discovery.url=&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2"&gt;#nifi.registry.security.user.oidc.connect.timeout=&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2"&gt;#nifi.registry.security.user.oidc.read.timeout=&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2"&gt;#nifi.registry.security.user.oidc.client.id=&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2"&gt;#nifi.registry.security.user.oidc.client.secret=&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2"&gt;#nifi.registry.security.user.oidc.preferred.jwsalgorithm=&lt;/FONT&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;FONT size="2"&gt;# revision management #&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2"&gt;# This feature should remain disabled until a future NiFi release that supports the revision API changes&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2"&gt;nifi.registry.revisions.enabled=false&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P class=""&gt;&amp;nbsp;&lt;/P&gt;&lt;P class=""&gt;Nifi Registry&amp;nbsp;authorizers.xml&lt;/P&gt;&lt;TABLE border="1" width="100%"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD width="100%"&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&amp;lt;authorizers&amp;gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&amp;nbsp; &amp;nbsp; &amp;lt;userGroupProvider&amp;gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;identifier&amp;gt;file-user-group-provider&amp;lt;/identifier&amp;gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;class&amp;gt;org.apache.nifi.registry.security.authorization.file.FileUserGroupProvider&amp;lt;/class&amp;gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;property name="Users File"&amp;gt;./conf/users.xml&amp;lt;/property&amp;gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;property name="Initial User Identity 1"&amp;gt;CN=nifi_amadeus_admin&amp;lt;/property&amp;gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;property name="Initial User Identity 2"&amp;gt;CN=vtmnosqlnifip04.yyy.com, OU=NIFI&amp;lt;/property&amp;gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;property name="Initial User Identity 3"&amp;gt;CN=vtmnosqlnifip03.yyy.com, OU=NIFI&amp;lt;/property&amp;gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;property name="Initial User Identity 4"&amp;gt;CN=vtmnosqlnifip02.yyy.com, OU=NIFI&amp;lt;/property&amp;gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;property name="Initial User Identity 5"&amp;gt;CN=vtmnosqlnifip01.yyy.com, OU=NIFI&amp;lt;/property&amp;gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/userGroupProvider&amp;gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&amp;nbsp; &amp;nbsp; &amp;lt;accessPolicyProvider&amp;gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;identifier&amp;gt;file-access-policy-provider&amp;lt;/identifier&amp;gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;class&amp;gt;org.apache.nifi.registry.security.authorization.file.FileAccessPolicyProvider&amp;lt;/class&amp;gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;property name="User Group Provider"&amp;gt;file-user-group-provider&amp;lt;/property&amp;gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;property name="Authorizations File"&amp;gt;./conf/authorizations.xml&amp;lt;/property&amp;gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;property name="Initial Admin Identity"&amp;gt;CN=nifi_amadeus_admin&amp;lt;/property&amp;gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;property name="Node Identity 1"&amp;gt;CN=vtmnosqlnifip04.yyy.com, OU=NIFI&amp;lt;/property&amp;gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;property name="NiFi Group Name"&amp;gt;&amp;lt;/property&amp;gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;property name="NiFi Identity 1"&amp;gt;CN=vtmnosqlnifip01.yyy.com, OU=NIFI&amp;lt;/property&amp;gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;property name="NiFi Identity 2"&amp;gt;CN=vtmnosqlnifip02.yyy.com, OU=NIFI&amp;lt;/property&amp;gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;property name="NiFi Identity 3"&amp;gt;CN=vtmnosqlnifip03.yyy.com, OU=NIFI&amp;lt;/property&amp;gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/accessPolicyProvider&amp;gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&amp;nbsp; &amp;nbsp; &amp;lt;authorizer&amp;gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;identifier&amp;gt;managed-authorizer&amp;lt;/identifier&amp;gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;class&amp;gt;org.apache.nifi.registry.security.authorization.StandardManagedAuthorizer&amp;lt;/class&amp;gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;property name="Access Policy Provider"&amp;gt;file-access-policy-provider&amp;lt;/property&amp;gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/authorizer&amp;gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&amp;lt;/authorizers&amp;gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P class=""&gt;Nifi Registry&amp;nbsp;identity-providers.xml&lt;/P&gt;&lt;TABLE border="1" width="100%"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD width="100%"&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&amp;lt;identityProviders&amp;gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&amp;nbsp; &amp;nbsp; &amp;lt;provider&amp;gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;identifier&amp;gt;ldap-identity-provider&amp;lt;/identifier&amp;gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;class&amp;gt;org.apache.nifi.registry.security.ldap.LdapIdentityProvider&amp;lt;/class&amp;gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;property name="Authentication Strategy"&amp;gt;SIMPLE&amp;lt;/property&amp;gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;property name="Manager DN"&amp;gt;CN=service_user,CN=Users,DC=xxx,DC=yyy,DC=com&amp;lt;/property&amp;gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;property name="Manager Password"&amp;gt;OPGwqvD8YrHi&amp;lt;/property&amp;gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;property name="Referral Strategy"&amp;gt;FOLLOW&amp;lt;/property&amp;gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;property name="Connect Timeout"&amp;gt;10 secs&amp;lt;/property&amp;gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;property name="Read Timeout"&amp;gt;10 secs&amp;lt;/property&amp;gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;property name="TLS - Keystore"&amp;gt;/data/certs/keystore.jks&amp;lt;/property&amp;gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;lt;property name="TLS - Keystore Password"&amp;gt;PBSckF3zHJj8h7iAsZqes2zJhXyzjXVanE0F8Cy4NEA&amp;lt;/property&amp;gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;property name="TLS - Keystore Type"&amp;gt;JKS&amp;lt;/property&amp;gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;property name="TLS - Truststore"&amp;gt;/data/certs/truststore.jks&amp;lt;/property&amp;gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;lt;property name="TLS - Truststore Password"&amp;gt;rFXj+NsPyiH1tf43/sD6NCYW9mdXI9hZs+T/8DHs8b4&amp;lt;/property&amp;gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;property name="TLS - Truststore Type"&amp;gt;JKS&amp;lt;/property&amp;gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;property name="TLS - Client Auth"&amp;gt;NONE&amp;lt;/property&amp;gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;lt;property name="TLS - Protocol"&amp;gt;TLS&amp;lt;/property&amp;gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;lt;property name="TLS - Shutdown Gracefully"&amp;gt;true&amp;lt;/property&amp;gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;lt;property name="Url"&amp;gt;ldaps://ldap.xxx.yyy.com:636&amp;lt;/property&amp;gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;property name="User Search Base"&amp;gt;CN=Users,DC=xxx,DC=yyy,DC=com&amp;lt;/property&amp;gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;lt;property name="User Search Filter"&amp;gt;(&amp;amp;amp;(objectClass=user)(sAMAccountName={0}))&amp;lt;/property&amp;gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;property name="Identity Strategy"&amp;gt;USE_USERNAME&amp;lt;/property&amp;gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;property name="Authentication Expiration"&amp;gt;12 hours&amp;lt;/property&amp;gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/provider&amp;gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P class=""&gt;&lt;SPAN&gt;I would appreciate your assistance on this matter.&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 21 May 2025 10:40:37 GMT</pubDate>
      <guid>https://community.cloudera.com/t5/Support-Questions/About-NiFi-Registry-LDAP-Configuration/m-p/408552#M252740</guid>
      <dc:creator>melek6199</dc:creator>
      <dc:date>2025-05-21T10:40:37Z</dc:date>
    </item>
    <item>
      <title>Re: About NiFi Registry LDAP Configuration</title>
      <link>https://community.cloudera.com/t5/Support-Questions/About-NiFi-Registry-LDAP-Configuration/m-p/408559#M252742</link>
      <description>&lt;P&gt;&lt;a href="https://community.cloudera.com/t5/user/viewprofilepage/user-id/126452"&gt;@melek6199&lt;/a&gt;&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;Let me try to address each of your statements as there appears to be some misunderstanding of how authentication and authorization works between NiFi and NiFi-Registry.&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;I have a 3-node NiFi cluster, and I want to manage it using NiFi Registry. I configured both NiFi and NiFi Registry with a single certificate using the TLS Toolkit. I also set up LDAP integration. I can successfully connect to both NiFi and NiFi Registry individually using my LDAP users.&lt;/LI-CODE&gt;&lt;UL&gt;&lt;LI&gt;NiFi-Registry does not manage your NiFi cluster.&amp;nbsp; These are two different services.&amp;nbsp; NiFi-Registry is used by NiFi to version control process groups created and managed in NiFi.&amp;nbsp;&amp;nbsp;&lt;/LI&gt;&lt;LI&gt;It is not a security best practice to use one certificate for all your servers.&amp;nbsp; You should have one certificate per server.&amp;nbsp; If you have two services (A NiFi node and NiFi-Registry on the same server, they would both use the same certificate).&amp;nbsp; In production I would recommend using certificates signed by actual legitimate signing authorities versus TLS toolkit generated certificates and truststore)&lt;UL&gt;&lt;LI&gt;Your keystores must meet the following requirements:&lt;UL&gt;&lt;LI&gt;Contain only one PrivateKey Entry&lt;/LI&gt;&lt;LI&gt;That PrivateKey entry supports both ClientAuth and ServerAuth ExtendedKeyUsage (EKU). (Note: NiFi-Registry does not require ClientAuth, but no harm in having it)&lt;/LI&gt;&lt;LI&gt;Contains at least one SAN entry that matches the server's hostname on which the certificate is being used.&amp;nbsp;&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;LI&gt;Your NiFi/NiFi-Registry Truststore must meet following requirements:&lt;UL&gt;&lt;LI&gt;Contain a TrustedCertEntry for every signer/issuer of the certificates passed in a mutualTLS handshake (The compete trustchain for every certificate that will be used to communicate between NiFi node and with NiFi-Registry).&lt;/LI&gt;&lt;LI&gt;You can use the NiFi TLS toolkit to generate 4 keystores and 1 truststore you can use with your NiFi and NiFi-Registry services, but make sure you are running with the "--subjectAlternativeNames" option.&amp;nbsp; Those SAN should include the hostnames of the servers on which the services will run. (Now technically you could create one certificate with SANs for all the hosts and then use that one cert on all hosts, but as I said, not a security best practice).&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;However, the LDAP user that I added and authorized in the Registry does not appear in NiFi. With the certificate user, I can view the bucket in NiFi Registry from NiFi and perform flow version control. But I cannot do this with my LDAP user.&lt;/LI-CODE&gt;&lt;UL&gt;&lt;LI&gt;The user that authenticates into NiFi-Registry does not need to exist in NiFi; however, any authenticated user identity authenticated into NiFi must exist and have proper authorization in NiFi-Registry in order to conduct version control operation within NiFi.&lt;/LI&gt;&lt;LI&gt;When you ldap-user authenticates into NiFi you will see that user's "user identity" displayed in the upper right corner (Keep in mind that your user is only authenticated into the NiFi node you access the cluster from and not all the NiFi nodes).&amp;nbsp; When that user attempts to start version control on a process group, NiFi connects and authenticates with NiFi-Registry via a MutualTLS exchange/handshake. In that connection it will proxy the request on behalf of that "user identity" (case sensitive).&amp;nbsp; This means that not only do the NiFi node clientAuth certificates need to be authorized in NiFi-Registry to read on "&lt;SPAN&gt;Can Manage Buckets&amp;nbsp;"&lt;/SPAN&gt; and read,write,delete on "&lt;SPAN&gt;Can Proxy Requests", the NiFi "user identity" need to be authorized on any bucket you want that "user identity" to be able to use for version control.&amp;nbsp; (let me know if you need help with how a mutualTLS handshake works)&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN&gt;Since your NiFi authenticated ldap "user-identity" has not been added and authorized in NiFi-Registry on any buckets, nothing will appear in the list of available buckets for that "user-identity" in NiFi.&lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P class=""&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;NOTE: Even if I generate separate certificates for NiFi and NiFi Registry and trust each certificate independently, the certificate user does not have permission to view the bucket. This is because the certificate user from the Registry is also not created in NiFi. For this reason, I generated both from the same certificate.&lt;/LI-CODE&gt;&lt;UL&gt;&lt;LI&gt;From what i shared in response to two section above, you can see that the certificates used by the NiFi host are only used to proxy requests to NiFi-Registry on behalf of the "user identity" authenticated with NiFi.&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;There are few things that don't make sense to me in your shared NiFi-Registry configuration:&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;NiFi-Registry identity-providers.xml:&lt;/SPAN&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;SPAN&gt;I see you set "&amp;nbsp;&amp;lt;property name="Authentication Strategy"&amp;gt;SIMPLE&amp;lt;/property&amp;gt;", yet your ldap URL is "ldaps".&amp;nbsp; This should then also be set to "LDAPS".&lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;SPAN&gt;NiFi-Registry&amp;nbsp;authorizers.xml:&lt;/SPAN&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;SPAN&gt;You are using the file-user-group-provider which allows you to manually define an initial set of "user identities" on first startup (node edits after to this config will happen if the users.xml already exists during startup).&amp;nbsp; This provider also allows for the adding of additional "user identities" later via the NiFi-Registry UI directly.&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN&gt;NOTE: There is also an available ldap-user-group-provider that can be used to sync select users "user identity" and groups "group-identity" from ldap into your NiFi-Registry list of identities.&amp;nbsp; This is helpful if you don;t want to manage your ldap user and group identities manually within NiFi and NIFi-Registry.&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN&gt;You are the file-access-policy provider which only created the authorizations.xml file if it does not already exist on startup. In it I can see&amp;nbsp;&lt;EM&gt;&lt;STRONG&gt;"Initial Admin Identity"&amp;gt;CN=nifi_amadeus_admin&lt;/STRONG&gt;&lt;/EM&gt;&lt;/SPAN&gt;&amp;nbsp; is set; however, in your ldap-provider you have configured&amp;nbsp;&lt;SPAN&gt;&lt;STRONG&gt;"Identity Strategy"&amp;gt;USE_USERNAME. &lt;/STRONG&gt;I can only assume you did similar in your NiFi setup?&amp;nbsp;It is unlikely that when you are logging into your NiFi you are typing the username as "CN=nifi_amadeua_admin" since this would not be the expected value in the "sAMAccountName" ldap field/attribute.&amp;nbsp; That means your initial admin "user identity" does not match the identity of your authenticated user (unless you have this set because you are using the a certificate to auth in to the services with the above).&lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;SPAN&gt;In the end, there are the following key things that need to know:&lt;/SPAN&gt;&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;&lt;SPAN&gt;user-identities must match and are case sensitive.&amp;nbsp; ("Bob" and "bob" would be treated as two unique user identities.&amp;nbsp; So the user identity as displayed in upper right corner in NiFi UI must be authorized on specific bucket(s) in NiFi-Registry in order to successfully use&amp;nbsp; version control in NIFi.&amp;nbsp; This you do not have setup correctly yet.&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN&gt;NiFi nodes also need to be properly authorized in NiFi-Registry for mange buckets and all proxy permissions.&amp;nbsp; The node's user identity is comes from the NiFi node's clientAuth certificate full DN.&amp;nbsp; That full DN can be modified through the use of the identity.mapping properties in the NiFi-Registry.properties file. Note: In your shared NiFi-Registry.properties file the identity.mapping properties are commented out are not in use, so full DN of NiFi node would be used as node's user identity and need to be authorized which corresponds to with full DN used in the file-access-policy provider you have configured.&lt;BR /&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;&lt;SPAN&gt;I know above is a lot of information, but wanted you to fully understand how the authentication&amp;nbsp; and authorization between NiFi and NiFi-Registry works.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;Please help our community grow. If you found&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;any&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;of the suggestions/solutions provided helped you with solving your issue or answering your question, please take a moment to login and click "&lt;SPAN&gt;&lt;EM&gt;&lt;STRONG&gt;&lt;FONT color="#FF0000"&gt;Accept as Solution&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/EM&gt;" on&amp;nbsp;&lt;STRONG&gt;one or more&lt;/STRONG&gt;&amp;nbsp;of them that helped.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Thank you,&lt;BR /&gt;Matt&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 21 May 2025 13:32:39 GMT</pubDate>
      <guid>https://community.cloudera.com/t5/Support-Questions/About-NiFi-Registry-LDAP-Configuration/m-p/408559#M252742</guid>
      <dc:creator>MattWho</dc:creator>
      <dc:date>2025-05-21T13:32:39Z</dc:date>
    </item>
  </channel>
</rss>

