OpenLiberty / open-liberty

Open Liberty is a highly composable, fast to start, dynamic application server runtime environment
https://openliberty.io
Eclipse Public License 2.0
1.15k stars 592 forks source link

Fallback Authentication with SPNEGO does not work #26071

Open shubjit opened 1 year ago

shubjit commented 1 year ago

Describe the bug
When Liberty configured with SPNEGO, Fallback Authentication (or Fail Over to Application Authentication) when Liberty application is accessed from Non Domain systems does not work. Following Error is shown on the browser CWWKS4306E: SPNEGO authentication is not supported on this client browser..

No specific logs recorded.

Steps to Reproduce

As a workaround If we enable an authfilter to skip non domain machines for example for Mac OS, it works, <userAgent id="spnegoWebAgent" agent="Mozilla|Opera" matchType="contains"/>

Expected behavior
Failover to App Authentication with SPNEGO config should work. It works on Traditional WebSphere Application Server.

Diagnostic information:

Additional context
None

wrodrig commented 1 year ago

Hi @shubjit

Thanks for reaching out. Our team has been working to recreate the problem that you reported. Unfortunately we are not seeing fallback on macOS that are not domain joined with either Open Liberty or Traditional WebSphere. Based on the traces we've collected, the browser doesn't seem to be handling the request correctly. This suggest that what you are seeing is a browser problem rather than a Open Liberty or Traditional WebSphere issue.

Since you mentioned that you are seeing this working with Traditional WebSphere, we were wondering if you could provide us the browser name and version that you are using. This will help us to see if there has been some changes.

You are also welcome to also open a Support Case with our team and reference this issue.

We look forward to continue supporting you.

shubjit commented 1 year ago

Thank you for your response @wrodrig

While we dont have a working Traditional WebSphere setup, we tested further on the existing Liberty setup. You are right, it seems specific to browser and OS. Here was our test results, seems like fallback auth fails on Firefox browser on Windows and All browsers on MacOS.

On Non-Domain joined MacOS

On Windows Non-Domain joined System:

On Windows Domain Joined System:

For now we can filter out MacOS Client access with this filter, but non domain joined Windows client have no workaround. <userAgent id="spnegoWebAgent" agent="Mac OS" matchType="notContain"/ >

wrodrig commented 1 year ago

Hi,

Thanks for your response, I agree that targeting Windows clients that are not domain joined will be challenging. One suggestion that I can give you is that if your domain joined machine share a similar ip address, you can consider using the remoteAddress filter option. But this doesn't necessarily work on every system.