Skip to content

Conversation

@lgarceau768
Copy link

@lgarceau768 lgarceau768 commented Nov 3, 2025

Pull Request Checklist

Note to first-time contributors: Please open a discussion post in Discussions and describe your changes before submitting a pull request.

Before submitting, make sure you've checked the following:

  • Target branch: Please verify that the pull request targets the dev branch.
  • Description: Provide a concise description of the changes made in this pull request.
  • Changelog: Ensure a changelog entry following the format of Keep a Changelog is added at the bottom of the PR description.
  • Documentation: Have you updated relevant documentation Open WebUI Docs, or other documentation sources?
  • Dependencies: Are there any new dependencies? Have you updated the dependency versions in the documentation?
  • Testing: Have you written and run sufficient tests to validate the changes?
  • Code review: Have you performed a self-review of your code, addressing any coding standard issues and ensuring adherence to the project's coding standards?
  • Prefix: To clearly categorize this pull request, prefix the pull request title using one of the following:
    • BREAKING CHANGE: Significant changes that may affect compatibility
    • build: Changes that affect the build system or external dependencies
    • ci: Changes to our continuous integration processes or workflows
    • chore: Refactor, cleanup, or other non-functional code changes
    • docs: Documentation update or addition
    • feat: Introduces a new feature or enhancement to the codebase
    • fix: Bug fix or error correction
    • i18n: Internationalization or localization changes
    • perf: Performance improvement
    • refactor: Code restructuring for better maintainability, readability, or scalability
    • style: Changes that do not affect the meaning of the code (white space, formatting, missing semi-colons, etc.)
    • test: Adding missing tests or correcting existing tests
    • WIP: Work in progress, a temporary label for incomplete or ongoing work

Changelog Entry

Description

  • Added Google Cloud Identity API support for OAuth role assignment since Google SSO does not include group or role claims in JWT tokens like other OAuth2 identity providers

Added

  • Google Cloud Identity API integration to fetch user groups for role assignment
  • Support for https://www.googleapis.com/auth/cloud-identity.groups.readonly scope in Google OAuth
  • Automatic fallback to traditional claims-based authentication for non-Google providers
  • Enhanced role assignment logic that works with Google Cloud Identity API groups
  • Comprehensive test coverage for Google Cloud Identity API integration
  • Documentation for configuring Google OAuth with Cloud Identity groups

Changed

  • Modified OAuth role determination to fetch groups via Google Cloud Identity API when Google OAuth is used with the appropriate scope
  • Updated group management to support both traditional OAuth claims and Google Cloud Identity API groups

Fixed

  • Enabled proper role assignment for Google SSO users by fetching groups via API instead of relying on missing JWT claims

Security

  • Added proper URL encoding for Google Cloud Identity API queries
  • Implemented secure token handling for Google Cloud Identity API requests

Additional Information

This enhancement enables proper role assignment for Google SSO by addressing the fact that Google OAuth does not include group or role claims in JWT tokens like other OAuth2 identity providers.

Why this is needed:

  • Google OAuth JWT tokens do not contain group membership information in claims
    -Other OAuth providers (like Azure AD, Auth0, etc.) typically include group/role information in JWT claims
  • Without group information, Google SSO users cannot be properly assigned roles based on their group membership

How it works:

  • When Google OAuth is configured with cloud-identity.groups.readonly scope, the system fetches user groups via Google Cloud Identity API
  • For other OAuth providers, the system continues to use traditional claims-based role assignment
  • Graceful fallback ensures compatibility with existing configurations

#Configuration Requirements:

Contributor License Agreement

By submitting this pull request, I confirm that I have read and fully agree to the Contributor License Agreement (CLA), and I am providing my contributions under its terms.

tjbck and others added 30 commits September 29, 2025 00:58
i18n: improve Chinese (zhCN & zh-TW) translation
fix: handle non‑UTF8 chars in third‑party responses without error
i18n: German translation of new strings
fix: log web search queries only with level 'debug' instead of 'info'
tjbck and others added 27 commits October 14, 2025 18:32
fix: allow toast notifications to be closed when a modal is open
enh: lower JWT expiration default value and add warn message
i18n: Update Czech translation
i18n: update Turkish translations for various UI elements
Improve the translations to match more with the contexts.
Improved the Thai translations to match more with the contexts they're being used for.
feat: add mineru as document parser backend with support of both local and managed api
fix: reword misleading knowledge base warning in documents settings
* Update CHANGELOG.md

