Description
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
Attachments
Attachments
Issue Links
- depends upon
-
SOLR-6625 Add interceptor API for outgoing calls through HttpSolrClient
- Closed
- Is contained by
-
SOLR-7236 Securing Solr (umbrella issue)
- Closed
- is related to
-
SOLR-16613 CryptoKeys should handle RSA padding for OpenJ9
- Closed