Login Redirection Issue for Users in Multiple Microsoft Groups Due to Nonce Mismatch in Dex Integration
Closed this issue · 3 comments
What happened?
When certain users attempt to log in to Kubermatic, they are redirected back to the dashboard page without successfully logging in. This issue appears to affect users who are members of multiple groups in Microsoft. The setup uses Dex integrated with Microsoft as the authentication connector.
Upon investigation, we observed that the nonce cookie value differs between the one sent from the dashboard and the value present in the ID token, which may be causing authentication failures for these users.
Expected behavior
Affected users should be successfully logged into Kubermatic without being redirected back to the dashboard, with consistent nonce values between the dashboard and the ID token.
How to reproduce the issue?
1. Set up Dex with Microsoft as an authentication connector in Kubermatic.
2. Include users who are members of multiple Microsoft groups.
3. Attempt to log in with these users and observe if they are redirected back to the dashboard instead of being logged in.
4. Check the nonce cookie values for discrepancies between the dashboard request and the ID token.
How is your environment configured?
- KKP version: v2.26.0
- Shared or separate master/seed clusters?: eparate master/seed
Provide your KKP manifest here (if applicable)
# paste manifest here
What cloud provider are you running on?
Vsphere
What operating system are you running in your user cluster?
Ubuntu 20.04
Additional information
The Dex Helm values configuration may be relevant to diagnosing the issue. Below is the relevant configuration:
dex:
ingress:
hosts:
- host: "kubermatic.test.example.com"
paths:
- path: /dex
pathType: ImplementationSpecific
tls:
- secretName: dex-tls
hosts:
- "kubermatic.test.example.com"
connectors:
- type: microsoft
id: microsoft
name: Microsoft
config:
clientID: $SECRET_clientID
clientSecret: $SECRET_clientSecret
redirectURI: https://kubermatic.test.example.com/dex/callback
tenant: $SECRET_tenant
groups:
- abc
- xyz
/transfer dashboard
I did some initial investigation and it seems the error occurs when ID token length is longer than 4096 because dashboard saves the ID token in cookie and maximum allowed size for cookies is 4096 bytes.
Not planned to be fixed as discussed with the customer and relevant people