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

Daryn Sharp commented on HADOOP-9698:
-------------------------------------

bq. It seems from the code that client always sends NEGOTIATE first for sasl 
case. IMO, the client should initiate with its preferred auth type and server 
should negotiate only if it doesn't support/allow the requested auth type

The negotiate/initiate issue was hashed out in HADOOP-9421.  This jira's 
headline is about having the client honor the negotiate.  The capability for 
the client to blindly INITIATE is there, but it's counter to the higher level 
goals: IP failover where the client doesn't know the service principal, 
improved token selection which may change the proto/serverId.

bq. It is not clear to me why client cannot figure out whether it has the token 
for the service. The client should try sasl only if it has tokens for the 
service in question

The server should be able to tell the client, or at least hint to it, what 
token it wants via the proto/serverId fields instead of the client trying to 
guess.
# The current guessing model doesn't work with the default use_ip=true because 
multi-interface hosts, NATing, public/private networks, etc will fail to find a 
token.
# The use_ip=false case fixes some of those issue, but it's fragile to ensure 
client code manipulates the addr correctly.  I want out of that janitorial job 
- something at the rpc layer prevents user error.
# HA token selection with a failover proxy is convoluted and can be simplified.

bq. Do we always allow fallback if the client wants token with security 
disabled but server says simple?
The question is a bit contradictory.  It's not what the client wants, but 
rather what the server wants.  There's no way for the client to know it's 
"expected" to use a token.  So yes, if a server tells a simple client to do 
simple, it will do simple.

                
> RPCv9 client must honor server's SASL negotiate response
> --------------------------------------------------------
>
>                 Key: HADOOP-9698
>                 URL: https://issues.apache.org/jira/browse/HADOOP-9698
>             Project: Hadoop Common
>          Issue Type: Sub-task
>          Components: ipc
>    Affects Versions: 3.0.0, 2.1.0-beta
>            Reporter: Daryn Sharp
>            Assignee: Daryn Sharp
>            Priority: Blocker
>         Attachments: HADOOP-9698.patch
>
>
> As of HADOOP-9421, a RPCv9 server will advertise its authentication methods.  
> This is meant to support features such as IP failover, better token 
> selection, and interoperability in a heterogenous security environment.
> Currently the client ignores the negotiate response and just blindly attempts 
> to authenticate instead of choosing a mutually agreeable auth method.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to