Skip to content

fix(auth): Validate tenantId and providerId format - #577

Merged
macastelaz merged 8 commits into
mainfrom
fix-tenant-provider-id-validation
Oct 20, 2026
Merged

macastelaz merged 8 commits into
mainfrom
fix-tenant-provider-id-validation

Conversation

@macastelaz

@macastelaz macastelaz commented Oct 19, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Validates that tenantId and providerId identifiers contain only valid URL path characters before constructing Auth REST API requests:

  • TenantManager / TenantAwareFirebaseAuth / FirebaseUserManager / ProviderConfigManager: Validates tenantId format via TenantManager.ValidateTenantId.
  • ProviderConfigClient / OidcProviderConfigClient / SamlProviderConfigClient: Centralizes and strengthens providerId format validation in ProviderConfigClient.ValidateProviderId.
  • Unit Tests: Adds unit tests for invalid tenantId and providerId formats across TenantManagerTest, TenantAwareFirebaseAuthTest, OidcProviderConfigTest, and SamlProviderConfigTest.

See b/528694160 for more context

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces robust validation for tenant IDs and provider IDs (OIDC and SAML) across the Firebase Admin SDK, ensuring they are not empty, malformed, or containing unescaped characters. It also adds comprehensive unit tests to verify these validation rules. The feedback suggests a minor readability improvement in both OidcProviderConfigClient and SamlProviderConfigClient to directly compare the provider ID string to its prefix rather than comparing their lengths.

Comment thread FirebaseAdmin/FirebaseAdmin/Auth/Providers/OidcProviderConfigClient.cs Outdated
Comment thread FirebaseAdmin/FirebaseAdmin/Auth/Providers/SamlProviderConfigClient.cs Outdated
@macastelaz macastelaz changed the title fix(auth): Validate tenantId and providerId against URL path traversal fix(auth): Validate tenantId and providerId format Oct 19, 2026
@macastelaz
macastelaz marked this pull request as ready for review October 19, 2026 15:24
@macastelaz
macastelaz requested a review from a team October 19, 2026 15:24
Comment thread FirebaseAdmin/FirebaseAdmin/Auth/Providers/ProviderConfigManager.cs
Comment thread FirebaseAdmin/FirebaseAdmin/Auth/Multitenancy/TenantManager.cs Outdated
Comment thread FirebaseAdmin/FirebaseAdmin/Auth/Providers/ProviderConfigClient.cs Outdated
Comment thread FirebaseAdmin/FirebaseAdmin/Auth/Users/FirebaseUserManager.cs
Comment thread FirebaseAdmin/FirebaseAdmin.Tests/Auth/Providers/OidcProviderConfigTest.cs Outdated
Comment thread FirebaseAdmin/FirebaseAdmin/Auth/Providers/ProviderConfigClient.cs Outdated
Comment thread FirebaseAdmin/FirebaseAdmin/Auth/Multitenancy/TenantManager.cs
@macastelaz
macastelaz requested a review from lsirac October 19, 2026 20:30
Comment thread FirebaseAdmin/FirebaseAdmin/Auth/Utils.cs Outdated

@lahirumaramba lahirumaramba left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM! Thank you.

Adding a blank line after the foreach closing brace should resolve the build failures.

@macastelaz
macastelaz merged commit ff35cfb into main Oct 20, 2026
16 checks passed
@macastelaz
macastelaz deleted the fix-tenant-provider-id-validation branch October 21, 2026 01:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants