Google Firebase SAML 身份验证:收到 400 错误 INVALID_IDP_RESPONSE:没有断言

问题描述 投票:0回答:2

我正在尝试将我的 Firebase 应用程序与斯坦福大学的 SUNet 作为身份提供商连接起来。通过弹出窗口成功登录后,我收到 400 响应。相关代码粘贴在下面。有人见过这个吗?

  const samlLogin = (samlProvider) => () => {
    const auth = firebase.auth();
    const provider = new firebase.auth.SAMLAuthProvider(samlProvider);
    auth.signInWithPopup(provider).then((userCredential) => {
      console.log(userCredential);
      onSuccess(userCredential.user);
    })
    .catch((err) => {
      console.log(err);
      setLoading(false);
      setErrorText('Something went wrong. Try again or contact support.')
    });
  }

domain: "global" message: "INVALID_IDP_RESPONSE : Invalid Response: has no assertions." reason: "invalid"

firebase google-cloud-platform firebase-authentication saml saml-2.0
2个回答
0
投票

当您开启了签名请求(请参阅 https://cloud.google.com/identity-platform/docs/web/saml#signing_requests)但 IdP 未配置用于请求签名时,可能会发生这种情况。

假设这就是原因,您需要为签名请求配置 IdP(这样可以提高安全性),或者在 GCP Identity Platform 中将其关闭。


0
投票

截至 2024 年 1 月,将 Firebase 与 SAML 的 Shibboleth IdP 集成似乎是不可能的。 Shibboleth 被大学广泛使用,默认对属性进行加密,大多数机构无法或不愿意禁用此功能。虽然 Firebase 允许通过其 API [1] 进行请求签名和 SPI 证书获取,但它不支持属性解密。因此,Shibboleth 无法导入没有加密证书的 XML,而 Firebase 缺乏解密功能会导致集成失败。

[1] https://cloud.google.com/identity-platform/docs/web/saml#signing_requests

© www.soinside.com 2019 - 2024. All rights reserved.