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

Nigel Jones commented on RANGER-1850:
-------------------------------------

I have an example flow on the 'proxy auth' tab (along bottom) of a few diagrams 
on draw.io - 
https://www.draw.io/#Hplanetf1%2Fgaiandb-policy-ranger%2Fmaster%2Fdoc%2FGaian%20Data%20Access%20Diagrams

To answer
 * userid Ernie is coming in from the JDBC application into gaiandb. As part of 
that jdbc connect proxy-uid=gaiandb, proxy-pass=passw0rd is also sent
 * gaiandb/passw0rd is used by the proxy auth module to authenticate with the 
base gaiandb/derby authentication module 
 * Once connected the application does indeed have access to all the gaiandb 
virtual tables in that there is no control over returned metadata (std jdbc 
metadata) as gaiandb doesn't support policy management there (I think it should 
in future). At a derby level gaiandb does have access to everything
 * If the ranger plugin is installed, then access requests to individual 
schemas, tables & columns will be controlled at that point (using user Ernie)
 * This difference between derby's base auth model using grants etc & what 
ranger does is not ideal... but requires significant work to better integrate 
gaiandb & it's policy model into the derby security manager
 * The userids configured to connect to the underlaying data sources that 
gaiandb is virtualizing are defined in the gaiandb configuration files (on the 
gaiandb code co-located with that data source typically). Whilst the user Ernie 
can access these data sources, he does not have direct access to the 
authentication details as such, or at least doesn't use them, that's the point 
of using gaiandb as the virtualization layer
 * A individual data source will have one set of credentials defined in the 
gaiandb configuration ,so regardless of which user connects the same 
credentials are used, so by definition they are NPAs

One point that does surface from this is that access to the gaiandb stored 
procedures/derby tables that contain auth info for the underlying sources 
should be restricted. I am not sure if this is possible but will look into it. 

> Impersonation/proxy user support for gaiandb ranger plugin
> ----------------------------------------------------------
>
>                 Key: RANGER-1850
>                 URL: https://issues.apache.org/jira/browse/RANGER-1850
>             Project: Ranger
>          Issue Type: Sub-task
>          Components: plugins
>            Reporter: Nigel Jones
>         Attachments: GaianDBAuth.docx
>
>
> Applications/users could connect to gaianDB using their own authentication 
> information - for example userid/password in the simple case. Here the ranger 
> plugin will use that id for policy checks.
> However in a multi tiered architecture a service id (aka non personal 
> account) may be used, and somehow the user to be impersonated is passed via 
> an additional property. This has a number of implications to the system 
> configuration, derby/gaiandb configuration & the plugin implementation. 
> Opening this Jira as a placeholder and will add a document soon (++days) on 
> the same to capture some of the discussion around this area in recent days.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to