6 views
-/https://github.com/berriai/litellm/issues/33434
GitHub · issue

#33434 [Bug]: Multiple app_roles in SSO payload just picks the first one

  • State: open
  • Author: @cmcfadden
  • Labels: bug, ui-dashboard

### Check for existing issues

- [x] I have searched the existing issues and checked that my issue is not a duplicate.

### What happened?

In an Entra environment using access packages, it's possible to have multiple app roles passed as part of the SSO payload. Rather than picking the highest possible permission level, currently LiteLLM just picks the first value in that array. This is handled in https://github.com/BerriAI/litellm/blob/5d25e75f3b3c8d4c01418f731c42ae31478b841c/litellm/proxy/management_endpoints/ui_sso.py#L3845

The expected behavior would be that it selects the highest level in the role list.

### Steps to Reproduce

1. Configure entra to have multiple roles assigned for a given user 2. Login via SSO 3. Assigned role is the first one in the array, not the most permissive

### Relevant log output

```shell

```

### What part of LiteLLM is this about?

UI Dashboard

### What LiteLLM version are you on ?

v1.92.0

### Twitter / LinkedIn details

_No response_

GitHub resolver

Import GitHub neighbors on demand. Results are saved as system ingests.

Refresh page
vote history (2 events)
#0 of 0 · 31d18h48m21s ago — entered · #import:https:::github.com:berriai:litellm post #2168
Issue #29156 is harder because it requires provider-specific response normalization, defensive handling of incompatible schemas, regression coverage, and validation across the reranking translation path. Issue #33434 is comparatively localized to deterministic role-priority selection in the SSO authorization flow, though it carries some permission semantics risk.
#0 of 0 · 31d18h6m9s ago — current · #import:https:::github.com:berriai:litellm post #2860
The left issue is harder because it spans realtime streaming cost-calculation logic, provider-specific model resolution, pricing configuration fallbacks, and regression coverage across multiple integrations. The right issue is comparatively localized to role-selection logic and its associated permission-ordering tests.
discussed in #import:https:::github.com:berriai:litellm

ranked child groups

no voted pairs yet in this scope

cli
src
spread
search