Skip to content

Implement OmniAuth provider support for Organization Login in Protocells

Problem Statement

Without any changes, when users migrated to Protocells, click on OmniAuth providers (Google, GitHub, etc.) on the global GitLab.com sign-in page, they will encounter 422 errors because their accounts no longer exist in the local database - they've been moved to their organization's cell.

Proposed Solution

Prior discussion can be found here. Implement graceful handling of OmniAuth callbacks for Protocell users by extending the existing Topology Service classification logic to work with OmniAuth flows.

User Experience Flow Proposal

User clicks Google on gitlab.com/users/sign_in

OmniAuth provider authentication completes

Callback to GitLab - user not found in local DB

Query Topology Service with email from OAuth response

Redirect to gitlab.com/o/acme-corp/users/sign_in with:
- Pre-filled email from OAuth provider
- Organization branding/context
- Error message: "Please sign in with your password or organization SSO"
- Relevant auth options for that organization

This implementation provides a seamless transition for OmniAuth users moved to Protocells while maintaining backward compatibility and setting the foundation for future organization-specific authentication features.

UX proposal

Edited by Adil Farrukh