When I learned that the initial user in authorizers.xml must match the
certificate *exactly*, I figured it would be an easy matter to use openssl
to inspect the cert. I wanted to be *absolutely* certain I matched it
correctly.
Here is the command:
/opt/nifi/config_resources/keys$ openssl pkcs12 -info -in CN=admin2.p12
-nodes

Here is the output. The output informed me of what I thought was the
subject info in the cert:
......
subject=C = US, ST = Virginia, L = Reston, O = C4 Rampart, OU = NIFI, CN =
admin2
issuer=C = US, ST = Virginia, L = Reston, O = C4 Rampart, OU = Secure
Digital Certificate Signing, CN = C4 Rampart CA
-----BEGIN CERTIFICATE-----
MIIExDCCA6ygAwIBAgICeYowDQYJKoZI......

This is why I put that in the way that I did. I mean why on earth would it
reverse the DN info and add extra spaces, right!? It's like having a
separate knob for volume on the alarm clock in Seinfeld. Why separate knob,
WHY?

Anyway I reversed my entry and squashed the extra spacing. I updated
authorizers.xml. I blew away authorizations.xml and users.xml so that nifi
would recreate them at startup. I also fixed
nifi.security.identity.mapping.pattern.dn and
nifi.security.identity.mapping.value.dn in nifi.properties.I restarted
nifi. And as Bryan, Matt, and Isha certainly already suspect, it worked.

I still have one more thing to figure out. I've got the CA and user cert
info in my browser. I've got a server cert. All have been generated by
tinycert.org. Yet at the https URL in the browser, it still tells me it is
insecure. I do not understand why.
x Not secure      https://
ec2-44-219-227-80.compute-1.amazonaws.com:8443/nifi/

Anyway, thank you Bryan, Matt, and Isha for replying.

On Wed, Apr 24, 2024 at 9:05 PM Matt Gilman <matt.c.gil...@gmail.com> wrote:

