[ 
https://issues.apache.org/jira/browse/SOLR-7849?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17358958#comment-17358958
 ] 

Noble Paul commented on SOLR-7849:
----------------------------------

{quote}Okay. Is this ultimately to distinguish Client side
{quote}
there are a few different places where we invoke calls to other solr nodes
 # a thread that is a part of an incoming request
 # a thread that is a part of a solr server threadpool, wich is used to perform 
operations in the background. e.g: intra node requests sent from overseer
 # threads in SolrJ


#3 is not a problem becuase it does not have  a private key in that VM so it 
won't be able to send a privileged request to a solr node anyway.

we need to differentiate between #1 and #2 

#1 should actually carry the credentials of incoming request.
#2 should carry the credential of the super user

> Secure Inter-node communication in a  standard mechanism
> --------------------------------------------------------
>
>                 Key: SOLR-7849
>                 URL: https://issues.apache.org/jira/browse/SOLR-7849
>             Project: Solr
>          Issue Type: Sub-task
>            Reporter: Noble Paul
>            Assignee: Noble Paul
>            Priority: Major
>             Fix For: 5.3, 6.0
>
>         Attachments: SOLR-7849.patch, SOLR-7849.patch, SOLR-7849.patch, 
> SOLR-7849.patch
>
>
> Relying on every Authentication plugin to secure the internode communication 
> is error prone. Solr can standardize the authentication so that only the 
> first request that comes from outside the cluster needs to be authenticated 
> by the authentication plugin
> The scheme to protect the communication will be as follows
> * Every Solr node creates a an RSA key pair 
> * The private key is kept private and the public key is made available 
> through a  core admin API
> * If authentication is enabled , every outgoing request will carry an extra 
> header {{ SolrAuth : <nodename> 
> encrypt_with_pvt_key(<original-user-principal> <timestamp>) }}
> * If authentication is enabled {{SolrDispatchFilter}} would look for this 
> header and see the nodename
> ** If the public key of the nodename is available in cache , make a request 
> to the node and fetch the public key
> ** If the public key has changed (because of a server restart) decryption 
> fails and the public keyis fetched again
> * If the decryption succeeds , the user-name is set to what the header has 
> encoded



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org
For additional commands, e-mail: issues-h...@solr.apache.org

Reply via email to