You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Firebase对接OIDC时issuer不匹配的解决方案问询

Firebase OIDC单点登录Issuer不匹配问题的解决方案

背景说明

当前对接的企业客户OIDC发现文档(地址:https://abc-vis-cert-cloud3.ourclient.com/.well-known/openid-configuration)中,issuer字段值为"issuer": "urn:VISCertC3:abc",但Firebase要求该值必须与发现文档的请求域名一致(即"issuer": "https://abc-vis-cert-cloud3.ourclient.com"),导致对接时触发错误:

INVALID_IDP_RESPONSE : issuer claim in OIDC discovery document does not match the issuer specified in the request.

客户因已有数百个集成依赖当前配置,无法修改现有issuer字段,以下是可行的解决途径:


1. 搭建反向代理修改发现文档

通过中间代理中转Firebase对客户OIDC发现文档的请求,动态修改返回内容中的issuer字段为Firebase期望的值,不影响客户现有集成。

实现方式示例:

  • Node.js Express代理:
const express = require('express');
const axios = require('axios');
const app = express();

// 中转并修改OIDC发现文档
app.get('/.well-known/openid-configuration', async (req, res) => {
  try {
    // 请求客户原始发现文档
    const originResp = await axios.get('https://abc-vis-cert-cloud3.ourclient.com/.well-known/openid-configuration');
    const discoveryDoc = originResp.data;
    
    // 替换issuer字段
    discoveryDoc.issuer = 'https://abc-vis-cert-cloud3.ourclient.com';
    
    res.json(discoveryDoc);
  } catch (err) {
    res.status(err.response?.status || 500).send(err.message);
  }
});

app.listen(3000, () => console.log('代理服务运行在端口3000'));

部署该代理后,将Firebase OIDC配置中的发现文档地址改为代理服务的对应路径(如https://your-proxy-domain.com/.well-known/openid-configuration)。

  • Nginx反向代理:
server {
  listen 443 ssl;
  server_name your-proxy-domain.com;

  ssl_certificate /path/to/ssl-cert.pem;
  ssl_certificate_key /path/to/ssl-key.pem;

  location = /.well-known/openid-configuration {
    proxy_pass https://abc-vis-cert-cloud3.ourclient.com/.well-known/openid-configuration;
    proxy_set_header Host abc-vis-cert-cloud3.ourclient.com;
    # 替换issuer字段内容
    sub_filter '"issuer": "urn:VISCertC3:abc"' '"issuer": "https://abc-vis-cert-cloud3.ourclient.com"';
    sub_filter_once on;
    # 关闭压缩避免替换失败
    proxy_set_header Accept-Encoding "";
  }
}

2. 协商客户提供专属发现文档

请求客户在现有域名下新增一个仅用于Firebase对接的发现文档端点(如https://abc-vis-cert-cloud3.ourclient.com/.well-known/openid-configuration-firebase),该端点返回的文档仅修改issuer字段为Firebase要求的值,其余字段与原发现文档保持一致。

这种方式无需额外搭建代理,仅需客户做少量配置,且完全隔离现有集成与Firebase对接的配置,风险最低。


3. 确认Firebase官方配置限制

目前Firebase Auth并未提供类似Azure B2C的skipIssuerCheck或strictDiscoveryDocumentValidation这类跳过issuer校验的开关,因此无法通过直接修改Firebase配置解决该问题。


内容的提问来源于stack exchange,提问作者Merenzo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 05:42:36