> What is this Access Token it cites at top?
>>
>
> NiFi UI attempts to get the access token expiration. However, since you're
> authenticating with a certificate the endpoint returns an IllegalState
> because there was no token in the request.
>
> Looking at the logs and the supplied configuration it appears there are
> spaces and the ordering is reversed in your initial admin identity when
> compared with the value from the certificate.
>
> C = US, ST = Virginia, L = Reston, O = C4 Rampart, OU = NIFI, CN = admin2
> CN=admin2, OU=NIFI, O=C4 Rampart, L=Reston, ST=Virginia, C=US
>
> Hope this helps!
>
> Matt
>
> On Wed, Apr 24, 2024 at 8:41 PM James McMahon <jsmcmah...@gmail.com>
> wrote:
>
>> Looking at the nifi-user.log, I find I am getting a Conflict response,
>> Access Token not found.
>>
>>  more ./nifi-user.log
>> 2024-04-25 00:23:49,329 INFO [main] o.a.n.a.FileUserGroupProvider
>> Creating new users file at /opt/nifi/config_resources/users.xml
>> 2024-04-25 00:23:49,352 INFO [main] o.a.n.a.FileAccessPolicyProvider
>> Creating new authorizations file at
>> /opt/nifi/config_resources/authorizations.xml
>> 2024-04-25 00:23:49,573 INFO [main] o.a.n.a.FileAccessPolicyProvider
>> Populating authorizations for Initial Admin: C = US, ST = Virginia, L =
>> Reston, O = C4 Rampart, OU = NIFI,
>> CN = admin2
>> 2024-04-25 00:24:51,107 INFO [NiFi Web Server-100]
>> o.a.n.w.s.NiFiAuthenticationFilter Authentication Started 173.73.40.110
>> [CN=admin2, OU=NIFI, O=C4 Rampart, L=Reston, ST=Virgi
>> nia, C=US] POST
>> https://ec2-44-219-227-80.compute-1.amazonaws.com:8443/nifi-api/access/kerberos
>> 2024-04-25 00:24:51,110 INFO [NiFi Web Server-100]
>> o.a.n.w.s.NiFiAuthenticationFilter Authentication Success [CN=admin2,
>> OU=NIFI, O=C4 Rampart, L=Reston, ST=Virginia, C=US] 173
>> .73.40.110 POST
>> https://ec2-44-219-227-80.compute-1.amazonaws.com:8443/nifi-api/access/kerberos
>> 2024-04-25 00:24:51,166 INFO [NiFi Web Server-104]
>> o.a.n.w.s.NiFiAuthenticationFilter Authentication Started 173.73.40.110
>> [CN=admin2, OU=NIFI, O=C4 Rampart, L=Reston, ST=Virgi
>> nia, C=US] GET
>> https://ec2-44-219-227-80.compute-1.amazonaws.com:8443/nifi-api/access/token/expiration
>> 2024-04-25 00:24:51,166 INFO [NiFi Web Server-104]
>> o.a.n.w.s.NiFiAuthenticationFilter Authentication Success [CN=admin2,
>> OU=NIFI, O=C4 Rampart, L=Reston, ST=Virginia, C=US] 173
>> .73.40.110 GET
>> https://ec2-44-219-227-80.compute-1.amazonaws.com:8443/nifi-api/access/token/expiration
>> 2024-04-25 00:24:51,172 WARN [NiFi Web Server-104]
>> o.a.n.w.a.c.IllegalStateExceptionMapper java.lang.IllegalStateException:
>> *Access Token not found. Returning Conflict
>> response.java.lang.IllegalStateException: Access Token not found*
>>         at
>> org.apache.nifi.web.api.AccessResource.getAccessTokenExpiration(AccessResource.java:463)
>>         at
>> java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
>>         at java.base/java.lang.reflect.Method.invoke(Method.java:580)
>>
>> followed by
>>
>> 2024-04-25 00:24:51,185 INFO [NiFi Web Server-100]
>> o.a.n.w.s.NiFiAuthenticationFilter Authentication Started 173.73.40.110
>> [CN=admin2, OU=NIFI, O=C4 Rampart, L=Reston, ST=Virgi
>> nia, C=US] GET
>> https://ec2-44-219-227-80.compute-1.amazonaws.com:8443/nifi-api/flow/current-user
>> 2024-04-25 00:24:51,186 INFO [NiFi Web Server-100]
>> o.a.n.w.s.NiFiAuthenticationFilter Authentication Success [CN=admin2,
>> OU=NIFI, O=C4 Rampart, L=Reston, ST=Virginia, C=US] 173
>> .73.40.110 GET
>> https://ec2-44-219-227-80.compute-1.amazonaws.com:8443/nifi-api/flow/current-user
>> 2024-04-25 00:24:51,192 INFO [NiFi Web Server-100]
>> o.a.n.w.a.c.AccessDeniedExceptionMapper identity[CN=admin2, OU=NIFI, O=C4
>> Rampart, L=Reston, ST=Virginia, C=US], groups[]
>> *does not have permission to access the requested resource. Unable to
>> view the user interface. Returning Forbidden response.*
>>
>> What is this Access Token it cites at top?
>>
>> Based on what I have read in the documentation, nifi itself must be
>> allowed to create the authorizations.xml file at initial startup. Is there
>> a reason it would omit permission to view and use the UI?
>>
>> On Wed, Apr 24, 2024 at 5:18 PM Matt Gilman <matt.c.gil...@gmail.com>
>> wrote:
>>
>>> James,
>>>
>>> If you check the nifi-user.log in the logs directory, you should see
>>> messages for the requests that are being rejected. In that log message you
>>> should see the identity that you're authenticated with. Can you compare
>>> that with the user that you've configured the policies for. Hopefully, that
>>> will help point to where the issue is.
>>>
>>> Matt
>>>
>>> On Wed, Apr 24, 2024 at 5:03 PM James McMahon <jsmcmah...@gmail.com>
>>> wrote:
>>>
>>>> I still cannot access my own NiFi 2.0 instance. I continue to get this
>>>> rejection:
>>>>
>>>> Insufficient Permissions
>>>>
>>>>    - home
>>>>
>>>> Unable to view the user interface. Contact the system administrator.
>>>>
>>>>
>>>> The canvas flashes for an instant when I try to hit my secure URL, but
>>>> is immediately replaced with this rejection message.
>>>>
>>>> There is no error or warning in nifi-app.log
>>>>
>>>> Has anyone experienced a similar problem?
>>>>
>>>>
>>>> Here is my authorizers.xml:
>>>>
>>>> <authorizers>
>>>>     <userGroupProvider>
>>>>         <identifier>file-user-group-provider</identifier>
>>>>
>>>> <class>org.apache.nifi.authorization.FileUserGroupProvider</class>
>>>>         <property name="Users
>>>> File">/opt/nifi/config_resources/users.xml</property>
>>>>         <property name="Legacy Authorized Users File"></property>
>>>>         <property name="Initial User Identity 1">C = US, ST = Virginia,
>>>> L = Reston, O = C4 Rampart, OU = NIFI, CN = admin2</property>
>>>>     </userGroupProvider>
>>>>     <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">/opt/nifi/config_resources/authorizations.xml</property>
>>>>         <property name="Initial Admin Identity">C = US, ST = Virginia,
>>>> L = Reston, O = C4 Rampart, OU = NIFI, CN = admin2</property>
>>>>         <property name="Legacy Authorized Users File"></property>
>>>>         <property name="Node Identity 1"></property>
>>>>     </accessPolicyProvider>
>>>>     <authorizer>
>>>>         <identifier>managed-authorizer</identifier>
>>>>
>>>> <class>org.apache.nifi.authorization.StandardManagedAuthorizer</class>
>>>>         <property name="Access Policy
>>>> Provider">file-access-policy-provider</property>
>>>>     </authorizer>
>>>> </authorizers>
>>>>
>>>>
>>>> Here is my authorizations.xml (nifi creates at first startup):
>>>>
>>>> <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
>>>> <authorizations>
>>>>     <policies>
>>>>         <policy identifier="f99bccd1-a30e-3e4a-98a2-dbc708edc67f"
>>>> resource="/flow" action="R">
>>>>             <user identifier="03e0564a-4cad-3d24-bf64-3f09d78a5834"/>
>>>>         </policy>
>>>>         <policy identifier="ae1ef91b-11d8-38a4-9d8a-33e7ee25d65e"
>>>> resource="/data/process-groups/ca7090bc-018e-1000-6a92-e199f7d9e48e"
>>>> action="R">
>>>>             <user identifier="03e0564a-4cad-3d24-bf64-3f09d78a5834"/>
>>>>         </policy>
>>>>         <policy identifier="818d3b60-f65b-3d67-960e-f7e7aea0f6cc"
>>>> resource="/data/process-groups/ca7090bc-018e-1000-6a92-e199f7d9e48e"
>>>> action="W">
>>>>             <user identifier="03e0564a-4cad-3d24-bf64-3f09d78a5834"/>
>>>>         </policy>
>>>>         <policy identifier="6e49aea6-93bd-3a2a-a0d6-b5afb4581b4f"
>>>> resource="/process-groups/ca7090bc-018e-1000-6a92-e199f7d9e48e" action="R">
>>>>             <user identifier="03e0564a-4cad-3d24-bf64-3f09d78a5834"/>
>>>>         </policy>
>>>>         <policy identifier="3755b3ac-380b-3c02-83a6-10c3870f377a"
>>>> resource="/process-groups/ca7090bc-018e-1000-6a92-e199f7d9e48e" action="W">
>>>>             <user identifier="03e0564a-4cad-3d24-bf64-3f09d78a5834"/>
>>>>         </policy>
>>>>         <policy identifier="b8775bd4-704a-34c6-987b-84f2daf7a515"
>>>> resource="/restricted-components" action="W">
>>>>             <user identifier="03e0564a-4cad-3d24-bf64-3f09d78a5834"/>
>>>>         </policy>
>>>>         <policy identifier="627410be-1717-35b4-a06f-e9362b89e0b7"
>>>> resource="/tenants" action="R">
>>>>             <user identifier="03e0564a-4cad-3d24-bf64-3f09d78a5834"/>
>>>>         </policy>
>>>>         <policy identifier="15e4e0bd-cb28-34fd-8587-f8d15162cba5"
>>>> resource="/tenants" action="W">
>>>>             <user identifier="03e0564a-4cad-3d24-bf64-3f09d78a5834"/>
>>>>         </policy>
>>>>         <policy identifier="ff96062a-fa99-36dc-9942-0f6442ae7212"
>>>> resource="/policies" action="R">
>>>>             <user identifier="03e0564a-4cad-3d24-bf64-3f09d78a5834"/>
>>>>         </policy>
>>>>         <policy identifier="ad99ea98-3af6-3561-ae27-5bf09e1d969d"
>>>> resource="/policies" action="W">
>>>>             <user identifier="03e0564a-4cad-3d24-bf64-3f09d78a5834"/>
>>>>         </policy>
>>>>         <policy identifier="2e1015cb-0fed-3005-8e0d-722311f21a03"
>>>> resource="/controller" action="R">
>>>>             <user identifier="03e0564a-4cad-3d24-bf64-3f09d78a5834"/>
>>>>         </policy>
>>>>         <policy identifier="c6322e6c-4cc1-3bcc-91b3-2ed2111674cf"
>>>> resource="/controller" action="W">
>>>>             <user identifier="03e0564a-4cad-3d24-bf64-3f09d78a5834"/>
>>>>         </policy>
>>>>     </policies>
>>>> </authorizations>
>>>>
>>>>
>>>>
>>>> Here is my users.xml (nifi creates at first startup):
>>>>
>>>> <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
>>>> <tenants>
>>>>     <groups/>
>>>>     <users>
>>>>         <user identifier="03e0564a-4cad-3d24-bf64-3f09d78a5834"
>>>> identity="C = US, ST = Virginia, L = Reston, O = C4 Rampart, OU = NIFI, CN
>>>> = admin2"/>
>>>>     </users>
>>>> </tenants>
>>>>
>>>>
>>>> On Wed, Apr 24, 2024 at 8:21 AM James McMahon <jsmcmah...@gmail.com>
>>>> wrote:
>>>>
>>>>> I'll review this closely once again when I get back to this system
>>>>> tonight - thanks very much for your reply, Isha.
>>>>>
>>>>> I also feel I need to look more closely in nifi.properties, at values
>>>>> I have set for keys nifi.security.identity.mapping.[value, transform,
>>>>> pattern].CN1
>>>>>
>>>>> I noticed some odd behavior and suspect it is a reflection of an issue
>>>>> I have not set properly in my configuration:
>>>>> The first time I started my 2.0 instance with my Initial Admin
>>>>> Identity defined as shown, the UI in my browser actually presented me with
>>>>> a list (of one) Personal cert to select from - the cert for admin2. I was
>>>>> in a happy place: *finally*, nifi and the browser appeared to be in synch
>>>>> for the Subject name in the cert.
>>>>>
>>>>> I selected this cert, but then was crushed by the rejection mentioned
>>>>> above:
>>>>>      Unable to view the user interface. Contact the system
>>>>> administrator.
>>>>>      Insufficient Permissions     home
>>>>>
>>>>> I restarted nifi so I could "tail -f" nifi-app.log.
>>>>> After restart, I once again tried to hit my NiFi URL.
>>>>> This time though, the browser failed to present the admin2 cert for
>>>>> selection.  Shouldn't it have still presented that to me in the browser 
>>>>> fro
>>>>> my selection?
>>>>> Do you have any thoughts why this behavior is occurring?
>>>>>
>>>>> Would you say it is it advisable to manually create by hand an
>>>>> authorizations.xml file should I continue to experience Insufficient
>>>>> Permissions problems? I recall reading that users.xml and
>>>>> authorizations.xml - if absent at initial startup - should be created by
>>>>> nifi from info in authorizers.xml. But this Insufficient Permissions makes
>>>>> me suspect something is missing from authorizations.
>>>>>
>>>>> Jim
>>>>>
>>>>> On Wed, Apr 24, 2024 at 5:33 AM Isha Lamboo <
>>>>> isha.lam...@virtualsciences.nl> wrote:
>>>>>
>>>>>> Hi James,
>>>>>>
>>>>>>
>>>>>>
>>>>>> Have you changed these settings in authorizers.xml since you first
>>>>>> started NiFi? If so, you may need to delete users.xml and
>>>>>> authorizations.xml.
>>>>>>
>>>>>> A new admin user will not be created if those files already exist.
>>>>>>
>>>>>>
>>>>>>
>>>>>> Otherwise, the trickiest part is usually that the user DN needs to
>>>>>> match **exactly** with that specified. Capitals and whitespace
>>>>>> matter. Since you are getting insufficient permissions instead of unknown
>>>>>> user, I don’t think that’s your problem here. Still, it may be worth
>>>>>> checking for a mismatch in the initial admin identity vs initial user
>>>>>> identity vs certificate.
>>>>>>
>>>>>>
>>>>>>
>>>>>> Regards,
>>>>>>
>>>>>>
>>>>>>
>>>>>> Isha
>>>>>>
>>>>>>
>>>>>>
>>>>>> *Van:* James McMahon <jsmcmah...@gmail.com>
>>>>>> *Verzonden:* woensdag 24 april 2024 02:14
>>>>>> *Aan:* users <users@nifi.apache.org>
>>>>>> *Onderwerp:* Insufficient permissions on initial start up (NiFi 2.0)
>>>>>>
>>>>>>
>>>>>>
>>>>>> I am trying to start my new NiFi 2.0 installation. I have a user
>>>>>> admin2 that has a cert. The nifi server also has a cert. Both are signed 
>>>>>> by
>>>>>> the same CA.
>>>>>>
>>>>>>
>>>>>>
>>>>>> At start up in my browser I am denied due to insufficient privileges:
>>>>>>
>>>>>>
>>>>>>
>>>>>> Unable to view the user interface. Contact the system administrator.
>>>>>>
>>>>>> Insufficient Permissions     home
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> My authorizors.xml has been configured as follows:
>>>>>>
>>>>>> <authorizers>
>>>>>>     <userGroupProvider>
>>>>>>         <identifier>file-user-group-provider</identifier>
>>>>>>
>>>>>> <class>org.apache.nifi.authorization.FileUserGroupProvider</class>
>>>>>>         <property name="Users
>>>>>> File">/opt/nifi/config_resources/users.xml</property>
>>>>>>         <property name="Legacy Authorized Users File"></property>
>>>>>>         <property name="Initial User Identity 1">C = US, ST =
>>>>>> Virginia, L = Reston, O = C4 Rampart, OU = NIFI, CN = admin2</property>
>>>>>>     </userGroupProvider>
>>>>>>     <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">/opt/nifi/config_resources/authorizations.xml</property>
>>>>>>         <property name="Initial Admin Identity">C = US, ST =
>>>>>> Virginia, L = Reston, O = C4 Rampart, OU = NIFI, CN = admin2</property>
>>>>>>         <property name="Legacy Authorized Users File"></property>
>>>>>>         <property name="Node Identity 1"></property>
>>>>>>     </accessPolicyProvider>
>>>>>>     <authorizer>
>>>>>>         <identifier>managed-authorizer</identifier>
>>>>>>
>>>>>> <class>org.apache.nifi.authorization.StandardManagedAuthorizer</class>
>>>>>>         <property name="Access Policy
>>>>>> Provider">file-access-policy-provider</property>
>>>>>>     </authorizer>
>>>>>> </authorizers>
>>>>>>
>>>>>>
>>>>>>
>>>>>> I read that at start up, authorizations.xml and users.xml would be
>>>>>> created by NiFi - those files are not to be hand jammed.
>>>>>>
>>>>>>
>>>>>>
>>>>>> So how do I actually get in with my admin2 user?
>>>>>>
>>>>>> What have I overlooked on this magical mystery tour?
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>

Reply via email to