Support LDAP authentication between nodes#10317
Support LDAP authentication between nodes#10317anusudarsan wants to merge 5 commits intoprestodb:masterfrom
Conversation
eb4aaf3 to
f2d8bb3
Compare
|
When JTW authentication (a.k.a bearer tokens) lands, I think that would be another good (and super easy) way to setup authentication between nodes.... basically everything can be secured with a shared secret, or pre-signed authentication tokens. |
|
LDAP authentication for the inner communication was rather a hack to overcome the same security for all endpoints problem. Without this patch it is not possible to enable both, LDAP client authentication and encrypted communication, because there is no concept of separate security settings for client and server. The better way of implementing this is to segregate Presto endpoints to |
There was a problem hiding this comment.
It will bind the filter only to an app context you are trying to bootstrap here. To make it work you should bind this filter to every single http client in Presto core. This is totally different Guice context. And i'm not sure if it is available from inside of a plugin.
There was a problem hiding this comment.
once you set it to false the tests are gonna start to fail due to the thing i explained above. But when the scheduling to a coordinator is enabled, despite it cannot communicate with workers the test will still pass, as there is a one node to run the queries
There was a problem hiding this comment.
It seems like an overkill to use Guice here. Just go with a PropertyManager and create a LdapAuthenticator manually. Make sure you check all the properties are being used. That is the functionallity that comes with a Bootstrap
f2d8bb3 to
2f1a848
Compare
There was a problem hiding this comment.
This can be moved to edca727 and refactored once the Module is merged
9db5908 to
9089ff9
Compare
There was a problem hiding this comment.
The travis log was getting bigger at times, and the travis stage failed due to https://stackoverflow.com/questions/26082444/how-to-work-around-travis-cis-4mb-output-limit. There is no known good workaround for this travis issue. Now that we run multinode tests in a new stage maybe this is not necessary. But having it in WARN level is not too bad, I think.
There was a problem hiding this comment.
Did you try to at least keep it at a default INFO level? INFO is a pretty commonly used logging level for printing out not so spammy important information. If INFO messages are over-verbose we should probably remove unnecessary logging places. In a separate PR of course =)
There was a problem hiding this comment.
yup, changed it to INFO and it looks fine. DEBUG was logging all the jars used in the plugins. I dont think we kept it at DEBUG on purpose.
|
LGTM |
3306485 to
b507e74
Compare
8945544 to
9f72d15
Compare
9f72d15 to
8f93357
Compare
8f93357 to
b216721
Compare
Add hidden -P presto-cli parameter that allows to specify password in non-interactive way. The parameter is hidden and supposed to be used for testing purposes only.
b216721 to
9a78541
Compare
|
@arhimondr I rebased this on master. Can you merge this too? |
Add a new test profile for multinode tests. Make PluginManager log at INFO level. Tests were failing intermittently with error log > 4MB.
9a78541 to
c8caf12
Compare
|
Now that we have support for multiple auth mechanisms, this hack is not needed. The solution is to have both LDAP and SSL authentication mechanisms enabled and have server-to-server communication authenticated with SSL client certificates. |
|
My question is: How do I use http-server.authentication.type=PASSWORD,CERTIFICATE |
No description provided.