- Subscribe to RSS Feed
- Mark Question as New
- Mark Question as Read
- Float this Question for Current User
- Bookmark
- Subscribe
- Mute
- Printer Friendly Page
NiFi Authorization Problem
- Labels:
-
Apache NiFi
Created 10-27-2016 12:19 PM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I have a fresh install of NiFi and am trying to enable TLS certificate based security for initial admin login and am getting the following error after successful authentication (see nifi-user.log snippet below)
"Unable to perform the desired action due to insufficient permissions. Contact the system administrator."
Here if snippets of relevant configuration defined in the nifi-properties file:
# web properties # nifi.web.war.directory=./lib nifi.web.http.host= nifi.web.http.port= nifi.web.https.host=0.0.0.0 nifi.web.https.port=8443 nifi.web.jetty.working.directory=./work/jetty nifi.web.jetty.threads=200 # security properties # nifi.security.keystore=/apps/nifi/certs/server.pfx nifi.security.keystoreType=PKCS12 nifi.security.keystorePasswd=Test nifi.security.keyPasswd= nifi.security.truststore=/apps/nifi/certs/truststore.jks nifi.security.truststoreType=JKS nifi.security.truststorePasswd=Test nifi.security.needClientAuth=true nifi.security.user.authorizer=file-provider nifi.security.user.login.identity.provider= nifi.security.ocsp.responder.url= nifi.security.ocsp.responder.certificate=
Here is the configuration of the authorizers.xml file:
<authorizer> <identifier>file-provider</identifier> <class>org.apache.nifi.authorization.FileAuthorizer</class> <property name="Authorizations File">./conf/authorizations.xml</property> <property name="Users File">./conf/users.xml</property> <property name="Initial Admin Identity">CN=Browser Client,OU=GUI,O="Test Inc "</property> <property name="Legacy Authorized Users File"></property> </authorizer>
Here is the output from the nifi-user.log file:
2016-10-26 21:19:38,469 INFO [main] o.a.nifi.authorization.FileAuthorizer Authorizations file loaded at Wed Oct 26 21:19:38 UTC 2016 2016-10-26 21:20:35,238 INFO [NiFi Web Server-18] o.a.n.w.a.c.IllegalStateExceptionMapper java.lang.IllegalStateException: Kerberos ticket login not supported by this NiFi.. Returning Conflict response. 2016-10-26 21:20:35,252 INFO [NiFi Web Server-18] o.a.n.w.s.NiFiAuthenticationFilter Attempting request for (CN=Browser Client, OU=GUI, O="Test Inc ") GET https://localhost:8443/nifi-api/flow/current-user (source ip: 127.0.0.1) 2016-10-26 21:20:35,253 INFO [NiFi Web Server-18] o.a.n.w.s.NiFiAuthenticationFilter Authentication success for CN=Browser Client, OU=GUI, O="Test Inc " 2016-10-26 21:20:35,266 INFO [NiFi Web Server-18] o.a.n.w.a.c.AccessDeniedExceptionMapper CN=Browser Client, OU=GUI, O="Test Inc " does not have permission to access the requested resource. Returning Forbidden response.
Created 10-27-2016 01:31 PM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The problem is a whitespace issue...
If you look at your log you can see "CN=BrowserClient, OU=GUI, O="Test Inc "" with a space before the OU.
If you look at the Initial Admin and users.xml there is no space "CN=Browser Client,OU=GUI,O="Test Inc " so its not lining up.
You can fix this by stopping NiFi, updating authorizers.xml so the Initial Admin has the exact value from the logs, and then deleting users.xml and authorizations.xml, and restart.
Created 10-27-2016 12:26 PM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi, the setup looks ok at first glance. If you made some changes over several NiFi restarts, can you try deleting users.xml and authorizations.xml files and start up NiFi again? These should get regenerated and Initial Admin user added.
Created 10-27-2016 12:36 PM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello Andrew, thanks for your suggestion, followed your suggestion but no luck, still the same problem.
Created 10-27-2016 01:09 PM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
what version of NIFI are you running? Can you update to a newer one?
I recommend you use http://docs.hortonworks.com/HDPDocuments/HDF2/HDF-2.0.1/index.html
What user are you running as?
Created 10-27-2016 01:07 PM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
users.xml:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <tenants> <groups/> <users> <user identifier="a0560a86-94ac-3985-8a3d-faaaeb14cade" identity="CN=Browser Client,OU=GUI,O="Test Inc ""/> </users> </tenants>
authorizations.xml:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <authorizations> <policies> <policy identifier="73374e81-e8b7-3b0c-969a-613a4075be39" resource="/flow" action="R"> <user identifier="a0560a86-94ac-3985-8a3d-faaaeb14cade"/> </policy> <policy identifier="8aec400c-8546-3cba-a2a5-c0ae267f7ba4" resource="/data/process-groups/021ba659-0158-1000-c2a3-c5666d9e00cb" action="R"> <user identifier="a0560a86-94ac-3985-8a3d-faaaeb14cade"/> </policy> <policy identifier="a32dd30f-8225-37fb-805f-c57feb9b845e" resource="/data/process-groups/021ba659-0158-1000-c2a3-c5666d9e00cb" action="W"> <user identifier="a0560a86-94ac-3985-8a3d-faaaeb14cade"/> </policy> <policy identifier="132721c5-fdd0-330c-a3ab-3f2d6b17fa88" resource="/process-groups/021ba659-0158-1000-c2a3-c5666d9e00cb" action="R"> <user identifier="a0560a86-94ac-3985-8a3d-faaaeb14cade"/> </policy> <policy identifier="657eb4e4-91ca-3f88-97a3-6454dd3fc9d6" resource="/process-groups/021ba659-0158-1000-c2a3-c5666d9e00cb" action="W"> <user identifier="a0560a86-94ac-3985-8a3d-faaaeb14cade"/> </policy> <policy identifier="7a28fc07-3e1c-3cd0-bf07-aaac0bf33c0a" resource="/tenants" action="R"> <user identifier="a0560a86-94ac-3985-8a3d-faaaeb14cade"/> </policy> <policy identifier="71444cf0-a0e8-3efe-8669-6a49e9524d61" resource="/tenants" action="W"> <user identifier="a0560a86-94ac-3985-8a3d-faaaeb14cade"/> </policy> <policy identifier="cc8f957c-8248-35bb-ac24-a399b544ea53" resource="/policies" action="R"> <user identifier="a0560a86-94ac-3985-8a3d-faaaeb14cade"/> </policy> <policy identifier="fe68321a-85cb-3fd9-86e0-32a6684d9101" resource="/policies" action="W"> <user identifier="a0560a86-94ac-3985-8a3d-faaaeb14cade"/> </policy> <policy identifier="7781460d-3a59-3bf3-88d4-78ac4e839e7e" resource="/controller" action="R"> <user identifier="a0560a86-94ac-3985-8a3d-faaaeb14cade"/> </policy> <policy identifier="4b0b79aa-db0f-3672-b38b-27b4b7c07f59" resource="/controller" action="W"> <user identifier="a0560a86-94ac-3985-8a3d-faaaeb14cade"/> </policy> </policies> </authorizations>
Created 10-27-2016 01:15 PM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Does the user running NIFI have permissions to those files?
From the source code:
// If Kerberos Service Principal and keytab location not configured, throws exception |
if (!properties.isKerberosSpnegoSupportEnabled() || kerberosService == null) { |
throw new IllegalStateException("Kerberos ticket login not supported by this NiFi."); |
See:
Initial Admin Identity (New NiFi Instance)
If you are setting up a secured NiFi instance for the first time, you must manually designate an “Initial Admin Identity” in the authorizers.xml file. This initial admin user is granted access to the UI and given the ability to create additional users, groups, and policies. The value of this property could be a DN (when using certificates or LDAP) or a Kerberos principal. If you are the NiFi administrator, add yourself as the “Initial Admin Identity”.
https://nifi.apache.org/docs/nifi-docs/html/administration-guide.html#authorizers-setup
Do you have Kerberos?
Created 10-27-2016 01:27 PM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Tim, thanks for your feedback, I'm using the latest version of NiFi and no, I am not using Kerberos
Created 10-27-2016 01:31 PM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The problem is a whitespace issue...
If you look at your log you can see "CN=BrowserClient, OU=GUI, O="Test Inc "" with a space before the OU.
If you look at the Initial Admin and users.xml there is no space "CN=Browser Client,OU=GUI,O="Test Inc " so its not lining up.
You can fix this by stopping NiFi, updating authorizers.xml so the Initial Admin has the exact value from the logs, and then deleting users.xml and authorizations.xml, and restart.
Created 10-27-2016 01:48 PM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Yay, it works Bryan, nice catch. Thanks for your help. Thanks Andrew and Tim as well. Smacking myself in the back of the head as well 🙂
