-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
dbms.security.procedures.roles not working with custom procedures and dbms.cluster.routing.getRoutingTable in ONgDB 3.6.0 with apoc 3.5.0.12 #77
Comments
@wtrevena Thanks for the report. I will start looking into this. I have a 3.6.0.0 apoc release nearly ready and may try to reproduce this on that version. |
Thank you very much for the help, I can't tell you how much I appreciate it. Please let me know if there is anything that I can do to clarify or assist you, I will be working on this non stop until I find a resolution. |
After doing some more digging, I am curious to what precise driver / processor is behind the translation of the neo4j.conf To re-illustrate, I ran
Which resulted in the following output in the terminal on the left with the associated neo4j.conf This appears to confirm that the processor behind I am attempting to troubleshoot this issue by analyzing how these procedures and their associated permissions are stored in the files in the /data folder, but I am having a difficult time finding an appropriate plugin / interpreter to view the data in /data/databases or in /data/cluster-state in an interpretable way. As a short term fix I was planning on editing the files manually, but I am not quite sure where to start as I can't seem to find an editor that can make sense of the files. I am speculating that this phenomenon is occurring as a result of some base ONgDB processor which compiles the neo4j.conf file, unless this setting is specifically handled by the APOC plugin. This is purely speculatory, but could it be possible that the procedures that If you have any suggestions on what else I could explore to troubleshoot this issue I would greatly appreciate it. |
Good afternoon Brad, if you have any updates on this it would be greatly appreciated. As a result of this issue we couldn't identify any alternatives other than handling all database writes through an additional cluster of Nginx + uWSGI + Flask Python servers (mobile device -> Flask server -> ONgDB) because without restricting users to specific procedures with this feature, we can't prevent someone who obtains write credentials from sending something such as |
Expected Behavior
dbms.security.procedures.default_allowed
&dbms.security.procedures.roles
provide procedure level user access control for custom procedures defined via"CALL apoc.custom.asProcedure()"
and for thedbms.cluster.routing.getRoutingTable
procedure necessary forneo4j://
bolt+routing calls.Actual Behavior
dbms.security.procedures.default_allowed
&dbms.security.procedures.roles
provide procedure level user access control for some procedures, but not for custom procedures or for thedbms.cluster.routing.*
family.How to Reproduce the Problem
Start Neo4j
/bin/neo4j start
Call the custom procedure
Example of how
dbms.security.procedures.roles
works for some procedures but not others"CALL custom.listcity('WA');"
leads to this error message if you useneo4j://
and the configuration aboveOr to this error message if you use
bolt://
Furthermore, when I ran
I received this output which illustrates that
dbms.security.procedures.roles
was not effective at allowing thelowlife
role to use thecustom.listcity
procedure :On the other hand, after editing the
dbms.security.procedures.roles
neo4j.conf line like this:I ran
Which returned the following output illustrating that
dbms.security.procedures.roles=apoc.broker.receive:lowlife
worked properly in allowing thelowlife
role to use theapoc.broker.receive
procedure.:Based on these results and other tests I did, it appears that there are a range of default procedures such as
dbms.cluster.routing.getRoutingTable
and custom procedures whichdbms.security.procedures.roles
is not capable of giving a role access to, but that there are other procedures such asapoc.broker.receive
which roles can be given access to.Versions
Any updates or assistance is greatly appreciated. You guys are doing great work, and I can't tell you how much I appreciate it.
The text was updated successfully, but these errors were encountered: