[
https://issues.apache.org/jira/browse/DRILL-4281?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15181352#comment-15181352
]
ASF GitHub Bot commented on DRILL-4281:
---------------------------------------
Github user sudheeshkatkam commented on the pull request:
https://github.com/apache/drill/pull/400#issuecomment-192535617
I apologize that my terminology is confusing everyone.
I've updated the [design
document](https://docs.google.com/document/d/1g0KgugVdRbbIxxZrSCtO1PEHlvwczTLDb38k-npvwjA)
and the PR to include terms that (hopefully) users and developers can
understand.
(1) User delegation itself is not a suitable name for this feature, since
this feature is extending the current impersonation model. So when _user
impersonation_ is enabled, this _inbound_ or _client_ impersonation feature is
also enabled.
(2) I am going to use a variant of Jacques' suggestion for _inbound_
impersonation policies. I think `proxy_principals` and `target_principals` are
apt. For example, an admin would setup policies by using:
```
ALTER SYSTEM SET `exec.impersonation.inbound_policies` = '[
{ proxy_principals : { users : [ "user0_1"] },
target_principals : { users : ["*"] } },
{ proxy_principals : { groups : ["group5_1"] },
target_principals : { groups : ["group4_2"] } }
]';
```
Overall, when impersonation is enabled, both _inbound_ impersonation and
_outbound_ impersonation are allowed.
+ _Inbound_ or _client_ impersonation: an authorized user can impersonate a
target user, and the session user is set accordingly.
+ _Outbound_ or _storage plugin_ impersonation: Drill itself impersonates
as the session user when interacting with storage plugins.
> Drill should support inbound impersonation
> ------------------------------------------
>
> Key: DRILL-4281
> URL: https://issues.apache.org/jira/browse/DRILL-4281
> Project: Apache Drill
> Issue Type: Improvement
> Reporter: Keys Botzum
> Assignee: Sudheesh Katkam
> Labels: doc-impacting, security
>
> Today Drill supports impersonation *to* external sources. For example I can
> authenticate to Drill as myself and then Drill will access HDFS using
> impersonation
> In many scenarios we also need impersonation to Drill. For example I might
> use some front end tool (such as Tableau) and authenticate to it as myself.
> That tool (server version) then needs to access Drill to perform queries and
> I want those queries to run as myself, not as the Tableau user. While in
> theory the intermediate tool could store the userid & password for every user
> to the Drill this isn't a scalable or very secure solution.
> Note that HS2 today does support inbound impersonation as described here:
> https://issues.apache.org/jira/browse/HIVE-5155
> The above is not the best approach as it is tied to the connection object
> which is very coarse grained and potentially expensive. It would be better if
> there was a call on the ODBC/JDBC driver to switch the identity on a existing
> connection. Most modern SQL databases (Oracle, DB2) support such function.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)