跳到主要内容

🔐 双 OAuth 配置(Microsoft + Google)

警告

这是社区方案,不属于官方支持范围。当前版本可用,但未来行为可能变化。

OPL 数据空间官方上通常只有一个 OPENID_PROVIDER_URL,但你仍然可以通过“一个走通用 OIDC、一个走内建 provider”的方式同时启用 Microsoft 和 Google。

核心思路

  • Microsoft:作为主 OIDC provider,配置 OPENID_PROVIDER_URL
  • Google:仅配置 GOOGLE_CLIENT_ID / GOOGLE_CLIENT_SECRET,走内建 Google OAuth

关键前提

ENABLE_OAUTH_SIGNUP=true
OAUTH_MERGE_ACCOUNTS_BY_EMAIL=true

后者非常关键,否则同一个邮箱可能在两个 provider 下被创建成两套账号。

示例环境变量

MICROSOFT_CLIENT_ID=...
MICROSOFT_CLIENT_SECRET=...
MICROSOFT_CLIENT_TENANT_ID=...
MICROSOFT_REDIRECT_URI=https://your-webui.com/oauth/microsoft/callback
OPENID_PROVIDER_URL=https://login.microsoftonline.com/your_tenant_id/v2.0/.well-known/openid-configuration

GOOGLE_CLIENT_ID=...
GOOGLE_CLIENT_SECRET=...

常见问题

  • Redirect URI 不匹配:检查 WEBUI_URL 和两个 provider 的回调地址
  • 账号未合并:确认 OAUTH_MERGE_ACCOUNTS_BY_EMAIL=true
  • Azure 刷新 token 异常:有时需要开启 OAUTH_REFRESH_TOKEN_INCLUDE_SCOPE=true