--
You received this message because you are subscribed to the Google Groups "Druid Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email to druid-developm...@googlegroups.com.
To post to this group, send email to druid-de...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/druid-development/0b41dbd6-347e-4c6a-9d49-f78ecc2d7580%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
To view this discussion on the web visit https://groups.google.com/d/msgid/druid-development/CACZNdYC4_jjAJbjmafuWSU_W4dgTUaU6vdzNyCzU-X%2BjV3MMvw%40mail.gmail.com.
-- HimanshuHi Gian,Abstractions are necessary inside druid-core to do the authorization checks. Respective HTTP endpoint implementations are best to identify what dataSource (or a lower level entity) is being accessed and whether request is a read or write on that. I believe we can keep authorization abstractions generic enough to extend them to column/row level when necessary.
On Fri, Jan 15, 2016 at 11:41 AM, Gian Merlino <gi...@imply.io> wrote:
Hey Himanshu,I'm wondering what is the rationale behind adding the framework to Druid core rather than having it 100% be an extension at your site? I think you could already add request filters via extensions.The reason I'm asking is that for a universal authorization framework, I think it would be nice to support some more fine grained stuff than per-datasource. There are some use cases for both column and row level authorization (column -> only certain teams can see privacy sensitive dimensions; row -> multitenant datasources where each tenant can only see things with tenant = "some-tenant-id"). This would definitely be more work though.Perhaps one way to make that possible without doing all the work right now would be to set up the interfaces such that the implementation doesn't just return a whitelist of datasources, but actually makes the decision based on the user and the query. So some implementations might only look at the query datasource and some might look at more parts of the query.
Gian
On Fri, Jan 15, 2016 at 8:36 AM, Himanshu Gupta <g.him...@gmail.com> wrote:
Hi,
If you want to operate a Druid cluster with multiple users, you would need some level of authentication and authorization in place. One option to enable that would be following.
1) Add an abstract/interface "AuthenticationFilter" which authenticates "user" making the request, finds its authorization information (what dataSources it has read/right access to) and puts that in the request context.
2) All the HTTP endpoints recover the authorization information from request context and accept/reject based on the privileges of the user.
Druid core would only have abstractions necessary to enable authentication and authorization, actual implementation should be plugged via extensions.
We will soon be working on this. Please provide any thoughts/concerns you might have.
-- Himanshu
--
You received this message because you are subscribed to the Google Groups "Druid Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email to druid-development+unsubscribe@googlegroups.com.
To post to this group, send email to druid-development@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/druid-development/0b41dbd6-347e-4c6a-9d49-f78ecc2d7580%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "Druid Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email to druid-development+unsubscribe@googlegroups.com.
To post to this group, send email to druid-development@googlegroups.com.
What level are you wanting to do the authorization at?My initial thought would be only at the router level or query optimization level?
On a macro level there are lots of different authorization schemes we can imagine. For example: dataSource, dimension with a datasource, only being able to select particular filters or see a particular dimension values subset in a particular dimension in a datasource.
Limiting datasource access via authorization seems reasonable, but there are multiple authentication paradigms (straight-up user, user-roles, iam) which can be used to determine authorization. Can you elaborate a little on any limits of the kinds of authorization you are wanting to enable (this is probably tied to "what level shall we enforce it")?
Additionally, I'm concerned any authorization we add deeper than "at the ver top of the query stack" would be artificial. What level of "authorization" are you hoping to be able to enforce. we could go all the way to using java security manager stuff, classloader isolation, and somehow tying to OS permissions (example: file permissions of segments stored on disk tied to OS knowledgeable user/group). How deep down the rabbit hole are your use envisioning enabling?
On Friday, January 15, 2016 at 11:04:06 AM UTC-8, Himanshu Gupta wrote:
-- HimanshuHi Gian,Abstractions are necessary inside druid-core to do the authorization checks. Respective HTTP endpoint implementations are best to identify what dataSource (or a lower level entity) is being accessed and whether request is a read or write on that. I believe we can keep authorization abstractions generic enough to extend them to column/row level when necessary.
On Fri, Jan 15, 2016 at 11:41 AM, Gian Merlino <gi...@imply.io> wrote:
Hey Himanshu,I'm wondering what is the rationale behind adding the framework to Druid core rather than having it 100% be an extension at your site? I think you could already add request filters via extensions.The reason I'm asking is that for a universal authorization framework, I think it would be nice to support some more fine grained stuff than per-datasource. There are some use cases for both column and row level authorization (column -> only certain teams can see privacy sensitive dimensions; row -> multitenant datasources where each tenant can only see things with tenant = "some-tenant-id"). This would definitely be more work though.Perhaps one way to make that possible without doing all the work right now would be to set up the interfaces such that the implementation doesn't just return a whitelist of datasources, but actually makes the decision based on the user and the query. So some implementations might only look at the query datasource and some might look at more parts of the query.
Gian
On Fri, Jan 15, 2016 at 8:36 AM, Himanshu Gupta <g.him...@gmail.com> wrote:
Hi,
If you want to operate a Druid cluster with multiple users, you would need some level of authentication and authorization in place. One option to enable that would be following.
1) Add an abstract/interface "AuthenticationFilter" which authenticates "user" making the request, finds its authorization information (what dataSources it has read/right access to) and puts that in the request context.
2) All the HTTP endpoints recover the authorization information from request context and accept/reject based on the privileges of the user.
Druid core would only have abstractions necessary to enable authentication and authorization, actual implementation should be plugged via extensions.
We will soon be working on this. Please provide any thoughts/concerns you might have.
-- Himanshu
--
You received this message because you are subscribed to the Google Groups "Druid Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email to druid-developm...@googlegroups.com.
To post to this group, send email to druid-de...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/druid-development/0b41dbd6-347e-4c6a-9d49-f78ecc2d7580%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "Druid Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email to druid-developm...@googlegroups.com.
To post to this group, send email to druid-de...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/druid-development/CACZNdYC4_jjAJbjmafuWSU_W4dgTUaU6vdzNyCzU-X%2BjV3MMvw%40mail.gmail.com.
--
You received this message because you are subscribed to the Google Groups "Druid Development" group.
To view this discussion on the web visit https://groups.google.com/d/msgid/druid-development/a5edd5b7-83f7-41b0-a36f-53aff545d6b0%40googlegroups.com.To unsubscribe from this group and stop receiving emails from it, send an email to druid-developm...@googlegroups.com.
To post to this group, send email to druid-de...@googlegroups.com.
Gian
To unsubscribe from this group and stop receiving emails from it, send an email to druid-development+unsubscribe@googlegroups.com.
To post to this group, send email to druid-development@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/druid-development/0b41dbd6-347e-4c6a-9d49-f78ecc2d7580%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "Druid Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email to druid-development+unsubscribe@googlegroups.com.
To post to this group, send email to druid-development@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/druid-development/CACZNdYC4_jjAJbjmafuWSU_W4dgTUaU6vdzNyCzU-X%2BjV3MMvw%40mail.gmail.com.
--
You received this message because you are subscribed to the Google Groups "Druid Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email to druid-development+unsubscribe@googlegroups.com.
To post to this group, send email to druid-development@googlegroups.com.
Gian
To unsubscribe from this group and stop receiving emails from it, send an email to druid-developm...@googlegroups.com.
To post to this group, send email to druid-de...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/druid-development/0b41dbd6-347e-4c6a-9d49-f78ecc2d7580%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "Druid Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email to druid-developm...@googlegroups.com.
To post to this group, send email to druid-de...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/druid-development/CACZNdYC4_jjAJbjmafuWSU_W4dgTUaU6vdzNyCzU-X%2BjV3MMvw%40mail.gmail.com.
--
You received this message because you are subscribed to the Google Groups "Druid Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email to druid-developm...@googlegroups.com.
To post to this group, send email to druid-de...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/druid-development/a5edd5b7-83f7-41b0-a36f-53aff545d6b0%40googlegroups.com.
--
You received this message because you are subscribed to the Google Groups "Druid Development" group.
To view this discussion on the web visit https://groups.google.com/d/msgid/druid-development/1f74e3a1-1e38-4774-9492-26f15ebd7cd4%40googlegroups.com.To unsubscribe from this group and stop receiving emails from it, send an email to druid-developm...@googlegroups.com.
To post to this group, send email to druid-de...@googlegroups.com.
Gian
To unsubscribe from this group and stop receiving emails from it, send an email to druid-development+unsubscribe@googlegroups.com.
To post to this group, send email to druid-development@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/druid-development/0b41dbd6-347e-4c6a-9d49-f78ecc2d7580%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "Druid Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email to druid-development+unsubscribe@googlegroups.com.
To post to this group, send email to druid-development@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/druid-development/CACZNdYC4_jjAJbjmafuWSU_W4dgTUaU6vdzNyCzU-X%2BjV3MMvw%40mail.gmail.com.
--
You received this message because you are subscribed to the Google Groups "Druid Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email to druid-development+unsubscribe@googlegroups.com.
To post to this group, send email to druid-development@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/druid-development/a5edd5b7-83f7-41b0-a36f-53aff545d6b0%40googlegroups.com.
--
You received this message because you are subscribed to the Google Groups "Druid Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email to druid-development+unsubscribe@googlegroups.com.
To post to this group, send email to druid-development@googlegroups.com.
Gian
To unsubscribe from this group and stop receiving emails from it, send an email to druid-developm...@googlegroups.com.
To post to this group, send email to druid-de...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/druid-development/0b41dbd6-347e-4c6a-9d49-f78ecc2d7580%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "Druid Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email to druid-developm...@googlegroups.com.
To post to this group, send email to druid-de...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/druid-development/CACZNdYC4_jjAJbjmafuWSU_W4dgTUaU6vdzNyCzU-X%2BjV3MMvw%40mail.gmail.com.
--
You received this message because you are subscribed to the Google Groups "Druid Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email to druid-developm...@googlegroups.com.
To post to this group, send email to druid-de...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/druid-development/a5edd5b7-83f7-41b0-a36f-53aff545d6b0%40googlegroups.com.
--
You received this message because you are subscribed to the Google Groups "Druid Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email to druid-developm...@googlegroups.com.
To post to this group, send email to druid-de...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/druid-development/1f74e3a1-1e38-4774-9492-26f15ebd7cd4%40googlegroups.com.
--
You received this message because you are subscribed to the Google Groups "Druid Development" group.
To view this discussion on the web visit https://groups.google.com/d/msgid/druid-development/fee2d252-4bff-4342-a5c5-7f1e50038e6d%40googlegroups.com.To unsubscribe from this group and stop receiving emails from it, send an email to druid-developm...@googlegroups.com.
To post to this group, send email to druid-de...@googlegroups.com.
Gian
To unsubscribe from this group and stop receiving emails from it, send an email to druid-development+unsubscribe@googlegroups.com.
To post to this group, send email to druid-development@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/druid-development/0b41dbd6-347e-4c6a-9d49-f78ecc2d7580%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "Druid Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email to druid-development+unsubscribe@googlegroups.com.
To post to this group, send email to druid-development@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/druid-development/CACZNdYC4_jjAJbjmafuWSU_W4dgTUaU6vdzNyCzU-X%2BjV3MMvw%40mail.gmail.com.
--
You received this message because you are subscribed to the Google Groups "Druid Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email to druid-development+unsubscribe@googlegroups.com.
To post to this group, send email to druid-development@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/druid-development/a5edd5b7-83f7-41b0-a36f-53aff545d6b0%40googlegroups.com.
--
You received this message because you are subscribed to the Google Groups "Druid Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email to druid-development+unsubscribe@googlegroups.com.
To post to this group, send email to druid-development@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/druid-development/1f74e3a1-1e38-4774-9492-26f15ebd7cd4%40googlegroups.com.
--
You received this message because you are subscribed to the Google Groups "Druid Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email to druid-development+unsubscribe@googlegroups.com.
To post to this group, send email to druid-development@googlegroups.com.
Gian
To unsubscribe from this group and stop receiving emails from it, send an email to druid-developm...@googlegroups.com.
To post to this group, send email to druid-de...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/druid-development/0b41dbd6-347e-4c6a-9d49-f78ecc2d7580%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "Druid Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email to druid-developm...@googlegroups.com.
To post to this group, send email to druid-de...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/druid-development/CACZNdYC4_jjAJbjmafuWSU_W4dgTUaU6vdzNyCzU-X%2BjV3MMvw%40mail.gmail.com.
--
You received this message because you are subscribed to the Google Groups "Druid Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email to druid-developm...@googlegroups.com.
To post to this group, send email to druid-de...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/druid-development/a5edd5b7-83f7-41b0-a36f-53aff545d6b0%40googlegroups.com.
--
You received this message because you are subscribed to the Google Groups "Druid Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email to druid-developm...@googlegroups.com.
To post to this group, send email to druid-de...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/druid-development/1f74e3a1-1e38-4774-9492-26f15ebd7cd4%40googlegroups.com.
--
You received this message because you are subscribed to the Google Groups "Druid Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email to druid-developm...@googlegroups.com.
To post to this group, send email to druid-de...@googlegroups.com.
To unsubscribe from this group and stop receiving emails from it, send an email to druid-development+unsubscribe@googlegroups.com.
To post to this group, send email to druid-development@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/druid-development/d18f0e5e-3df2-4d38-8e84-3059efc07c29%40googlegroups.com.