Add Basic Signin with IAM auth client

What does this MR do?

Implements OAuth client flow in the IAM Service to support GitLab acting as an OAuth/OIDC client when users authenticate with external providers (e.g., "Login with Google", "Login with GitHub").

This MR adds the basic sign-in functionality where the IAM service handles the OAuth flow with external providers and forwards user information to the appropriate cell.

How to test

  1. Enable the feature flag iam_svc_login
  2. Navigate to the GitLab sign-in page
  3. Click "Login with [Provider]" (e.g., Google, GitHub)
  4. Verify the request is routed to the IAM service
  5. Complete authentication with the external provider
  6. Verify the IAM service receives the authorization code and exchanges it for tokens
  7. Confirm user profile information is retrieved from the external provider
  8. Verify the IAM service looks up the user's cell via Topology Service
  9. Check that the cell is set in a cookie and the request is forwarded to the OAuth callback endpoint

Part of #585232

Edited by Aboobacker MK

Merge request reports

Loading