What's a best way to have a multi-tennant Zeppelin notebook?

It seems we currently will have to ask users to run their own Zeppelin
instances.
Since each user has its own authethentication & authorization based on user
who runs
Zeppelin server.

I see best solution could be to have probably --keytab and --principal to
be
notebook-level parameters rather than server-level.

So, for example, I can see Zeppelin multitennancy could be implemented as
1) users after being authenticated through LDAP,
2) that user gets mapped to a  --keytab and --principal pair specific for
that user
so in-Hadoop HDFS, Hive etc access will be specific for that user
(through HDFS ACL, and Sentry/Ranger roles).

Another way: It might be easier to implement through spark-submit's
--proxy-user
parameter, but I am not sure details in this case.
I know that for example Cloudera's Hue is using proxy authentication quite
successfully
in our organization. I.e. Hue does LDAP authentication, and then
impersonates to that
specific user and all requests are made on behalf of that user (although
`hue` is actual
OS user that runs Hue service). Other Hadoop services are just configured
to trust
user `hue` to impersonate to other users.

Is there is a better way?

Anything in Zeppelin roadmap to bring user multitennancy?


Thank you,
Ruslan Dautkhanov

Reply via email to