This looks good and reasonable to me. Thanks Chris.

-----Original Message-----
From: Chris Douglas [mailto:cdoug...@apache.org] 
Sent: Wednesday, September 04, 2013 6:45 AM
To: common-dev@hadoop.apache.org
Subject: Re: [DISCUSS] Hadoop SSO/Token Server Components

On Tue, Sep 3, 2013 at 5:20 AM, Larry McCay <lmc...@hortonworks.com> wrote:
> One outstanding question for me - how do we go about getting the 
> branches created?

Once a group has converged on a purpose- ideally with some initial code from 
JIRA- please go ahead and create the feature branch in svn.
There's no ceremony. -C

> On Tue, Aug 6, 2013 at 6:22 PM, Chris Nauroth <cnaur...@hortonworks.com>wrote:
>
>> Near the bottom of the bylaws, it states that addition of a "New 
>> Branch Committer" requires "Lazy consensus of active PMC members."  I 
>> think this means that you'll need to get a PMC member to sponsor the vote 
>> for you.
>>  Regular committer votes happen on the private PMC mailing list, and 
>> I assume it would be the same for a branch committer vote.
>>
>> http://hadoop.apache.org/bylaws.html
>>
>> Chris Nauroth
>> Hortonworks
>> http://hortonworks.com/
>>
>>
>>
>> On Tue, Aug 6, 2013 at 2:48 PM, Larry McCay <lmc...@hortonworks.com>
>> wrote:
>>
>> > That sounds perfect!
>> > I have been thinking of late that we would maybe need an incubator
>> project
>> > or something for this - which would be unfortunate.
>> >
>> > This would allow us to move much more quickly with a set of patches
>> broken
>> > up into consumable/understandable chunks that are made functional 
>> > more easily within the branch.
>> > I assume that we need to start a separate thread for DISCUSS or 
>> > VOTE to start that process - correct?
>> >
>> > On Aug 6, 2013, at 4:15 PM, Alejandro Abdelnur <t...@cloudera.com>
>> wrote:
>> >
>> > > yep, that is what I meant. Thanks Chris
>> > >
>> > >
>> > > On Tue, Aug 6, 2013 at 1:12 PM, Chris Nauroth <
>> cnaur...@hortonworks.com
>> > >wrote:
>> > >
>> > >> Perhaps this is also a good opportunity to try out the new 
>> > >> "branch committers" clause in the bylaws, enabling 
>> > >> non-committers who are
>> > working
>> > >> on this to commit to the feature branch.
>> > >>
>> > >>
>> > >>
>> >
>> http://mail-archives.apache.org/mod_mbox/hadoop-general/201308.mbox/%
>> 3CCACO5Y4we4d8knB_xU3a=hr2gbeqo5m3vau+inba0li1i9e2...@mail.gmail.com%
>> 3E
>> > >>
>> > >> Chris Nauroth
>> > >> Hortonworks
>> > >> http://hortonworks.com/
>> > >>
>> > >>
>> > >>
>> > >> On Tue, Aug 6, 2013 at 1:04 PM, Alejandro Abdelnur 
>> > >> <t...@cloudera.com
>> > >>> wrote:
>> > >>
>> > >>> Larry,
>> > >>>
>> > >>> Sorry for the delay answering. Thanks for laying down things, 
>> > >>> yes, it
>> > >> makes
>> > >>> sense.
>> > >>>
>> > >>> Given the large scope of the changes, number of JIRAs and 
>> > >>> number of developers involved, wouldn't make sense to create a 
>> > >>> feature branch
>> for
>> > >> all
>> > >>> this work not to destabilize (more ;) trunk?
>> > >>>
>> > >>> Thanks again.
>> > >>>
>> > >>>
>> > >>> On Tue, Jul 30, 2013 at 9:43 AM, Larry McCay 
>> > >>> <lmc...@hortonworks.com
>> >
>> > >>> wrote:
>> > >>>
>> > >>>> The following JIRA was filed to provide a token and basic 
>> > >>>> authority implementation for this effort:
>> > >>>> https://issues.apache.org/jira/browse/HADOOP-9781
>> > >>>>
>> > >>>> I have attached an initial patch though have yet to submit it 
>> > >>>> as one
>> > >>> since
>> > >>>> it is dependent on the patch for CMF that was posted to:
>> > >>>> https://issues.apache.org/jira/browse/HADOOP-9534
>> > >>>> and this patch still has a couple outstanding issues - javac
>> warnings
>> > >> for
>> > >>>> com.sun classes for certification generation and 11 javadoc
>> warnings.
>> > >>>>
>> > >>>> Please feel free to review the patches and raise any questions 
>> > >>>> or
>> > >>> concerns
>> > >>>> related to them.
>> > >>>>
>> > >>>> On Jul 26, 2013, at 8:59 PM, Larry McCay 
>> > >>>> <lmc...@hortonworks.com>
>> > >> wrote:
>> > >>>>
>> > >>>>> Hello All -
>> > >>>>>
>> > >>>>> In an effort to scope an initial iteration that provides 
>> > >>>>> value to
>> the
>> > >>>> community while focusing on the pluggable authentication 
>> > >>>> aspects,
>> I've
>> > >>>> written a description for "Iteration 1". It identifies the 
>> > >>>> goal of
>> the
>> > >>>> iteration, the endstate and a set of initial usecases. It also
>> > >> enumerates
>> > >>>> the components that are required for each usecase. There is a 
>> > >>>> scope
>> > >>> section
>> > >>>> that details specific things that should be kept out of the 
>> > >>>> first iteration. This is certainly up for discussion. There 
>> > >>>> may be some of
>> > >>> these
>> > >>>> things that can be contributed in short order. If we can add 
>> > >>>> some
>> > >> things
>> > >>> in
>> > >>>> without unnecessary complexity for the identified usecases 
>> > >>>> then we
>> > >>> should.
>> > >>>>>
>> > >>>>> @Alejandro - please review this and see whether it satisfies 
>> > >>>>> your
>> > >> point
>> > >>>> for a definition of what we are building.
>> > >>>>>
>> > >>>>> In addition to the document that I will paste here as text 
>> > >>>>> and
>> > >> attach a
>> > >>>> pdf version, we have a couple patches for components that are
>> > >> identified
>> > >>> in
>> > >>>> the document.
>> > >>>>> Specifically, COMP-7 and COMP-8.
>> > >>>>>
>> > >>>>> I will be posting COMP-8 patch to the HADOOP-9534 JIRA which 
>> > >>>>> was
>> > >> filed
>> > >>>> specifically for that functionality.
>> > >>>>> COMP-7 is a small set of classes to introduce JsonWebToken as 
>> > >>>>> the
>> > >> token
>> > >>>> format and a basic JsonWebTokenAuthority that can issue and 
>> > >>>> verify
>> > >> these
>> > >>>> tokens.
>> > >>>>>
>> > >>>>> Since there is no JIRA for this yet, I will likely file a new 
>> > >>>>> JIRA
>> > >> for
>> > >>> a
>> > >>>> SSO token implementation.
>> > >>>>>
>> > >>>>> Both of these patches assume to be modules within
>> > >>>> hadoop-common/hadoop-common-project.
>> > >>>>> While they are relatively small, I think that they will be 
>> > >>>>> pulled
>> in
>> > >> by
>> > >>>> other modules such as hadoop-auth which would likely not want 
>> > >>>> a
>> > >>> dependency
>> > >>>> on something larger like
>> > >>> hadoop-common/hadoop-common-project/hadoop-common.
>> > >>>>>
>> > >>>>> This is certainly something that we should discuss within the
>> > >> community
>> > >>>> for this effort though - that being, exactly how to add these
>> > libraries
>> > >>> so
>> > >>>> that they are most easily consumed by existing projects.
>> > >>>>>
>> > >>>>> Anyway, the following is the Iteration-1 document - it is 
>> > >>>>> also
>> > >> attached
>> > >>>> as a pdf:
>> > >>>>>
>> > >>>>> Iteration 1: Pluggable User Authentication and Federation
>> > >>>>>
>> > >>>>> Introduction
>> > >>>>> The intent of this effort is to bootstrap the development of
>> > >> pluggable
>> > >>>> token-based authentication mechanisms to support certain goals 
>> > >>>> of enterprise authentication integrations. By restricting the 
>> > >>>> scope of
>> > >> this
>> > >>>> effort, we hope to provide immediate benefit to the community 
>> > >>>> while
>> > >>> keeping
>> > >>>> the initial contribution to a manageable size that can be 
>> > >>>> easily
>> > >>> reviewed,
>> > >>>> understood and extended with further development through 
>> > >>>> follow up
>> > >> JIRAs
>> > >>>> and related iterations.
>> > >>>>>
>> > >>>>> Iteration Endstate
>> > >>>>> Once complete, this effort will have extended the 
>> > >>>>> authentication
>> > >>>> mechanisms - for all client types - from the existing: Simple,
>> > Kerberos
>> > >>> and
>> > >>>> Plain (for RPC) to include LDAP authentication and SAML based
>> > >> federation.
>> > >>>> In addition, the ability to provide additional/custom 
>> > >>>> authentication mechanisms will be enabled for users to plug in 
>> > >>>> their preferred
>> > >>> mechanisms.
>> > >>>>>
>> > >>>>> Project Scope
>> > >>>>> The scope of this effort is a subset of the features covered 
>> > >>>>> by the
>> > >>>> overviews of HADOOP-9392 and HADOOP-9533. This effort 
>> > >>>> concentrates
>> on
>> > >>>> enabling Hadoop to issue, accept/validate SSO tokens of its 
>> > >>>> own. The pluggable authentication mechanism within SASL/RPC 
>> > >>>> layer and the authentication filter pluggability for REST and 
>> > >>>> UI components will
>> be
>> > >>>> leveraged and extended to support the results of this effort.
>> > >>>>>
>> > >>>>> Out of Scope
>> > >>>>> In order to scope the initial deliverable as the minimally 
>> > >>>>> viable
>> > >>>> product, a handful of things have been simplified or left out 
>> > >>>> of
>> scope
>> > >>> for
>> > >>>> this effort. This is not meant to say that these aspects are 
>> > >>>> not
>> > useful
>> > >>> or
>> > >>>> not needed but that they are not necessary for this iteration. 
>> > >>>> We do however need to ensure that we don't do anything to 
>> > >>>> preclude adding
>> > >> them
>> > >>> in
>> > >>>> future iterations.
>> > >>>>> 1. Additional Attributes - the result of authentication will
>> continue
>> > >>> to
>> > >>>> use the existing hadoop tokens and identity representations.
>> > Additional
>> > >>>> attributes used for finer grained authorization decisions will 
>> > >>>> be
>> > added
>> > >>>> through follow-up efforts.
>> > >>>>> 2. Token revocation - the ability to revoke issued identity 
>> > >>>>> tokens
>> > >> will
>> > >>>> be added later
>> > >>>>> 3. Multi-factor authentication - this will likely require
>> additional
>> > >>>> attributes and is not necessary for this iteration.
>> > >>>>> 4. Authorization changes - we will require additional 
>> > >>>>> attributes
>> for
>> > >>> the
>> > >>>> fine-grained access control plans. This is not needed for this
>> > >> iteration.
>> > >>>>> 5. Domains - we assume a single flat domain for all users 6. 
>> > >>>>> Kinit alternative - we can leverage existing REST clients 
>> > >>>>> such
>> as
>> > >>>> cURL to retrieve tokens through authentication and federation 
>> > >>>> for
>> the
>> > >>> time
>> > >>>> being
>> > >>>>> 7. A specific authentication framework isn't really necessary
>> within
>> > >>> the
>> > >>>> REST endpoints for this iteration. If one is available then we 
>> > >>>> can
>> use
>> > >> it
>> > >>>> otherwise we can leverage existing things like Apache Shiro 
>> > >>>> within a servlet filter.
>> > >>>>>
>> > >>>>> In Scope
>> > >>>>> What is in scope for this effort is defined by the usecases
>> described
>> > >>>> below. Components required for supporting the usecases are
>> summarized
>> > >> for
>> > >>>> each client type. Each component is a candidate for a JIRA 
>> > >>>> subtask -
>> > >>> though
>> > >>>> multiple components are likely to be included in a JIRA to
>> represent a
>> > >>> set
>> > >>>> of functionality rather than individual JIRAs per component.
>> > >>>>>
>> > >>>>> Terminology and Naming
>> > >>>>> The terms and names of components within this document are 
>> > >>>>> merely
>> > >>>> descriptive of the functionality that they represent. Any 
>> > >>>> similarity
>> > or
>> > >>>> difference in names or terms from those that are found in 
>> > >>>> other
>> > >> documents
>> > >>>> are not intended to make any statement about those other 
>> > >>>> documents
>> or
>> > >> the
>> > >>>> descriptions within. This document represents the pluggable
>> > >>> authentication
>> > >>>> mechanisms and server functionality required to replace Kerberos.
>> > >>>>>
>> > >>>>> Ultimately, the naming of the implementation classes will be 
>> > >>>>> a
>> > >> product
>> > >>>> of the patches accepted by the community.
>> > >>>>>
>> > >>>>> Usecases:
>> > >>>>> client types: REST, CLI, UI
>> > >>>>> authentication types: Simple, Kerberos, authentication/LDAP,
>> > >>>> federation/SAML
>> > >>>>>
>> > >>>>> Simple and Kerberos
>> > >>>>> Simple and Kerberos usecases continue to work as they do 
>> > >>>>> today. The
>> > >>>> addition of Authentication/LDAP and Federation/SAML are added
>> through
>> > >> the
>> > >>>> existing pluggability points either as they are or with 
>> > >>>> required
>> > >>> extension.
>> > >>>> Either way, continued support for Simple and Kerberos must not
>> require
>> > >>>> changes to existing deployments in the field as a result of 
>> > >>>> this
>> > >> effort.
>> > >>>>>
>> > >>>>> REST
>> > >>>>> USECASE REST-1 Authentication/LDAP:
>> > >>>>> For REST clients, we will provide the ability to:
>> > >>>>> 1. use cURL to Authenticate via LDAP through an IdP endpoint
>> exposed
>> > >> by
>> > >>>> an AuthenticationServer instance via REST calls to:
>> > >>>>>   a. authenticate - passing username/password returning a 
>> > >>>>> hadoop
>> > >>>> id_token
>> > >>>>>   b. get-access-token - from the TokenGrantingService by 
>> > >>>>> passing
>> the
>> > >>>> hadoop id_token as an Authorization: Bearer token along with 
>> > >>>> the
>> > >> desired
>> > >>>> service name (master service name) returning a hadoop access 
>> > >>>> token
>> > >>>>> 2. Successfully invoke a hadoop service REST API passing the 
>> > >>>>> hadoop
>> > >>>> access token through an HTTP header as an Authorization Bearer 
>> > >>>> token
>> > >>>>>   a. validation of the incoming token on the service endpoint 
>> > >>>>> is
>> > >>>> accomplished by an SSOAuthenticationHandler
>> > >>>>> 3. Successfully block access to a REST resource when 
>> > >>>>> presenting a
>> > >>> hadoop
>> > >>>> access token intended for a different service
>> > >>>>>   a. validation of the incoming token on the service endpoint 
>> > >>>>> is
>> > >>>> accomplished by an SSOAuthenticationHandler
>> > >>>>>
>> > >>>>> USECASE REST-2 Federation/SAML:
>> > >>>>> We will also provide federation capabilities for REST clients 
>> > >>>>> such
>> > >>> that:
>> > >>>>> 1. acquire SAML assertion token from a trusted IdP 
>> > >>>>> (shibboleth?)
>> and
>> > >>>> persist in a permissions protected file - ie.
>> > >> ~/.hadoop_tokens/.idp_token
>> > >>>>> 2. use cURL to Federate a token from a trusted IdP through an 
>> > >>>>> SP
>> > >>>> endpoint exposed by an AuthenticationServer(FederationServer?)
>> > instance
>> > >>> via
>> > >>>> REST calls to:
>> > >>>>>   a. federate - passing a SAML assertion as an Authorization:
>> Bearer
>> > >>>> token returning a hadoop id_token
>> > >>>>>      - can copy and paste from commandline or use cat to 
>> > >>>>> include
>> > >>>> persisted token through "--Header Authorization: Bearer 'cat 
>> > >>>> ~/.hadoop_tokens/.id_token'"
>> > >>>>>   b. get-access-token - from the TokenGrantingService by 
>> > >>>>> passing
>> the
>> > >>>> hadoop id_token as an Authorization: Bearer token along with 
>> > >>>> the
>> > >> desired
>> > >>>> service name (master service name) to the TokenGrantingService
>> > >> returning
>> > >>> a
>> > >>>> hadoop access token
>> > >>>>> 3. Successfully invoke a hadoop service REST API passing the 
>> > >>>>> hadoop
>> > >>>> access token through an HTTP header as an Authorization Bearer 
>> > >>>> token
>> > >>>>>   a. validation of the incoming token on the service endpoint 
>> > >>>>> is
>> > >>>> accomplished by an SSOAuthenticationHandler
>> > >>>>> 4. Successfully block access to a REST resource when 
>> > >>>>> presenting a
>> > >>> hadoop
>> > >>>> access token intended for a different service
>> > >>>>>   a. validation of the incoming token on the service endpoint 
>> > >>>>> is
>> > >>>> accomplished by an SSOAuthenticationHandler
>> > >>>>>
>> > >>>>> REQUIRED COMPONENTS for REST USECASES:
>> > >>>>> COMP-1. REST client - cURL or similar COMP-2. REST endpoint 
>> > >>>>> for BASIC authentication to LDAP - IdP
>> endpoint
>> > >>>> example - returning hadoop id_token
>> > >>>>> COMP-3. REST endpoint for federation with SAML Bearer token -
>> > >>> shibboleth
>> > >>>> SP?|OpenSAML? - returning hadoop id_token
>> > >>>>> COMP-4. REST TokenGrantingServer endpoint for acquiring 
>> > >>>>> hadoop
>> access
>> > >>>> tokens from hadoop id_tokens
>> > >>>>> COMP-5. SSOAuthenticationHandler to validate incoming hadoop 
>> > >>>>> access
>> > >>>> tokens
>> > >>>>> COMP-6. some source of a SAML assertion - shibboleth IdP?
>> > >>>>> COMP-7. hadoop token and authority implementations COMP-8. 
>> > >>>>> core services for crypto support for signing, verifying and
>> > >> PKI
>> > >>>> management
>> > >>>>>
>> > >>>>> CLI
>> > >>>>> USECASE CLI-1 Authentication/LDAP:
>> > >>>>> For CLI/RPC clients, we will provide the ability to:
>> > >>>>> 1. use cURL to Authenticate via LDAP through an IdP endpoint
>> exposed
>> > >> by
>> > >>>> an AuthenticationServer instance via REST calls to:
>> > >>>>>   a. authenticate - passing username/password returning a 
>> > >>>>> hadoop
>> > >>>> id_token
>> > >>>>>      - for RPC clients we need to persist the returned hadoop
>> > >> identity
>> > >>>> token in a file protected by fs permissions so that it may be
>> > leveraged
>> > >>>> until expiry
>> > >>>>>      - directing the returned response to a file may suffice 
>> > >>>>> for
>> now
>> > >>>> something like ">~/.hadoop_tokens/.id_token"
>> > >>>>> 2. use hadoop CLI to invoke RPC API on a specific hadoop service
>> > >>>>>   a. RPC client negotiates a TokenAuth method through SASL 
>> > >>>>> layer,
>> > >>>> hadoop id_token is retrieved from ~/.hadoop_tokens/.id_token 
>> > >>>> is
>> passed
>> > >> as
>> > >>>> Authorization: Bearer token to the get-access-token REST 
>> > >>>> endpoint
>> > >> exposed
>> > >>>> by TokenGrantingService returning a hadoop access token
>> > >>>>>   b. RPC server side validates the presented hadoop access 
>> > >>>>> token
>> and
>> > >>>> continues to serve request
>> > >>>>>   c. Successfully invoke a hadoop service RPC API
>> > >>>>>
>> > >>>>> USECASE CLI-2 Federation/SAML:
>> > >>>>> For CLI/RPC clients, we will provide the ability to:
>> > >>>>> 1. acquire SAML assertion token from a trusted IdP 
>> > >>>>> (shibboleth?)
>> and
>> > >>>> persist in a permissions protected file - ie.
>> > >> ~/.hadoop_tokens/.idp_token
>> > >>>>> 2. use cURL to Federate a token from a trusted IdP through an 
>> > >>>>> SP
>> > >>>> endpoint exposed by an AuthenticationServer(FederationServer?)
>> > instance
>> > >>> via
>> > >>>> REST calls to:
>> > >>>>>   a. federate - passing a SAML assertion as an Authorization:
>> Bearer
>> > >>>> token returning a hadoop id_token
>> > >>>>>      - can copy and paste from commandline or use cat to 
>> > >>>>> include
>> > >>>> previously persisted token through "--Header Authorization: 
>> > >>>> Bearer
>> > 'cat
>> > >>>> ~/.hadoop_tokens/.id_token'"
>> > >>>>> 3. use hadoop CLI to invoke RPC API on a specific hadoop service
>> > >>>>>   a. RPC client negotiates a TokenAuth method through SASL 
>> > >>>>> layer,
>> > >>>> hadoop id_token is retrieved from ~/.hadoop_tokens/.id_token 
>> > >>>> is
>> passed
>> > >> as
>> > >>>> Authorization: Bearer token to the get-access-token REST 
>> > >>>> endpoint
>> > >> exposed
>> > >>>> by TokenGrantingService returning a hadoop access token
>> > >>>>>   b. RPC server side validates the presented hadoop access 
>> > >>>>> token
>> and
>> > >>>> continues to serve request
>> > >>>>>   c. Successfully invoke a hadoop service RPC API
>> > >>>>>
>> > >>>>> REQUIRED COMPONENTS for CLI USECASES - (beyond those required 
>> > >>>>> for
>> > >>> REST):
>> > >>>>> COMP-9. TokenAuth Method negotiation, etc COMP-10. Client 
>> > >>>>> side implementation to leverage REST endpoint for
>> > >>>> acquiring hadoop access tokens given a hadoop id_token
>> > >>>>> COMP-11. Server side implementation to validate incoming 
>> > >>>>> hadoop
>> > >> access
>> > >>>> tokens
>> > >>>>>
>> > >>>>> UI
>> > >>>>> Various Hadoop services have their own web UI consoles for
>> > >>>> administration and end user interactions. These consoles need 
>> > >>>> to
>> also
>> > >>>> benefit from the pluggability of authentication mechansims to 
>> > >>>> be on
>> > par
>> > >>>> with the access control of the cluster REST and RPC APIs.
>> > >>>>> Web consoles are protected with an 
>> > >>>>> WebSSOAuthenticationHandler
>> which
>> > >>>> will be configured for either authentication or federation.
>> > >>>>>
>> > >>>>> USECASE UI-1 Authentication/LDAP:
>> > >>>>> For the authentication usecase:
>> > >>>>> 1. User's browser requests access to a UI console page 2. 
>> > >>>>> WebSSOAuthenticationHandler intercepts the request and 
>> > >>>>> redirects
>> > >> the
>> > >>>> browser to an IdP web endpoint exposed by the 
>> > >>>> AuthenticationServer
>> > >>> passing
>> > >>>> the requested url as the redirect_url
>> > >>>>> 3. IdP web endpoint presents the user with a FORM over https
>> > >>>>>   a. user provides username/password and submits the FORM 4. 
>> > >>>>> AuthenticationServer authenticates the user with provided
>> > >>> credentials
>> > >>>> against the configured LDAP server and:
>> > >>>>>   a. leverages a servlet filter or other authentication 
>> > >>>>> mechanism
>> > >> for
>> > >>>> the endpoint and authenticates the user with a simple LDAP 
>> > >>>> bind with username and password
>> > >>>>>   b. acquires a hadoop id_token and uses it to acquire the 
>> > >>>>> required
>> > >>>> hadoop access token which is added as a cookie
>> > >>>>>   c. redirects the browser to the original service UI 
>> > >>>>> resource via
>> > >> the
>> > >>>> provided redirect_url
>> > >>>>> 5. WebSSOAuthenticationHandler for the original UI resource
>> > >>> interrogates
>> > >>>> the incoming request again for an authcookie that contains an 
>> > >>>> access
>> > >>> token
>> > >>>> upon finding one:
>> > >>>>>   a. validates the incoming token
>> > >>>>>   b. returns the AuthenticationToken as per 
>> > >>>>> AuthenticationHandler
>> > >>>> contract
>> > >>>>>   c. AuthenticationFilter adds the hadoop auth cookie with 
>> > >>>>> the
>> > >>> expected
>> > >>>> token
>> > >>>>>   d. serves requested resource for valid tokens
>> > >>>>>   e. subsequent requests are handled by the 
>> > >>>>> AuthenticationFilter
>> > >>>> recognition of the hadoop auth cookie
>> > >>>>>
>> > >>>>> USECASE UI-2 Federation/SAML:
>> > >>>>> For the federation usecase:
>> > >>>>> 1. User's browser requests access to a UI console page 2. 
>> > >>>>> WebSSOAuthenticationHandler intercepts the request and 
>> > >>>>> redirects
>> > >> the
>> > >>>> browser to an SP web endpoint exposed by the 
>> > >>>> AuthenticationServer
>> > >> passing
>> > >>>> the requested url as the redirect_url. This endpoint:
>> > >>>>>   a. is dedicated to redirecting to the external IdP passing 
>> > >>>>> the
>> > >>>> required parameters which may include a redirect_url back to 
>> > >>>> itself
>> as
>> > >>> well
>> > >>>> as encoding the original redirect_url so that it can determine 
>> > >>>> it on
>> > >> the
>> > >>>> way back to the client
>> > >>>>> 3. the IdP:
>> > >>>>>   a. challenges the user for credentials and authenticates the user
>> > >>>>>   b. creates appropriate token/cookie and redirects back to 
>> > >>>>> the
>> > >>>> AuthenticationServer endpoint
>> > >>>>> 4. AuthenticationServer endpoint:
>> > >>>>>   a. extracts the expected token/cookie from the incoming 
>> > >>>>> request
>> > >> and
>> > >>>> validates it
>> > >>>>>   b. creates a hadoop id_token
>> > >>>>>   c. acquires a hadoop access token for the id_token
>> > >>>>>   d. creates appropriate cookie and redirects back to the 
>> > >>>>> original
>> > >>>> redirect_url - being the requested resource
>> > >>>>> 5. WebSSOAuthenticationHandler for the original UI resource
>> > >>> interrogates
>> > >>>> the incoming request again for an authcookie that contains an 
>> > >>>> access
>> > >>> token
>> > >>>> upon finding one:
>> > >>>>>   a. validates the incoming token
>> > >>>>>   b. returns the AuthenticationToken as per 
>> > >>>>> AuthenticationHandler
>> > >>>> contrac
>> > >>>>>   c. AuthenticationFilter adds the hadoop auth cookie with 
>> > >>>>> the
>> > >>> expected
>> > >>>> token
>> > >>>>>   d. serves requested resource for valid tokens
>> > >>>>>   e. subsequent requests are handled by the 
>> > >>>>> AuthenticationFilter
>> > >>>> recognition of the hadoop auth cookie
>> > >>>>> REQUIRED COMPONENTS for UI USECASES:
>> > >>>>> COMP-12. WebSSOAuthenticationHandler COMP-13. IdP Web 
>> > >>>>> Endpoint within AuthenticationServer for FORM
>> based
>> > >>>> login
>> > >>>>> COMP-14. SP Web Endpoint within AuthenticationServer for 3rd 
>> > >>>>> party
>> > >>> token
>> > >>>> federation
>> > >>>>>
>> > >>>>>
>> > >>>>>
>> > >>>>> On Wed, Jul 10, 2013 at 1:59 PM, Brian Swan <
>> > >> brian.s...@microsoft.com>
>> > >>>> wrote:
>> > >>>>> Thanks, Larry. That is what I was trying to say, but you've 
>> > >>>>> said it
>> > >>>> better and in more detail. :-) To extract from what you are saying:
>> > "If
>> > >>> we
>> > >>>> were to reframe the immediate scope to the lowest common 
>> > >>>> denominator
>> > of
>> > >>>> what is needed for accepting tokens in authentication plugins 
>> > >>>> then
>> we
>> > >>>> gain... an end-state for the lowest common denominator that 
>> > >>>> enables
>> > >> code
>> > >>>> patches in the near-term is the best of both worlds."
>> > >>>>>
>> > >>>>> -Brian
>> > >>>>>
>> > >>>>> -----Original Message-----
>> > >>>>> From: Larry McCay [mailto:lmc...@hortonworks.com]
>> > >>>>> Sent: Wednesday, July 10, 2013 10:40 AM
>> > >>>>> To: common-dev@hadoop.apache.org
>> > >>>>> Cc: da...@yahoo-inc.com; Kai Zheng; Alejandro Abdelnur
>> > >>>>> Subject: Re: [DISCUSS] Hadoop SSO/Token Server Components
>> > >>>>>
>> > >>>>> It seems to me that we can have the best of both worlds 
>> > >>>>> here...it's
>> > >> all
>> > >>>> about the scoping.
>> > >>>>>
>> > >>>>> If we were to reframe the immediate scope to the lowest 
>> > >>>>> common
>> > >>>> denominator of what is needed for accepting tokens in 
>> > >>>> authentication plugins then we gain:
>> > >>>>>
>> > >>>>> 1. a very manageable scope to define and agree upon 2. a
>> deliverable
>> > >>>> that should be useful in and of itself 3. a foundation for 
>> > >>>> community collaboration that we build on for higher level 
>> > >>>> solutions built on
>> > this
>> > >>>> lowest common denominator and experience as a working 
>> > >>>> community
>> > >>>>>
>> > >>>>> So, to Alejandro's point, perhaps we need to define what 
>> > >>>>> would make
>> > >> #2
>> > >>>> above true - this could serve as the "what" we are building 
>> > >>>> instead
>> of
>> > >>> the
>> > >>>> "how" to build it.
>> > >>>>> Including:
>> > >>>>> a. project structure within 
>> > >>>>> hadoop-common-project/common-security
>> or
>> > >>> the
>> > >>>> like b. the usecases that would need to be enabled to make it 
>> > >>>> a self contained and useful contribution - without higher 
>> > >>>> level solutions
>> c.
>> > >> the
>> > >>>> JIRA/s for contributing patches d. what specific patches will 
>> > >>>> be
>> > needed
>> > >>> to
>> > >>>> accomplished the usecases in #b
>> > >>>>>
>> > >>>>> In other words, an end-state for the lowest common 
>> > >>>>> denominator that
>> > >>>> enables code patches in the near-term is the best of both worlds.
>> > >>>>>
>> > >>>>> I think this may be a good way to bootstrap the collaboration
>> process
>> > >>>> for our emerging security community rather than trying to 
>> > >>>> tackle a
>> > huge
>> > >>>> vision all at once.
>> > >>>>>
>> > >>>>> @Alejandro - if you have something else in mind that would
>> bootstrap
>> > >>>> this process - that would great - please advise.
>> > >>>>>
>> > >>>>> thoughts?
>> > >>>>>
>> > >>>>> On Jul 10, 2013, at 1:06 PM, Brian Swan 
>> > >>>>> <brian.s...@microsoft.com>
>> > >>>> wrote:
>> > >>>>>
>> > >>>>>> Hi Alejandro, all-
>> > >>>>>>
>> > >>>>>> There seems to be agreement on the broad stroke description 
>> > >>>>>> of the
>> > >>>> components needed to achieve pluggable token authentication 
>> > >>>> (I'm
>> sure
>> > >>> I'll
>> > >>>> be corrected if that isn't the case). However, discussion of 
>> > >>>> the
>> > >> details
>> > >>> of
>> > >>>> those components doesn't seem to be moving forward. I think 
>> > >>>> this is
>> > >>> because
>> > >>>> the details are really best understood through code. I also 
>> > >>>> see *a*
>> > >> (i.e.
>> > >>>> one of many possible) token format and pluggable 
>> > >>>> authentication
>> > >>> mechanisms
>> > >>>> within the RPC layer as components that can have immediate 
>> > >>>> benefit
>> to
>> > >>>> Hadoop users AND still allow flexibility in the larger design. 
>> > >>>> So, I
>> > >>> think
>> > >>>> the best way to move the conversation of "what we are aiming for"
>> > >> forward
>> > >>>> is to start looking at code for these components. I am 
>> > >>>> especially interested in moving forward with pluggable 
>> > >>>> authentication
>> mechanisms
>> > >>>> within the RPC layer and would love to see what others have 
>> > >>>> done in
>> > >> this
>> > >>>> area (if anything).
>> > >>>>>>
>> > >>>>>> Thanks.
>> > >>>>>>
>> > >>>>>> -Brian
>> > >>>>>>
>> > >>>>>> -----Original Message-----
>> > >>>>>> From: Alejandro Abdelnur [mailto:t...@cloudera.com]
>> > >>>>>> Sent: Wednesday, July 10, 2013 8:15 AM
>> > >>>>>> To: Larry McCay
>> > >>>>>> Cc: common-dev@hadoop.apache.org; da...@yahoo-inc.com; Kai 
>> > >>>>>> Zheng
>> > >>>>>> Subject: Re: [DISCUSS] Hadoop SSO/Token Server Components
>> > >>>>>>
>> > >>>>>> Larry, all,
>> > >>>>>>
>> > >>>>>> Still is not clear to me what is the end state we are aiming 
>> > >>>>>> for,
>> > >> or
>> > >>>> that we even agree on that.
>> > >>>>>>
>> > >>>>>> IMO, Instead trying to agree what to do, we should first  
>> > >>>>>> agree on
>> > >>> the
>> > >>>> final state, then we see what should be changed to there 
>> > >>>> there, then
>> > we
>> > >>> see
>> > >>>> how we change things to get there.
>> > >>>>>>
>> > >>>>>> The different documents out there focus more on how.
>> > >>>>>>
>> > >>>>>> We not try to say how before we know what.
>> > >>>>>>
>> > >>>>>> Thx.
>> > >>>>>>
>> > >>>>>>
>> > >>>>>>
>> > >>>>>>
>> > >>>>>> On Wed, Jul 10, 2013 at 6:42 AM, Larry McCay <
>> > >> lmc...@hortonworks.com
>> > >>>>
>> > >>>> wrote:
>> > >>>>>>
>> > >>>>>>> All -
>> > >>>>>>>
>> > >>>>>>> After combing through this thread - as well as the summit 
>> > >>>>>>> session summary thread, I think that we have the following 
>> > >>>>>>> two items that
>> > >> we
>> > >>>>>>> can probably move forward with:
>> > >>>>>>>
>> > >>>>>>> 1. TokenAuth method - assuming this means the pluggable 
>> > >>>>>>> authentication mechanisms within the RPC layer (2 votes: 
>> > >>>>>>> Kai and
>> > >>>>>>> Kyle) 2. An actual Hadoop Token format (2 votes: Brian and
>> myself)
>> > >>>>>>>
>> > >>>>>>> I propose that we attack both of these aspects as one. 
>> > >>>>>>> Let's
>> > >> provide
>> > >>>>>>> the structure and interfaces of the pluggable framework for 
>> > >>>>>>> use
>> in
>> > >>>>>>> the RPC layer through leveraging Daryn's pluggability work 
>> > >>>>>>> and
>> POC
>> > >>> it
>> > >>>>>>> with a particular token format (not necessarily the only 
>> > >>>>>>> format
>> > >> ever
>> > >>>>>>> supported - we just need one to start). If there has 
>> > >>>>>>> already been work done in this area by anyone then please 
>> > >>>>>>> speak up and commit
>> > >> to
>> > >>>>>>> providing a patch - so that we don't duplicate effort.
>> > >>>>>>>
>> > >>>>>>> @Daryn - is there a particular Jira or set of Jiras that we 
>> > >>>>>>> can
>> > >> look
>> > >>>>>>> at to discern the pluggability mechanism details? 
>> > >>>>>>> Documentation
>> of
>> > >>> it
>> > >>>>>>> would be great as well.
>> > >>>>>>> @Kai - do you have existing code for the pluggable token 
>> > >>>>>>> authentication mechanism - if not, we can take a stab at
>> > >>> representing
>> > >>>>>>> it with interfaces and/or POC code.
>> > >>>>>>> I can standup and say that we have a token format that we 
>> > >>>>>>> have
>> > >> been
>> > >>>>>>> working with already and can provide a patch that 
>> > >>>>>>> represents it
>> > >> as a
>> > >>>>>>> contribution to test out the pluggable tokenAuth.
>> > >>>>>>>
>> > >>>>>>> These patches will provide progress toward code being the 
>> > >>>>>>> central discussion vehicle. As a community, we can then 
>> > >>>>>>> incrementally
>> > >> build
>> > >>>>>>> on that foundation in order to collaboratively deliver the 
>> > >>>>>>> common
>> > >>>> vision.
>> > >>>>>>>
>> > >>>>>>> In the absence of any other home for posting such patches, 
>> > >>>>>>> let's assume that they will be attached to HADOOP-9392 - or 
>> > >>>>>>> a dedicated subtask for this particular aspect/s - I will 
>> > >>>>>>> leave that detail
>> to
>> > >>>> Kai.
>> > >>>>>>>
>> > >>>>>>> @Alejandro, being the only voice on this thread that isn't 
>> > >>>>>>> represented in the votes above, please feel free to agree 
>> > >>>>>>> or
>> > >>> disagree
>> > >>>> with this direction.
>> > >>>>>>>
>> > >>>>>>> thanks,
>> > >>>>>>>
>> > >>>>>>> --larry
>> > >>>>>>>
>> > >>>>>>> On Jul 5, 2013, at 3:24 PM, Larry McCay 
>> > >>>>>>> <lmc...@hortonworks.com>
>> > >>>> wrote:
>> > >>>>>>>
>> > >>>>>>>> Hi Andy -
>> > >>>>>>>>
>> > >>>>>>>>> Happy Fourth of July to you and yours.
>> > >>>>>>>>
>> > >>>>>>>> Same to you and yours. :-) We had some fun in the sun for 
>> > >>>>>>>> a change - we've had nothing but
>> > >>> rain
>> > >>>>>>>> on
>> > >>>>>>> the east coast lately.
>> > >>>>>>>>
>> > >>>>>>>>> My concern here is there may have been a 
>> > >>>>>>>>> misinterpretation or
>> > >> lack
>> > >>>>>>>>> of consensus on what is meant by "clean slate"
>> > >>>>>>>>
>> > >>>>>>>>
>> > >>>>>>>> Apparently so.
>> > >>>>>>>> On the pre-summit call, I stated that I was interested in 
>> > >>>>>>>> reconciling
>> > >>>>>>> the jiras so that we had one to work from.
>> > >>>>>>>>
>> > >>>>>>>> You recommended that we set them aside for the time being 
>> > >>>>>>>> - with
>> > >>> the
>> > >>>>>>> understanding that work would continue on your side (and 
>> > >>>>>>> our's as
>> > >>>>>>> well) - and approach the community discussion from a clean slate.
>> > >>>>>>>> We seemed to do this at the summit session quite well.
>> > >>>>>>>> It was my understanding that this community discussion 
>> > >>>>>>>> would
>> live
>> > >>>>>>>> beyond
>> > >>>>>>> the summit and continue on this list.
>> > >>>>>>>>
>> > >>>>>>>> While closing the summit session we agreed to follow up on 
>> > >>>>>>>> common-dev
>> > >>>>>>> with first a summary then a discussion of the moving parts.
>> > >>>>>>>>
>> > >>>>>>>> I never expected the previous work to be abandoned and 
>> > >>>>>>>> fully expected it
>> > >>>>>>> to inform the discussion that happened here.
>> > >>>>>>>>
>> > >>>>>>>> If you would like to reframe what clean slate was supposed 
>> > >>>>>>>> to
>> > >> mean
>> > >>>>>>>> or
>> > >>>>>>> describe what it means now - that would be welcome - before 
>> > >>>>>>> I
>> > >> waste
>> > >>>>>>> anymore time trying to facilitate a community discussion 
>> > >>>>>>> that is apparently not wanted.
>> > >>>>>>>>
>> > >>>>>>>>> Nowhere in this
>> > >>>>>>>>> picture are self appointed "master JIRAs" and such, which 
>> > >>>>>>>>> have
>> > >>> been
>> > >>>>>>>>> disappointing to see crop up, we should be 
>> > >>>>>>>>> collaboratively
>> > >> coding
>> > >>>>>>>>> not planting flags.
>> > >>>>>>>>
>> > >>>>>>>> I don't know what you mean by self-appointed master JIRAs.
>> > >>>>>>>> It has certainly not been anyone's intention to disappoint.
>> > >>>>>>>> Any mention of a new JIRA was just to have a clear context 
>> > >>>>>>>> to
>> > >>> gather
>> > >>>>>>>> the
>> > >>>>>>> agreed upon points - previous and/or existing JIRAs would 
>> > >>>>>>> easily
>> > >> be
>> > >>>> linked.
>> > >>>>>>>>
>> > >>>>>>>> Planting flags... I need to go back and read my discussion 
>> > >>>>>>>> point about the
>> > >>>>>>> JIRA and see how this is the impression that was made.
>> > >>>>>>>> That is not how I define success. The only flags that 
>> > >>>>>>>> count is
>> > >>> code.
>> > >>>>>>> What we are lacking is the roadmap on which to put the code.
>> > >>>>>>>>
>> > >>>>>>>>> I read Kai's latest document as something approaching 
>> > >>>>>>>>> today's consensus
>> > >>>>>>> (or
>> > >>>>>>>>> at least a common point of view?) rather than a 
>> > >>>>>>>>> historical
>> > >>> document.
>> > >>>>>>>>> Perhaps he and it can be given equal share of the
>> consideration.
>> > >>>>>>>>
>> > >>>>>>>> I definitely read it as something that has evolved into
>> something
>> > >>>>>>> approaching what we have been talking about so far. There 
>> > >>>>>>> has not however been enough discussion anywhere near the 
>> > >>>>>>> level of detail
>> > >> in
>> > >>>>>>> that document and more details are needed for each 
>> > >>>>>>> component in
>> > >> the
>> > >>>> design.
>> > >>>>>>>> Why the work in that document should not be fed into the
>> > >> community
>> > >>>>>>> discussion as anyone else's would be - I fail to understand.
>> > >>>>>>>>
>> > >>>>>>>> My suggestion continues to be that you should take that 
>> > >>>>>>>> document
>> > >>> and
>> > >>>>>>> speak to the inventory of moving parts as we agreed.
>> > >>>>>>>> As these are agreed upon, we will ensure that the 
>> > >>>>>>>> appropriate subtasks
>> > >>>>>>> are filed against whatever JIRA is to host them - don't 
>> > >>>>>>> really
>> > >> care
>> > >>>>>>> much which it is.
>> > >>>>>>>>
>> > >>>>>>>> I don't really want to continue with two separate JIRAs - 
>> > >>>>>>>> as I stated
>> > >>>>>>> long ago - but until we understand what the pieces are and 
>> > >>>>>>> how
>> > >> they
>> > >>>>>>> relate then they can't be consolidated.
>> > >>>>>>>> Even if 9533 ended up being repurposed as the server 
>> > >>>>>>>> instance of
>> > >>> the
>> > >>>>>>> work - it should be a subtask of a larger one - if that is 
>> > >>>>>>> to be 9392, so be it.
>> > >>>>>>>> We still need to define all the pieces of the larger 
>> > >>>>>>>> picture
>> > >> before
>> > >>>>>>>> that
>> > >>>>>>> can be done.
>> > >>>>>>>>
>> > >>>>>>>> What I thought was the clean slate approach to the 
>> > >>>>>>>> discussion
>> > >>> seemed
>> > >>>>>>>> a
>> > >>>>>>> very reasonable way to make all this happen.
>> > >>>>>>>> If you would like to restate what you intended by it or
>> something
>> > >>>>>>>> else
>> > >>>>>>> equally as reasonable as a way to move forward that would 
>> > >>>>>>> be
>> > >>> awesome.
>> > >>>>>>>>
>> > >>>>>>>> I will be happy to work toward the roadmap with everyone 
>> > >>>>>>>> once it
>> > >> is
>> > >>>>>>> articulated, understood and actionable.
>> > >>>>>>>> In the meantime, I have work to do.
>> > >>>>>>>>
>> > >>>>>>>> thanks,
>> > >>>>>>>>
>> > >>>>>>>> --larry
>> > >>>>>>>>
>> > >>>>>>>> BTW - I meant to quote you in an earlier response and 
>> > >>>>>>>> ended up saying it
>> > >>>>>>> was Aaron instead. Not sure what happened there. :-)
>> > >>>>>>>>
>> > >>>>>>>> On Jul 4, 2013, at 2:40 PM, Andrew Purtell 
>> > >>>>>>>> <apurt...@apache.org
>> >
>> > >>>> wrote:
>> > >>>>>>>>
>> > >>>>>>>>> Hi Larry (and all),
>> > >>>>>>>>>
>> > >>>>>>>>> Happy Fourth of July to you and yours.
>> > >>>>>>>>>
>> > >>>>>>>>> In our shop Kai and Tianyou are already doing the coding, 
>> > >>>>>>>>> so
>> I'd
>> > >>>>>>>>> defer
>> > >>>>>>> to
>> > >>>>>>>>> them on the detailed points.
>> > >>>>>>>>>
>> > >>>>>>>>> My concern here is there may have been a 
>> > >>>>>>>>> misinterpretation or
>> > >> lack
>> > >>>>>>>>> of consensus on what is meant by "clean slate". Hopefully 
>> > >>>>>>>>> that
>> > >> can
>> > >>>>>>>>> be
>> > >>>>>>> quickly
>> > >>>>>>>>> cleared up. Certainly we did not mean ignore all that 
>> > >>>>>>>>> came
>> > >> before.
>> > >>>>>>>>> The
>> > >>>>>>> idea
>> > >>>>>>>>> was to reset discussions to find common ground and new
>> direction
>> > >>>>>>>>> where
>> > >>>>>>> we
>> > >>>>>>>>> are working together, not in conflict, on an agreed upon 
>> > >>>>>>>>> set of design points and tasks. There's been a lot of 
>> > >>>>>>>>> good discussion
>> > >> and
>> > >>>>>>>>> design preceeding that we should figure out how to port over.
>> > >>>>>>>>> Nowhere in this picture are self appointed "master JIRAs" 
>> > >>>>>>>>> and
>> > >>> such,
>> > >>>>>>>>> which have been disappointing to see crop up, we should 
>> > >>>>>>>>> be collaboratively coding not planting flags.
>> > >>>>>>>>>
>> > >>>>>>>>> I read Kai's latest document as something approaching 
>> > >>>>>>>>> today's consensus
>> > >>>>>>> (or
>> > >>>>>>>>> at least a common point of view?) rather than a 
>> > >>>>>>>>> historical
>> > >>> document.
>> > >>>>>>>>> Perhaps he and it can be given equal share of the
>> consideration.
>> > >>>>>>>>>
>> > >>>>>>>>>
>> > >>>>>>>>> On Wednesday, July 3, 2013, Larry McCay wrote:
>> > >>>>>>>>>
>> > >>>>>>>>>> Hey Andrew -
>> > >>>>>>>>>>
>> > >>>>>>>>>> I largely agree with that statement.
>> > >>>>>>>>>> My intention was to let the differences be worked out 
>> > >>>>>>>>>> within
>> > >> the
>> > >>>>>>>>>> individual components once they were identified and 
>> > >>>>>>>>>> subtasks
>> > >>>> created.
>> > >>>>>>>>>>
>> > >>>>>>>>>> My reference to HSSO was really referring to a SSO 
>> > >>>>>>>>>> *server*
>> > >> based
>> > >>>>>>> design
>> > >>>>>>>>>> which was not clearly articulated in the earlier documents.
>> > >>>>>>>>>> We aren't trying to compare and contrast one design over
>> > >> another
>> > >>>>>>> anymore.
>> > >>>>>>>>>>
>> > >>>>>>>>>> Let's move this collaboration along as we've mapped out 
>> > >>>>>>>>>> and
>> the
>> > >>>>>>>>>> differences in the details will reveal themselves and be
>> > >>> addressed
>> > >>>>>>> within
>> > >>>>>>>>>> their components.
>> > >>>>>>>>>>
>> > >>>>>>>>>> I've actually been looking forward to you weighing in on 
>> > >>>>>>>>>> the actual discussion points in this thread.
>> > >>>>>>>>>> Could you do that?
>> > >>>>>>>>>>
>> > >>>>>>>>>> At this point, I am most interested in your thoughts on 
>> > >>>>>>>>>> a
>> > >> single
>> > >>>>>>>>>> jira
>> > >>>>>>> to
>> > >>>>>>>>>> represent all of this work and whether we should start
>> > >> discussing
>> > >>>>>>>>>> the
>> > >>>>>>> SSO
>> > >>>>>>>>>> Tokens.
>> > >>>>>>>>>> If you think there are discussion points missing from 
>> > >>>>>>>>>> that
>> > >> list,
>> > >>>>>>>>>> feel
>> > >>>>>>> free
>> > >>>>>>>>>> to add to it.
>> > >>>>>>>>>>
>> > >>>>>>>>>> thanks,
>> > >>>>>>>>>>
>> > >>>>>>>>>> --larry
>> > >>>>>>>>>>
>> > >>>>>>>>>> On Jul 3, 2013, at 7:35 PM, Andrew Purtell <
>> > >> apurt...@apache.org>
>> > >>>>>>> wrote:
>> > >>>>>>>>>>
>> > >>>>>>>>>>> Hi Larry,
>> > >>>>>>>>>>>
>> > >>>>>>>>>>> Of course I'll let Kai speak for himself. However, let 
>> > >>>>>>>>>>> me
>> > >> point
>> > >>>>>>>>>>> out
>> > >>>>>>> that,
>> > >>>>>>>>>>> while the differences between the competing JIRAs have 
>> > >>>>>>>>>>> been reduced
>> > >>>>>>> for
>> > >>>>>>>>>>> sure, there were some key differences that didn't just
>> > >>> disappear.
>> > >>>>>>>>>>> Subsequent discussion will make that clear. I also 
>> > >>>>>>>>>>> disagree
>> > >> with
>> > >>>>>>>>>>> your characterization that we have simply endorsed all 
>> > >>>>>>>>>>> of the design
>> > >>>>>>> decisions
>> > >>>>>>>>>>> of the so-called HSSO, this is taking a mile from an 
>> > >>>>>>>>>>> inch. We
>> > >>> are
>> > >>>>>>> here to
>> > >>>>>>>>>>> engage in a collaborative process as peers. I've been
>> > >> encouraged
>> > >>>>>>>>>>> by
>> > >>>>>>> the
>> > >>>>>>>>>>> spirit of the discussions up to this point and hope 
>> > >>>>>>>>>>> that can continue beyond one design summit.
>> > >>>>>>>>>>>
>> > >>>>>>>>>>>
>> > >>>>>>>>>>>
>> > >>>>>>>>>>> On Wed, Jul 3, 2013 at 1:10 PM, Larry McCay 
>> > >>>>>>>>>>> <lmc...@hortonworks.com>
>> > >>>>>>>>>> wrote:
>> > >>>>>>>>>>>
>> > >>>>>>>>>>>> Hi Kai -
>> > >>>>>>>>>>>>
>> > >>>>>>>>>>>> I think that I need to clarify something...
>> > >>>>>>>>>>>>
>> > >>>>>>>>>>>> This is not an update for 9533 but a continuation of 
>> > >>>>>>>>>>>> the discussions
>> > >>>>>>>>>> that
>> > >>>>>>>>>>>> are focused on a fresh look at a SSO for Hadoop.
>> > >>>>>>>>>>>> We've agreed to leave our previous designs behind and
>> > >> therefore
>> > >>>>>>>>>>>> we
>> > >>>>>>>>>> aren't
>> > >>>>>>>>>>>> really seeing it as an HSSO layered on top of TAS 
>> > >>>>>>>>>>>> approach
>> or
>> > >>> an
>> > >>>>>>> HSSO vs
>> > >>>>>>>>>>>> TAS discussion.
>> > >>>>>>>>>>>>
>> > >>>>>>>>>>>> Your latest design revision actually makes it clear 
>> > >>>>>>>>>>>> that you
>> > >>> are
>> > >>>>>>>>>>>> now targeting exactly what was described as HSSO - so
>> > >> comparing
>> > >>>>>>>>>>>> and
>> > >>>>>>>>>> contrasting
>> > >>>>>>>>>>>> is not going to add any value.
>> > >>>>>>>>>>>>
>> > >>>>>>>>>>>> What we need you to do at this point, is to look at 
>> > >>>>>>>>>>>> those high-level components described on this thread 
>> > >>>>>>>>>>>> and comment
>> on
>> > >>>>>>>>>>>> whether we need additional components or any that are 
>> > >>>>>>>>>>>> listed that don't seem
>> > >>>>>>> necessary
>> > >>>>>>>>>> to
>> > >>>>>>>>>>>> you and why.
>> > >>>>>>>>>>>> In other words, we need to define and agree on the 
>> > >>>>>>>>>>>> work that
>> > >>> has
>> > >>>>>>>>>>>> to
>> > >>>>>>> be
>> > >>>>>>>>>>>> done.
>> > >>>>>>>>>>>>
>> > >>>>>>>>>>>> We also need to determine those components that need 
>> > >>>>>>>>>>>> to be
>> > >> done
>> > >>>>>>> before
>> > >>>>>>>>>>>> anything else can be started.
>> > >>>>>>>>>>>> I happen to agree with Brian that #4 Hadoop SSO Tokens 
>> > >>>>>>>>>>>> are central to
>> > >>>>>>>>>> all
>> > >>>>>>>>>>>> the other components and should probably be defined 
>> > >>>>>>>>>>>> and
>> POC'd
>> > >>> in
>> > >>>>>>> short
>> > >>>>>>>>>>>> order.
>> > >>>>>>>>>>>>
>> > >>>>>>>>>>>> Personally, I think that continuing the separation of 
>> > >>>>>>>>>>>> 9533
>> > >> and
>> > >>>>>>>>>>>> 9392
>> > >>>>>>> will
>> > >>>>>>>>>>>> do this effort a disservice. There doesn't seem to be 
>> > >>>>>>>>>>>> enough
>> > >>>>>>> differences
>> > >>>>>>>>>>>> between the two to justify separate jiras anymore. It 
>> > >>>>>>>>>>>> may be best to
>> > >>>>>>>>>> file a
>> > >>>>>>>>>>>> new one that reflects a single vision without the 
>> > >>>>>>>>>>>> extra
>> cruft
>> > >>>>>>>>>>>> that
>> > >>>>>>> has
>> > >>>>>>>>>>>> built up in either of the existing ones. We would 
>> > >>>>>>>>>>>> certainly reference
>> > >>>>>>>>>> the
>> > >>>>>>>>>>>> existing ones within the new one. This approach would 
>> > >>>>>>>>>>>> align
>> > >>> with
>> > >>>>>>>>>>>> the
>> > >>>>>>>>>> spirit
>> > >>>>>>>>>>>> of the discussions up to this point.
>> > >>>>>>>>>>>>
>> > >>>>>>>>>>>> I am prepared to start a discussion around the shape 
>> > >>>>>>>>>>>> of the
>> > >> two
>> > >>>>>>> Hadoop
>> > >>>>>>>>>> SSO
>> > >>>>>>>>>>>> tokens: identity and access. If this is what others 
>> > >>>>>>>>>>>> feel the next
>> > >>>>>>> topic
>> > >>>>>>>>>>>> should be.
>> > >>>>>>>>>>>> If we can identify a jira home for it, we can do it 
>> > >>>>>>>>>>>> there -
>> > >>>>>>> otherwise we
>> > >>>>>>>>>>>> can create another DISCUSS thread for it.
>> > >>>>>>>>>>>>
>> > >>>>>>>>>>>> thanks,
>> > >>>>>>>>>>>>
>> > >>>>>>>>>>>> --larry
>> > >>>>>>>>>>>>
>> > >>>>>>>>>>>>
>> > >>>>>>>>>>>> On Jul 3, 2013, at 2:39 PM, "Zheng, Kai" <
>> > >> kai.zh...@intel.com>
>> > >>>>>>> wrote:
>> > >>>>>>>>>>>>
>> > >>>>>>>>>>>>> Hi Larry,
>> > >>>>>>>>>>>>>
>> > >>>>>>>>>>>>> Thanks for the update. Good to see that with this 
>> > >>>>>>>>>>>>> update we
>> > >>> are
>> > >>>>>>>>>>>>> now
>> > >>>>>>>>>>>> aligned on most points.
>> > >>>>>>>>>>>>>
>> > >>>>>>>>>>>>> I have also updated our TokenAuth design in HADOOP-9392.
>> The
>> > >>>>>>>>>>>>> new
>> > >>>>>>>>>>>> revision incorporates feedback and suggestions in 
>> > >>>>>>>>>>>> related discussion
>> > >>>>>>>>>> with
>> > >>>>>>>>>>>> the community, particularly from Microsoft and others
>> > >> attending
>> > >>>>>>>>>>>> the Security design lounge session at the Hadoop summit.
>> > >>> Summary
>> > >>>>>>>>>>>> of the
>> > >>>>>>>>>> changes:
>> > >>>>>>>>>>>>> 1.    Revised the approach to now use two tokens, Identity
>> > >>> Token
>> > >>>>>>> plus
>> > >>>>>>>>>>>> Access Token, particularly considering our 
>> > >>>>>>>>>>>> authorization framework
>> > >>>>>>> and
>> > >>>>>>>>>>>> compatibility with HSSO;
>> > >>>>>>>>>>>>> 2.    Introduced Authorization Server (AS) from our
>> > >>>> authorization
>> > >>>>>>>>>>>> framework into the flow that issues access tokens for
>> clients
>> > >>>>>>>>>>>> with
>> > >>>>>>>>>> identity
>> > >>>>>>>>>>>> tokens to access services;
>> > >>>>>>>>>>>>> 3.    Refined proxy access token and the
>> proxy/impersonation
>> > >>>> flow;
>> > >>>>>>>>>>>>> 4.    Refined the browser web SSO flow regarding access to
>> > >>>> Hadoop
>> > >>>>>>> web
>> > >>>>>>>>>>>> services;
>> > >>>>>>>>>>>>> 5.    Added Hadoop RPC access flow regard
>> > >>>>>>>>>
>> > >>>>>>>>>
>> > >>>>>>>>>
>> > >>>>>>>>> --
>> > >>>>>>>>> Best regards,
>> > >>>>>>>>>
>> > >>>>>>>>> - Andy
>> > >>>>>>>>>
>> > >>>>>>>>> Problems worthy of attack prove their worth by hitting 
>> > >>>>>>>>> back. -
>> > >>> Piet
>> > >>>>>>>>> Hein (via Tom White)
>> > >>>>>>>>
>> > >>>>>>>
>> > >>>>>>>
>> > >>>>>>
>> > >>>>>>
>> > >>>>>> --
>> > >>>>>> Alejandro
>> > >>>>>>
>> > >>>>>
>> > >>>>>
>> > >>>>>
>> > >>>>>
>> > >>>>>
>> > >>>>> <Iteration1PluggableUserAuthenticationandFederation.pdf>
>> > >>>>
>> > >>>>
>> > >>>
>> > >>>
>> > >>> --
>> > >>> Alejandro
>> > >>>
>> > >>
>> > >
>> > >
>> > >
>> > > --
>> > > Alejandro
>> >
>> >
>>
>
> --
> CONFIDENTIALITY NOTICE
> NOTICE: This message is intended for the use of the individual or 
> entity to which it is addressed and may contain information that is 
> confidential, privileged and exempt from disclosure under applicable 
> law. If the reader of this message is not the intended recipient, you 
> are hereby notified that any printing, copying, dissemination, 
> distribution, disclosure or forwarding of this communication is 
> strictly prohibited. If you have received this communication in error, 
> please contact the sender immediately and delete it from your system. Thank 
> You.

Reply via email to