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

Kai Zheng commented on HADOOP-10959:
------------------------------------

bq.I'm not sure why generating principals and keytabs seems to be viewed as a 
difficult activity. 
Yes generating principals and keytabs shouldn't be difficult in normal form, 
but would be difficult in a dynamic scheduled environment like YARN. We should 
also consider the distribution of the keytabs. Regarding this, perhaps 
developers from Slider project have the real feeling.
bq.Most if not nearly all large corporations already use kerberos in some form
Quite agree, so this solution bases on Kerberos to support the token mechanism. 
We're not coming up something in line with Kerberos or the Kerberos 
Authentication Method in Hadoop, but enhance and extend them compatibly.
bq.My impression it's a misnomer to call this a pre-auth extension? It's not a 
hardening like the encrypted timestamp pre-auth, but instead is a complete 
substitute for a password/keytab. Doesn't this completely undermine kerberos?
Well, let me update verbosely. Classically in RFC4120, Kerberos defined a 
preauth phase in KDC exchange to alleviate password attack, your mentioned 
timestamp preauth is right here. Note by employing the preauth, it also allowed 
to extend the Kerberos protocol and prove the identity of a principal otherwise 
than just password. In fact PKINIT(RFC4556) was defined to prove principal 
identity with x509 certificate. Then, FAST(RFC6113) defines a a generalized 
framework for better defining a preauth mechanism, and in this framework 
OTP(RFC6560) was defined, and token-preauth is being defined. OTP preauth 
allows to use a one time password, and token-preauth use a JWT token, to prove 
the identity instead of password. For end users (not service principal), in 
fact password or key won't be a must and can be purged at all. Note both AD and 
MIT Kerberos implemented FAST and PKINIT, so don't worry about it. 
token-preauth conforms to all these and won't undermine Kerberos.
bq.Will cross-realm authentication work? Do all KDCs in the trust have to use 
the custom plugin?
Cross-realm trust works in Kerberos itself, and in practice MIT KDC trusting AD 
is deployed well. Like trusting another KDC, a KDC can trust a token 
issuer/authority. All the trusts can work together or by itself, but not get 
mixed together. So a MIT KDC can trust an AD for a set of users and a token 
authority for another set of users at the same time in a deployment, and the 
token-preauth plugin is only needed by the MIT KDC.
bq.how do tasks running in the cluster authenticate under the model? Do they 
continue to use the existing delegation tokens obtained via JWT/TGT during job 
submission
I would think yes. The JWT token support is mainly for the initial 
authentication before accessing to Hadoop. I think delegation token works well 
internally to bypass some Kerberos constraint. Before we could push Kerberos to 
evolve to resolve such limits, nothing we can do for now.
bq.are they using the JWT tokens to obtain a TGT/TGS in the tasks? I think the 
latter?
Great idea. Should this go so far I don't know. Maybe in the long future Hadoop 
can achieve to that, all tokens are unified into one (a standardized JWT token 
that works both internally and externally), but not for now I guess.
bq.Mention is made of an AD-TOKEN which I believe is a non-standard MS 
extension? Do you envision the JWT issuer containing the group mapping for all 
services?
Yes token-preauth (with the new AD-TOKEN) is to be standardized. In this 
extension, JWT token MAY(not REQUIRE) contain groups and also other useful 
attributes. If it does, then such attribute(s) can be extracted and employed 
for authorization. If otherwise, no hurt at all and groups mapping can still 
fall back to original providers.
bq.something like certificates or private keys or shared secret to be involved 
- which would be an equal but different "pain to deploy"?
Yes certificates or tokens may be involved, but can be done with less (not just 
different) pain. In YARN/Slider totally dynamically scheduled environment, 
think about how to prepare for the long time running service principals and 
keytabs to be scheduled to run in dynamic containers?


> A Complement and Short Term Solution to TokenAuth Based on Kerberos 
> Pre-Authentication Framework
> ------------------------------------------------------------------------------------------------
>
>                 Key: HADOOP-10959
>                 URL: https://issues.apache.org/jira/browse/HADOOP-10959
>             Project: Hadoop Common
>          Issue Type: New Feature
>          Components: security
>            Reporter: Kai Zheng
>            Assignee: Kai Zheng
>              Labels: Rhino
>         Attachments: KerbToken-v2.pdf
>
>
> To implement and integrate pluggable authentication providers, enhance 
> desirable single sign on for end users, and help enforce centralized access 
> control on the platform, the community has widely discussed and concluded 
> token based authentication could be the appropriate approach. TokenAuth 
> (HADOOP-9392) was proposed and is under development to implement another 
> Authentication Method in lieu with Simple and Kerberos. It is a big and long 
> term effort to support TokenAuth across the entire ecosystem. We here propose 
> a short term replacement based on Kerberos that can complement to TokenAuth. 
> Our solution involves less codes changes with limited risk and the main 
> development work has already been done in our POC. Users can use our solution 
> as a short term solution to support token inside Hadoop.
> This effort and resultant solution will be fully described in the design 
> document to be attached. And the brief introduction will be commented.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to