Can the Elastic Search Java Node Clients be authenticated

Reading the article pointed by the above link. I was unable to understand the statement “NodeClients are not supported by Search Guard”

Can some one explain what does this mean ?

Requirement:

We have Elastic Search embedded in our application rather than as a service. We are using java node clients (I believe anything which we use to talk to Cluster apart from transport clients are referred as node clients…please correct me if i am wrong ) to talk to the ES Cluster from within our application. Now we have a requirement to authenticate access to indexes. I know Transport clients does this by setting authorisation headers. But what about the java node clients ? is is possible to authenticate the java node clients using HTTP Authentication against Search guard Internal Users Database ?

What exactly does “NodeClients are not supported by Search Guard” mean ?

Thanks

Any reply on this

Hi,I am currently testing how to achieve java program and ES cluster communication. Have you already understood the answer now?

在 2016年12月21日星期三 UTC+8下午9:17:25,supraj写道:

···

https://floragunn.com/searchguard-elasicsearch-transport-clients/

Reading the article pointed by the above link. I was unable to understand the statement “NodeClients are not supported by Search Guard”

Can some one explain what does this mean ?

Requirement:

We have Elastic Search embedded in our application rather than as a service. We are using java node clients (I believe anything which we use to talk to Cluster apart from transport clients are referred as node clients…please correct me if i am wrong ) to talk to the ES Cluster from within our application. Now we have a requirement to authenticate access to indexes. I know Transport clients does this by setting authorisation headers. But what about the java node clients ? is is possible to authenticate the java node clients using HTTP Authentication against Search guard Internal Users Database ?

What exactly does “NodeClients are not supported by Search Guard” mean ?

Thanks

Hi,

You can use the official java client to talk to SG enabled ES, but it needs to be configured as a transport client, as the SG documentation suggests (node not supported).
Don’t worry, the ‘Node’ mode is slowly being deprecated in ES anyway.
The other way is to use HTTP(s) using the Jest library.

Here is an example on how to integrate with SG using the transport protocol.
Here is another example on how to integrate with SG using Jest.

If you use HTTP, you can authenticate using password or clientcert or Negotiate.
If you use Transport you can only use the keystore mechanism.

Thank you for the reference, but this seems to be for the ES-v2 version. I am currently using the ES5.2, the reference on the web is less. Do you currently implement the V2 version of the certification?

在 2016年12月21日星期三 UTC+8下午9:17:25,supraj写道:

···

https://floragunn.com/searchguard-elasicsearch-transport-clients/

Reading the article pointed by the above link. I was unable to understand the statement “NodeClients are not supported by Search Guard”

Can some one explain what does this mean ?

Requirement:

We have Elastic Search embedded in our application rather than as a service. We are using java node clients (I believe anything which we use to talk to Cluster apart from transport clients are referred as node clients…please correct me if i am wrong ) to talk to the ES Cluster from within our application. Now we have a requirement to authenticate access to indexes. I know Transport clients does this by setting authorisation headers. But what about the java node clients ? is is possible to authenticate the java node clients using HTTP Authentication against Search guard Internal Users Database ?

What exactly does “NodeClients are not supported by Search Guard” mean ?

Thanks

HTTP will work the same way with any ES version.
As for the transport node, it should work the same way, try it.

It’s really just a matter of running a regular transport client, and simply adding the searchguard plugin using
plugins.add(SearchGuardSSLPlugin.class);

``