David.

Did not have time this morning to test.
But it may be something really "stupid", my fault. It seems I made a
mistake while generating certificates on nodes, regarding the CA....

Hope to have time this afternoon and I will return.

Etienne



Le mer. 25 nov. 2020 à 14:18, David Handermann <exceptionfact...@gmail.com>
a écrit :

> I am not as familiar with the LDAP user group provider, but based on the
> "Untrusted proxy" message you are seeing, it sounds like the nodes are not
> being identified properly as members of the "nodes" group from LDAP.  Just
> for testing purposes, you could try specifying the node distinguished names
> in the "Node Identity N" properties of the access policy provider, using
> "Node Identity 1", "Node Identity 2" and "Node Identity 3" to specify each
> node DN.  If that works, then it sounds like a configuration issue with the
> Node Group, either on the LDAP server, or in the way NiFi is attempting to
> query LDAP.
>
> Regards,
> David Handermann
>
> On Wed, Nov 25, 2020 at 5:19 AM Etienne Jouvin <lapinoujou...@gmail.com>
> wrote:
>
>> Just for information, did not have time to test it from now.
>> I was not able to get this Walk Throughs documentation.
>> https://nifi.apache.org/docs/nifi-docs/html/walkthroughs.html
>>
>> Hope I will find the error I have about certificate (I have a little idea)
>>
>> Etienne
>>
>>
>>
>>
>> Le mer. 25 nov. 2020 à 08:36, Etienne Jouvin <lapinoujou...@gmail.com> a
>> écrit :
>>
>>> Hello.
>>>
>>> I made some progress yesterday.
>>> I did setup in LDAP groups and person
>>>
>>>
>>>
>>>
>>>
>>> Groups :
>>> cn=administrators,ou=groups,ou=nifi,dc=amexio,dc=ch : for administrators
>>> cn=supervisors,ou=groups,ou=nifi,dc=amexio,dc=ch : for supervisors
>>> cn=nodes,ou=groups,ou=nifi,dc=amexio,dc=ch : group where I put all
>>> "person" representing NiFi nodes.
>>>
>>> Users :
>>> cn=migX.amexio.ch,ou=users,ou=nifi,dc=amexio,dc=ch : for each node,
>>> replacing X by the index, and with object class person
>>> uid=mig-admin,ou=users,ou=nifi,dc=amexio,dc=ch : example of "real" user
>>> used to connect on the platform, with object class inetOrgperson
>>>
>>> In NiFi configuration.
>>> I did activate a userGroupProvider linked to the LDAP
>>>     <userGroupProvider>
>>>         <identifier>amexio-ldap-user-group-provider</identifier>
>>>         <class>org.apache.nifi.ldap.tenants.LdapUserGroupProvider</class>
>>>         <property name="Authentication Strategy">SIMPLE</property>
>>>
>>>         <property name="Manager DN">uid=admin,ou=system</property>
>>>         <property name="Manager Password">secret</property>
>>>
>>>         <property name="TLS - Keystore"></property>
>>>         <property name="TLS - Keystore Password"></property>
>>>         <property name="TLS - Keystore Type"></property>
>>>         <property name="TLS - Truststore"></property>
>>>         <property name="TLS - Truststore Password"></property>
>>>         <property name="TLS - Truststore Type"></property>
>>>         <property name="TLS - Client Auth"></property>
>>>         <property name="TLS - Protocol"></property>
>>>         <property name="TLS - Shutdown Gracefully"></property>
>>>
>>>         <property name="Referral Strategy">FOLLOW</property>
>>>         <property name="Connect Timeout">10 secs</property>
>>>         <property name="Read Timeout">10 secs</property>
>>>
>>>         <property name="Url">ldap://localhost:10389</property>
>>>         <property name="Page Size">50</property>
>>> <!--        <property name="Sync Interval">30 mins</property> -->
>>>         <property name="Sync Interval">30 seconds</property>
>>>         <property name="Group Membership - Enforce Case
>>> Sensitivity">false</property>
>>>
>>>         <property name="User Search
>>> Base">ou=users,ou=nifi,dc=amexio,dc=ch</property>
>>>         <property name="User Object Class">person</property>
>>>         <property name="User Search Scope">ONE_LEVEL</property>
>>>         <property name="User Search Filter"></property>
>>>         <property name="User Identity Attribute"></property>
>>>         <property name="User Group Name Attribute"></property>
>>>         <property name="User Group Name Attribute - Referenced Group
>>> Attribute"></property>
>>>
>>>         <property name="Group Search
>>> Base">ou=groups,ou=nifi,dc=amexio,dc=ch</property>
>>>         <property name="Group Object Class">groupOfNames</property>
>>>         <property name="Group Search Scope">ONE_LEVEL</property>
>>>         <property name="Group Search Filter"></property>
>>>         <property name="Group Name Attribute">cn</property>
>>>         <property name="Group Member Attribute">member</property>
>>>         <property name="Group Member Attribute - Referenced User
>>> Attribute"></property>
>>>     </userGroupProvider>
>>>
>>> Of course, register it inside the accessPolicyProvider
>>>     <accessPolicyProvider>
>>>         <identifier>file-access-policy-provider</identifier>
>>>
>>> <class>org.apache.nifi.authorization.FileAccessPolicyProvider</class>
>>> <!--        <property name="User Group
>>> Provider">file-user-group-provider</property> -->
>>>         <property name="User Group
>>> Provider">amexio-ldap-user-group-provider</property>
>>>         <property name="Authorizations
>>> File">./conf/authorizations.xml</property>
>>> <!--        <property name="Initial Admin Identity"></property> -->
>>>         <property name="Initial Admin
>>> Identity">uid=mig-admin,ou=users,ou=nifi,dc=amexio,dc=ch</property>
>>>         <property name="Legacy Authorized Users File"></property>
>>>         <property name="Node Identity 1"></property>
>>>         <property name="Node Group">nodes</property>
>>>     </accessPolicyProvider>
>>>
>>> I am able to connect with the initial administrator account, when the
>>> first node is started.
>>> And all nodes are synchronized in the NiFi instance.
>>>
>>>
>>>
>>>
>>> As soon as I start an additional node, I can not connect to the first
>>> node
>>> Erreur message
>>> Untrusted proxy CN=mig1.amexio.ch, OU=users, OU=nifi, DC=amexio, DC=ch
>>>
>>> But I can connect on the second node.
>>>
>>>
>>> So all this is about the certificate I guess.
>>> for reminder, I use nls-toolkit to generate certificate on all nodes
>>> with something like :
>>> tls-toolkit.bat standalone -f
>>> "C:\nifi-1.12.1\node1\conf\nifi.properties" -o
>>> "C:\nifi-1.12.1\node1\conf\secured" -n mig1.amexio.ch --nifiDnPrefix
>>> cn= --nifiDnSuffix ou=users,ou=nifi,dc=amexio,dc=ch
>>>
>>> Proxy is untrusted, ok fine. So may be I should not use the standalone
>>> function of toolkit, but using server and client. In that case, I have to
>>> stay alive the server from toolkit ?
>>> Also, it seems I did not add certificate from node1 inside node2
>>> trutstore, and node2 certificate inside node1 truststore ?
>>> But in this case, if I have to add a new node, let's say node4, I would
>>> have to push the certificate from node4 inside all existing nodes ?
>>>
>>> I continue to search, but any idea / input will be appreciated.
>>>
>>> Etienne
>>>
>>>
>>> Le lun. 23 nov. 2020 à 18:39, Bryan Bende <bbe...@gmail.com> a écrit :
>>>
>>>> Yes it will be the DN of the server's certificate which comes from the
>>>> keystore.
>>>>
>>>> NiFi will get an incoming request, see that there is an X509 cert,
>>>> take the DN and go to the user group provider and ask for the user
>>>> with this identity.
>>>>
>>>> On Mon, Nov 23, 2020 at 12:01 PM Etienne Jouvin <
>>>> lapinoujou...@gmail.com> wrote:
>>>> >
>>>> > Hum OK,
>>>> >
>>>> > I will give it a try.
>>>> > But one more thing...
>>>> >
>>>> > If I only set the group node;
>>>> > How NiFi will connect the node with the nodeId in the LDAP ?
>>>> > Where does it take the nodeid value ?
>>>> > Is it the value we set in the keystore / truststore, by default
>>>> cn=localhost, dc=NIFI (something like this) ?
>>>> >
>>>> > Etienne
>>>> >
>>>> >
>>>> > Le lun. 23 nov. 2020 à 17:54, Bryan Bende <bbe...@gmail.com> a écrit
>>>> :
>>>> >>
>>>> >> I don't really know the LDAP specifics too well, so I'm not actually
>>>> sure.
>>>> >>
>>>> >> You just need the nodes to come back from the LDAP UserGroupProvider
>>>> >> as if they were regular users and members of some group "foo", which
>>>> >> you then put "foo" into the "Node Group".
>>>> >>
>>>> >> On Mon, Nov 23, 2020 at 11:50 AM Etienne Jouvin <
>>>> lapinoujou...@gmail.com> wrote:
>>>> >> >
>>>> >> > Thanks Bryan.
>>>> >> >
>>>> >> > With your answer.... I will go to the Node Group and assign node
>>>> identities.
>>>> >> > Better for deployment and setup on the fly, I guess.
>>>> >> >
>>>> >> > One more point, you said "creating ldap entries for your nodes and
>>>> assigning them group membership in ldap". What type of objectClass would
>>>> you assign to the node in LDAP ?
>>>> >> > This is not inetOrgPerson. The node should not have password.
>>>> >> > If I create groupOfMembers for each node, is it correct ?
>>>> >> >
>>>> >> >
>>>> >> > Thanks
>>>> >> >
>>>> >> > Etienne
>>>> >> >
>>>> >> >
>>>> >> >
>>>> >> > Le lun. 23 nov. 2020 à 17:27, Bryan Bende <bbe...@gmail.com> a
>>>> écrit :
>>>> >> >>
>>>> >> >> Hello,
>>>> >> >>
>>>> >> >> "Node Identity" is similar to the "Initial Admin" concept, in
>>>> that it
>>>> >> >> sets up the policies for the initial nodes to have permissions to
>>>> >> >> proxy.
>>>> >> >>
>>>> >> >> If you are creating ldap entries for your nodes and assigning them
>>>> >> >> group membership in ldap, then yes you could put that group name
>>>> as
>>>> >> >> the "Node Group" and then you don't need to specify the "Node
>>>> >> >> Identities".
>>>> >> >>
>>>> >> >> If you are creating the node users in NiFi's file-based user group
>>>> >> >> provider then you need to use node identities, and when adding a
>>>> new
>>>> >> >> node to the cluster you'd have to add the user first through the
>>>> >> >> UI/REST API and grant it proxy, then actually connect it to the
>>>> >> >> cluster.
>>>> >> >>
>>>> >> >> Thanks,
>>>> >> >>
>>>> >> >> Bryan
>>>> >> >>
>>>> >> >>
>>>> >> >> On Mon, Nov 23, 2020 at 7:58 AM Etienne Jouvin <
>>>> lapinoujou...@gmail.com> wrote:
>>>> >> >> >
>>>> >> >> > Hello all.
>>>> >> >> >
>>>> >> >> >
>>>> >> >> > I am currently setting up a NiFi, 1.12.1, Cluster with LDAP
>>>> authentication.
>>>> >> >> > For now the accessPolicyProvider is the default one with the
>>>> configuration template :
>>>> >> >> >     <accessPolicyProvider>
>>>> >> >> >         <identifier>file-access-policy-provider</identifier>
>>>> >> >> >
>>>>  <class>org.apache.nifi.authorization.FileAccessPolicyProvider</class>
>>>> >> >> >         <property name="User Group
>>>> Provider">file-user-group-provider</property>
>>>> >> >> >         <property name="Authorizations
>>>> File">./conf/authorizations.xml</property>
>>>> >> >> >         <property name="Initial Admin Identity"></property>
>>>> >> >> >         <property name="Legacy Authorized Users
>>>> File"></property>
>>>> >> >> >         <property name="Node Identity 1"></property>
>>>> >> >> >         <property name="Node Group"></property>
>>>> >> >> >     </accessPolicyProvider>
>>>> >> >> >
>>>> >> >> > But I do not really understand the purpose of the Node Identity
>>>> X property.
>>>> >> >> > If I well understood, all nodes should have the same
>>>> configuration file, and I should register all nodes identity.
>>>> >> >> >
>>>> >> >> > But what about if I want to add a new node in the cluster on
>>>> the fly ?
>>>> >> >> > Should I register a new node identity, and then I should change
>>>> all nodes configurations ?
>>>> >> >> > The comment, in the configuration file, mentions the
>>>> configuration Node Group, The name of a group containing NiFi cluster
>>>> nodes. The typical use for this is when nodes are dynamically added/removed
>>>> from the cluster.
>>>> >> >> > Should I just put a Node group name and this will do the trick ?
>>>> >> >> >
>>>> >> >> > What should I put ? At the following link,
>>>> https://docs.cloudera.com/HDPDocuments/HDF3/HDF-3.0.3/bk_administration/content/cluster-node-identities.html,
>>>> it is said something like : cn=nifi-1,ou=people,dc=example,dc=com
>>>> >> >> > In that case, what should be the obejct class for the node
>>>> cn=nifi-1 in the LDAP ?
>>>> >> >> >
>>>> >> >> > Any documentation links will be appreciated.
>>>> >> >> >
>>>> >> >> > Regards.
>>>> >> >> >
>>>> >> >> > Etienne Jouvin
>>>>
>>>

Reply via email to