[keycloak-dev] questions on Marek/Hynek presentation

Bill Burke bburke at redhat.com
Fri May 19 11:28:31 EDT 2017



On 5/19/17 11:25 AM, Marek Posolda wrote:
> On 19/05/17 16:58, Bill Burke wrote:
>>
>>
>>
>> On 5/19/17 10:57 AM, Marek Posolda wrote:
>>> On 19/05/17 16:19, Bill Burke wrote:
>>>> * Won't the regular case be that the load balancer generates the
>>>> affinity cookie or doesn't have a cookie at all?  HA-Proxy is quite
>>>> popular and they have both options.
>>> Yes, that's also what Sebastien Schuster from community mentioned in 
>>> other thread. That's why I've added StickySessionEncoderProvider as 
>>> SPI, so it's easily possible to disable Keycloak adding route to the 
>>> cookie, or sticky request based on something different than cookie 
>>> (eg. path parameter).
>>>
>>> However having Keycloak itself to choose the route has one big 
>>> performance advantage, that it can route to the node, who is owner 
>>> of the entry in the infinispan distributed cache. This includes also 
>>> support for rebalance (owner may change when new node joins/leaves 
>>> cluster, then you change route automatically). This is what Wildfly 
>>> is doing for Http sessions too.
>>>
>>> We discussed the integration with KeyAffinityService [1], which 
>>> helps with usecase when loadbalancer generates route to the cookie. 
>>> It ensures that generated session ID will be local to current node. 
>>> Hence loadbalancer can use request node as the route and session 
>>> will be local to it. But this doesn't handle rebalance, so IMO 
>>> preferred option is still to let Keycloak to append route.
>>>
>>> There is also infinispan grouping API I want to look at.
>>>
>>> [1] 
>>> http://infinispan.org/docs/stable/user_guide/user_guide.html#KeyAffinityService
>>>> * @ 18:25 in bluejeans session, The "You are already logged in" screen.
>>>> What happens when the use clicks "proceed"?  Does the SAML or OIDC
>>>> request continue as normal? Or are you calculating the URI on the
>>>> application to redirect to, if so, why?
>>> No, this is just link to client base URI, and then new flow can be 
>>> started from the application. ATM authenticationSession may be 
>>> already removed as user logged already in different browser tab etc, 
>>> so there is no flow to continue with.
>>>
>>> Currently there is just userSession available and the client 
>>> application used for "Back to application" is the last authenticated 
>>> client in userSession. I am going to improve it and use "client_id" 
>>> parameter in requests, so in case of expired session, already 
>>> authentication session etc, you would always know the client from 
>>> the "client_id" parameter. Details in the other ML thread "Provide a 
>>> Link to go Back to The Application on a Timeout" .
>>>
>>
>> Why do you need this page?  Why can't you just proceed with the 
>> OIDC/SAML protocol?
> You mean redirect automatically to the client, which will start new 
> OIDC/SAML flow and then authenticate you automatically due to SSO?
>
> Yes, in cases like our admin console, it will be better behaviour then 
> showing "You are already logged in" . But that's just because client 
> base URI, (or client redirect URI) are secured URLs and automatically 
> redirects to Keycloak and starts the flow.
>
> But in many applications, this is not the case. For example, you have 
> single page JS application on "http://host/js-app", which is itself 
> not secured URL. So after confirm the expired username/password form, 
> you would redirect to the "http://host/js-app", but you won't be 
> authenticated there. This looks like quite confusing behaviour for the 
> user IMO.
>
> Showing "You are already logged in" looks like good compromise. In 
> many cases it is just additional splash screen, but at least it don't 
> confuse users in case that client redirect URI are not secured URLs.
>
Not following.  Maybe i need to review the presentation again as maybe 
I'm confused when the "already logged in" screen is shown.

Bill


More information about the keycloak-dev mailing list