flutterfire icon indicating copy to clipboard operation
flutterfire copied to clipboard

firebase_auth: SAMLAuthProvider throws an error with loginWithSSOProvider

Open ohhyungkwon opened this issue 1 year ago • 6 comments

Is there an existing issue for this?

  • [x] I have searched the existing issues.

Which plugins are affected?

Auth

Which platforms are affected?

iOS

Description

When signInWithProvider is called with SAMLAuthProvider, the login seems successful but it throws an error like below:

loginWithSSOProvider error: type 'String' is not a subtype of type 'Map<dynamic, dynamic>?'

Reproducing the issue

final provider = SAMLAuthProvider('saml.mycompany.com');

UserCredential userCredential = await FirebaseAuth.instance.signInWithProvider(provider);

Firebase Core version

3.10.0

Flutter Version

3.22.3

Relevant Log Output

Error received from Flutter ["exceptionDescription": type 'String' is not a subtype of type 'Map<dynamic, dynamic>?'#0      platformExceptionToFirebaseAuthException (package:firebase_auth_platform_interface/src/method_channel/utils/exception.dart:47:25), "stackTraceDescription": #0      platformExceptionToFirebaseAuthException (package:firebase_auth_platform_interface/src/method_channel/utils/exception.dart:47:25)
#1      convertPlatformException (package:firebase_auth_platform_interface/src/method_channel/utils/exception.dart:26:5)
#2      MethodChannelFirebaseAuth.signInWithProvider (package:firebase_auth_platform_interface/src/method_channel/method_channel_firebase_auth.dart:405:7)
<asynchronous suspension>
#3      FirebaseAuth.signInWithProvider (package:firebase_auth/src/firebase_auth.dart:641:9)
<asynchronous suspension>
]

Flutter dependencies

Expand Flutter dependencies snippet
Dart SDK 3.4.4
Flutter SDK 3.22.3

dependencies:
...
- firebase_auth: ^5.4.0
- firebase_core: ^3.10.0
...

Additional context and comments

Android also throws an error but it it different with iOS. The Android throws below error.

loginWithSSOProvider error: [firebase_auth/unknown] https://myproject.firebaseapp.com/__/auth/handler?providerId= saml.mycompany.com

ohhyungkwon avatar Jan 23 '25 06:01 ohhyungkwon

We've been unable to reproduce the issue but if you could provide a minimal reproducible example in the form of a repo that would be really helpful.

MichaelVerdon avatar Jan 23 '25 17:01 MichaelVerdon

@MichaelVerdon It looks like the package does not handle the error properly.

  1. signInWithProvider in messages.pigeon.dart throws PlatformException error like below. Image
Image
  1. signInWithProvider in method_channel_firebase_auth.dart catches the exception and converts the exception. Image

convertPlatformException causes another exception and it wipes original error which is PlatformException(sign-in-failed, An internal error has occurred, print and inspect the error details for more information., INVALID_CREDENTIAL_OR_PROVIDER_ID : Invalid IdP response/credential: https://myproject.firebaseapp.com/__/auth/handler?providerId= saml.mycompany.com, null).

ohhyungkwon avatar Jan 24 '25 02:01 ohhyungkwon

Apart from above issue, the original or platform error says there is an invalid provider id.

The SAML is from Google Workspace and it is working fine using the web SDK.

Does flutterfire support SAML for Android and iOS? I can see this https://github.com/firebase/firebase-android-sdk/issues/662.

ohhyungkwon avatar Jan 24 '25 02:01 ohhyungkwon

From what I understand, the mobile SDKs do not natively support SAML the same way that web does so we will be investigating a work around.

MichaelVerdon avatar Jan 24 '25 14:01 MichaelVerdon

Hi @MichaelVerdon Any ideas or links to PRs/issues on firebase sdk for SAML support for mobile?

vasilich6107 avatar Aug 01 '25 09:08 vasilich6107

i have the same error using SAML on iOS.

PlatformException (PlatformException(sign-in-failed, An internal error has occurred, print and inspect the error details for more information., INVALID_CREDENTIAL_OR_PROVIDER_ID : Invalid IdP response/credential

This is after successful authentication from SAML provider when the webview popup closes

imhafeez avatar Oct 10 '25 09:10 imhafeez