* Update CHANGELOG.md

* Update CHANGELOG.md

* Update CHANGELOG.md

* Update CHANGELOG.md

* Update CHANGELOG for version 0.6.34

Updated changelog for version 0.6.34 with new features, fixes, and improvements.

* Woops
@lgarceau768 lgarceau768 closed this Nov 5, 2025
lgarceau768 added a commit that referenced this pull request Nov 27, 2025
Google Groups Functionaliity on top of version 0.6.34
lgarceau768 added a commit that referenced this pull request Jan 12, 2026
commit 677f4b5f95544b75ca17afa3539f4260c311455d
Merge: 308d2cb 2b26355
Author: Luke Garceau <[email protected]>
Date:   Mon Jan 12 13:18:34 2026 -0500

    merge conflicts

commit 308d2cb
Author: Luke Garceau <[email protected]>
Date:   Wed Dec 31 13:51:48 2025 -0500

    Revert "Merge branch 'dev' of github.com:open-webui/open-webui into feat/google-oauth-groups-lgarceau"

    This reverts commit 6dd6e0c, reversing
    changes made to dd1e2b5.

commit 6dd6e0c
Merge: dd1e2b5 fe3047d
Author: Luke Garceau <[email protected]>
Date:   Mon Dec 29 17:14:48 2025 -0500

    Merge branch 'dev' of github.com:open-webui/open-webui into feat/google-oauth-groups-lgarceau

commit dd1e2b5
Merge: 943e4ca a727153
Author: Luke Garceau <[email protected]>
Date:   Mon Dec 29 16:05:54 2025 -0500

    Merge branch 'main' of personal:flexion/open-webui into feat/google-oauth-groups-lgarceau

commit 943e4ca
Author: Luke Garceau <[email protected]>
Date:   Mon Dec 29 16:05:52 2025 -0500

    resolve oauth issues

commit 4b34300
Merge: 6f1486f 9eb4484
Author: Luke Garceau <[email protected]>
Date:   Tue Dec 9 16:51:53 2025 -0500

    init implementation commit

commit 9eb4484
Merge: e0d5de1 d277696
Author: Luke Garceau <[email protected]>
Date:   Thu Nov 27 15:46:49 2025 -0500

    Merge pull request #2 from lgarceau768/main

    Version 0.6.34 Updates

commit d277696
Merge: 6c86ff7 e0d5de1
Author: Luke Garceau <[email protected]>
Date:   Sat Nov 22 11:24:58 2025 -0500

    Merge branch 'main' into main

commit 6c86ff7
Merge: 7a83e7d 6dbc01c
Author: Luke Garceau <[email protected]>
Date:   Wed Nov 5 12:05:23 2025 -0500

    Merge pull request #1 from lgarceau768/feat/google-groups

    Google Groups Functionaliity on top of version 0.6.34

commit 6dbc01c
Merge: 7a83e7d cc6a1a7
Author: Luke Garceau <[email protected]>
Date:   Wed Nov 5 10:44:30 2025 -0500

    - resolve merge conflicts

commit cc6a1a7
Author: Brice Ruth <[email protected]>
Date:   Mon Jun 16 18:18:52 2025 -0500

    update tests for adjusted query string & payload

commit 64ce040
Author: Brice Ruth <[email protected]>
Date:   Mon Jun 16 17:49:42 2025 -0500

    fix google cloud identity query string

commit a909fd9
Author: Brice Ruth <[email protected]>
Date:   Mon Jun 16 11:35:47 2025 -0500

    feat: Add Google Cloud Identity API support for OAuth group-based roles

    Enables Google Workspace group-based role assignment by integrating with
    Google Cloud Identity API to fetch user groups in real-time.

    Key improvements:
    - Fetches groups directly from Google API using cloud-identity.groups.readonly scope
    - Enables admin role assignment based on Google group membership
    - Maintains full backward compatibility with existing OAuth configurations
    - Includes comprehensive test suite with proper async mocking
    - Complete documentation with Google Cloud Console setup guide

    Addresses limitation where Google Workspace doesn't include group membership
    claims in OAuth JWT tokens, preventing group-based role assignment.

    🤖 Generated with [Claude Code](https://claude.ai/code)

    Co-Authored-By: Claude <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.