Perhaps returning to the elimination of the service component within the resource path makes sense after all:
https://localhost:8443/gateway/knoxsso/api/v1/websso Out of the box the knoxsso.xml topology can be configured for SAML as a starting point but can be changed to whatever makes sense. Knoxsso will still make sense as a topology name and websso will still represent cookie based tokens for browser-like clients. If additional authentication configurations are needed then we can add more specific topology names - such as: https://localhost:8443/gateway/oauth/api/v1/websso I guess this thread just came back around full circle and my original thoughts are making sense again. :) We should however agree or not as to whether we want to break the existing pattern for all services to have topology and service components represented in their URLs. I will propose that we allow this - thoughts? On Tue, Nov 3, 2015 at 9:49 AM, larry mccay <larry.mc...@gmail.com> wrote: > Agreed. > > I'm not sure that you would name your topology that way if you intended to > use it for REST though. > We could certainly create credential collectors in the client shell that > interacted with a HTTP basic auth fronted websso service and manages the > returned cookies in a protected file. Like a command line cookie-jar. I > actually think this is a pretty good idea though you could do the same with > JSON instead. > > https://localhost:8443/gateway/auth-rest/knoxsso/api/v1/ > <https://localhost:8443/gateway/auth-rest/knoxsso/api/v1/websso>cookie > might be more accurate but it doesn't illustrate the redirect implications > of websso flows. Maybe that isn't as intuitive to everyone with websso > either but that is the intent. > > The following may be more intuitive: > https://localhost:8443/gateway/auth-basic/knoxsso/api/v1/websso > <https://localhost:8443/gateway/auth-rest/knoxsso/api/v1/websso> > https://localhost:8443/gateway/auth-saml/knoxsso/api/v1/websso > <https://localhost:8443/gateway/auth-rest/knoxsso/api/v1/websso> > > Now, auth-basic implies HTTP basic auth but websso implies redirect websso > flows. :/ > The intent is to use auth-basic to get a cookie to be managed by browsers > (or browser-like clients) for WebSSO. > > If we were to provide an sso topology out of the box what would we want to > call it then? > > I would think that the most common real SSO mechanism for WebSSO in an > enterprise would be SAML. > We could call it auth-saml out of the box but as soon as they want to > change it to use HTTP basic against LDAP or something else the name is no > longer representative. > > Which is how I got to auth-web... > > May be over thinking the whole thing but naming is hard for these sorts of > things. > > > On Tue, Nov 3, 2015 at 9:21 AM, Kevin Minder <kevin.min...@hortonworks.com > > wrote: > >> Given your comment >> <quote> >> I assumed that the resource name would differentiate between the types of >> tokens returned. >> So, "websso" for WebSSO flows for browsers/cookies and maybe "token" or >> something for REST clients - like Oauth. >> </quote> >> If you continue down the “websso” as resource path you might end up with >> the URL below which makes little sense to me at this point. >> https://localhost:8443/gateway/auth-rest/knoxsso/api/v1/websso >> This says to me that topology deployed specifically for REST API >> authentication federation has a service with a resource for WebSSO flows >> for browsers/cookies. Right? >> >> >> On 11/3/15, 7:36 AM, "larry mccay" <lmc...@apache.org> wrote: >> >> >inline... >> > >> > >> >On Mon, Nov 2, 2015 at 11:31 PM, Kevin Minder < >> kevin.min...@hortonworks.com> >> >wrote: >> > >> >> These don’t seem terrible to me but I question if they are actually >> what >> >> you meant. >> >> https://localhost:8443/gateway/sandbox/auth-ui/knoxsso/api/v1/websso >> >> https://localhost:8443/gateway/sandbox/auth-rest/knoxsso/api/v1/websso >> >> >> >> Can you clarify in terms of {gateway}/{topology}/{service}/{resource} >> how >> >> that is built? >> >> >> >> Just for background, I usually think about the URLs getting built like >> >> this. For example, is it like this? >> >> >> >> >> >> gateway=https://localhost:8443/gateway >> >> topology=sandbox >> >> service=auth-ui >> >> resource=knoxsso/api/v1/websso >> >> >> >> Or are you really thinking this where auth-ui and auth-rest are the >> >> service components? >> >> https://localhost:8443/gateway/auth-ui/knoxsso/api/v1/websso >> >> https://localhost:8443/gateway/auth-rest/knoxsso/api/v1/websso >> > >> > >> >Oh, you're right - sandbox shouldn't have been in there. >> >https://localhost:8443/gateway/auth-ui/knoxsso/api/v1/websso >> > >> >Topology name represents something about the SSO mechanism - either the >> >target users "ui" or maybe the auth method "basic" vs "saml", etc. >> >Knoxsso would be the service component. >> >Resource would be api/v1/websso - though whether the service is part of >> the >> >resource path can be debated. >> > >> > >> >> >> >> And if the resource really does token exchange why not >> >> https://localhost:8443/gateway/auth-ui/knoxsso/api/v1/token-exchange >> >> https://localhost:8443/gateway/auth-rest/knoxsso/api/v1/token-exchange >> >> >> >> >> >Interesting question... >> >I assumed that the resource name would differentiate between the types of >> >tokens returned. >> >So, "websso" for WebSSO flows for browsers/cookies and maybe "token" or >> >something for REST clients - like OAuth. >> >One will set a cookie as a result the other return JSON with a token to >> use >> >as bearer token and metadata about the token. >> > >> > >> >> >> >> >> >> >> >> >> >> >> >> On 11/2/15, 1:34 PM, "larry mccay" <lmc...@apache.org> wrote: >> >> >> >> >All - >> >> > >> >> >I am considering the option of removing the topology "service" name >> from >> >> >the API resource path. >> >> > >> >> >The current implementation is aligned with all existing patterns for >> >> >service integrations but seems to pose a more difficult time in >> naming the >> >> >topology than it should. >> >> > >> >> >Considering that the current service name is knoxsso that is then >> further >> >> >qualified with websso - we have a topology naming issue. >> >> > >> >> >We have considered things like idp.xml which would result in: >> >> > >> >> >https://localhost:8443/gateway/sandbox/idp/knoxsso/api/v1/websso >> >> > >> >> >This sort of works but idp isn't really accurate in that this is a >> >> >federation provider that facilitates token exchange with various SSO >> >> >provider integrations. >> >> > >> >> >Moreover, the service name seems to call out the behavior and if it >> truly >> >> >is facilitating *the* single sign on integration for an enterprise >> then it >> >> >is redundant. >> >> > >> >> >So, the initial thought was to eliminate the use of a specific service >> >> name >> >> >within the resource path and just name the topology appropriately. >> More >> >> >like: >> >> > >> >> >https://localhost:8443/gateway/sandbox/knoxsso/api/v1/websso >> >> > >> >> >If there is only one then this makes a lot of sense. >> >> > >> >> >However, if we need to provide another version of SSO for say REST >> APIs >> >> >where cookies may not be used then we will need to either accommodate >> both >> >> >in the same knoxsso.xml topology or deploy another with different >> >> >federation capabilities. For instance: >> >> > >> >> >https://localhost:8443/gateway/sandbox/knoxsso-rest/api/v1/websso >> >> > >> >> >This seems to hold together but also strikes me odd that both of these >> >> "top >> >> >level services" (meaning no service name?) have the same API. >> >> > >> >> >I guess the question is whether we want to be strict about resource >> naming >> >> >here? It seems that simplifying it this way might make the actual >> resource >> >> >- which is a token exchange mechanism - be ambiguous which feels >> wrong. >> >> > >> >> >If this is wrong then we go back to having the topology naming to >> wrestle >> >> >with. Perhaps the following isn't so bad: >> >> > >> >> >https://localhost:8443/gateway/sandbox/auth-ui/knoxsso/api/v1/websso >> >> > >> https://localhost:8443/gateway/sandbox/auth-rest/knoxsso/api/v1/websso >> >> > >> >> >Thoughts? >> >> > >> >> >thanks, >> >> > >> >> >--larry >> >> >> > >