[
https://issues.apache.org/jira/browse/RANGER-1850?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16312899#comment-16312899
]
Nigel Jones edited comment on RANGER-1850 at 1/5/18 10:36 AM:
--------------------------------------------------------------
Thanks for the feedback
a) proxy auth fail -- I think both approaches make some sense. I'll think about
which makes best sense for now, and plan to discuss it in some face to face
meetings next week. Note that to some extent this is a shorter term fix since
there's a lot more to do (IMO) for a full proxy support. for example I'd like
to be able to grant specific permissions to the service account to permit it
the proxy capability, and potentially vice versa to allow a user to be
impersonated. This starts getting into the derby security manager in more
detail, so should be based on using more up to date derby code (current) and
working with the derby community. There's also here a tension between the
implementation of the policy plugin and the security manager. We can't do that
just yet so a 'sufficient' solution is all I'm going for at this point.
b) create-schema well.. creates a schema for the user. I wouldn't have expected
it to be needed either - since my queries are against fully qualified views
like gaiandb.vcustomer -- but this fails with the older derby code gaiandb is
using. From the mailing list (derby) it appears this is a bug as it only
affects views and not tables.. but I can't move to current derby code without
gaiandb rejigging. We've already started work to rebuild gaiandb and start
updating libraries, but that is a longer term effort. So for now the pragmatic
workaround is to add this flag. I did this in the plugin to reduce
impact/complexity/odd errors from users of the code. Similar to a) it's a
reflection of a minimal solution pending a much bigger change to bring gaiandb
up to current code levels
c) Which docs are you referring to? If gaiandb - correct. this is an additional
plugin to be applied on top. In the future I hope we can make this a core
capability, but this is a pragmatic approach on existing levels. If the docs
for this plugin, agree that work isn't complete yet. Feel free to clarify what
info you'll need and I'll add it in the README.md once the code moves into the
ranger repo
d) For the use case I'm addressing, auth against oracle is via the NPA defined
for oracle (different to the gaiandb NPA), and those credentials are managed
via the gaiandb configuration as is the case today. As far as gaiandb/derby is
concerned the 'user' is the proxied user ie nigel, david etc as that is what
the 'User' parm on connection is set to (one reason I used it with additional
proxy-uid, proxy-password for the uid/password I wanted to use for the
authentication check). So once the query leaves derby we are purely using the
oracle NPA, and no attempt is made to 'pass down' the actual end user to the
db. This would be very useful for audit, but the method to do this will vary by
each db/source gaiandb supports. It would need more support in gaiandb itself
for a framework, and then specifics for each supported db. Again we're up
against the fact changes need to be made in this area in any case, so it didn't
seem prudent to go down this route at this point.
was (Author: jonesn):
Thanks for the feedback
a) proxy auth fail -- I think both approaches make some sense. I'll think about
which makes sense. Note that to some extent this is a shorter term fix since
there's a lot more to do (IMO) for a full proxy support. for example I'd like
to be able to grant specific permissions to the service account to permit it
the proxy capability, and potentially vice versa to allow a user to be
impersonated. This starts getting into the derby security manager in more
detail, so should be based on using more up to date derby code (current) and
working with the derby community. There's also here a tension between the
implementation of the policy plugin and the security manager. We can't do that
just yet so a 'sufficient' solution is all I'm going for at this point.
b) create-schema well.. creates a schema for the user. I wouldn't have expected
it to be needed either - since my queries are against fully qualified views
like gaiandb.vcustomer -- but this fails with the older derby code gaiandb is
using. From the mailing list (derby) it appears this is a bug as it only
affects views and not tables.. but I can't move to current derby code without
gaiandb rejigging. We've already started work to rebuild gaiandb and start
updating libraries, but that is a longer term effort. So for now the pragmatic
workaround is to add this flag. I did this in the plugin to reduce
impact/complexity/odd errors from users of the code. Similar to a) it's a
reflection of a minimal solution pending a much bigger change to bring gaiandb
up to current code levels
c) Which docs are you referring to? If gaiandb - correct. this is an additional
plugin to be applied on top. In the future I hope we can make this a core
capability, but this is a pragmatic approach on existing levels. If the docs
for this plugin, agree that work isn't complete yet. Feel free to clarify what
info you'll need and I'll add it in the README.md once the code moves into the
ranger repo
d) For the use case I'm addressing, auth against oracle is via the NPA defined
for oracle (different to the gaiandb NPA), and those credentials are managed
via the gaiandb configuration as is the case today. As far as gaiandb/derby is
concerned the 'user' is the proxied user ie nigel, david etc as that is what
the 'User' parm on connection is set to (one reason I used it with additional
proxy-uid, proxy-password for the uid/password I wanted to use for the
authentication check). So once the query leaves derby we are purely using the
oracle NPA, and no attempt is made to 'pass down' the actual end user to the
db. This would be very useful for audit, but the method to do this will vary by
each db/source gaiandb supports. It would need more support in gaiandb itself
for a framework, and then specifics for each supported db. Again we're up
against the fact changes need to be made in this area in any case, so it didn't
seem prudent to go down this route at this point.
> 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)