securityelasticsearchamazon-elasticsearch

POST request to Amazon Elastic Search from application impersonating user role (e.g. manager, contractor, etc...)


I am working on a search microservice in Spring boot that relies on Amazon Elastic Search.

My use case is the following:

GIVEN an authenticated user
   AND the user has been authorized with the role Contractor by an In-House access management system;
WHEN the user searches through my service
THEN only the relevant documents are shown as per his/her privileges;

How would that request (I guess POST) would look like for this to work?


Solution

  • I eventually found the answer in the Open Distro ElasticSearch documentation about User Impersonation here.

    In short the trick is to add opendistro_security_impersonate_as to the header in the following way:

    curl -XGET -u 'admin:admin' -k -H "opendistro_security_impersonate_as: user_1" https://localhost:9200/_opendistro/_security/authinfo?pretty
    

    where you can replace:

    This worked like a charm in my case.