# 可以更改SSO提供商吗？

**URL:** <https://meta.discourse.org/t/can-you-change-sso-providers/285625>\
**Category:** SSO\
**Created:** [2023年十一月15日 22:08 UTC](https://meta.discourse.org/t/can-you-change-sso-providers/285625 "2023-11-15T22:08:12Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![clayg](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/clayg/32/181131_2.png) [@clayg](https://meta.discourse.org/u/clayg)\
**Post date:** [2023年十一月15日 22:08 UTC](https://meta.discourse.org/t/can-you-change-sso-providers/285625/1 "2023-11-15T22:08:12Z")

</div>

我们大约在两年前上线了 Discourse，并且我们使用 SSO 从我们的主后台系统作为身份验证提供商。它使用外部 ID（GUID）。

我们正准备将主后台系统更换为另一家供应商。他们支持 OAuth2/OpenID，但当我们转换为这个新系统时，我们用户的外部 ID（GUID）将会改变。因此，我想知道是否有人经历过这种情况，以及我是否需要以某种方式大规模更新 Discourse 中当前存储的外部 ID。

---

<div class="post-metadata">

**Author:** ![itsbhanusharma](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/itsbhanusharma/32/180717_2.png) [@itsbhanusharma](https://meta.discourse.org/u/itsbhanusharma)\
**Post date:** [2023年十一月16日 02:16 UTC](https://meta.discourse.org/t/can-you-change-sso-providers/285625/2 "2023-11-16T02:16:15Z")

</div>

只要用户的电子邮件地址保持不变，您应该就没问题。

---

<div class="post-metadata">

**Author:** ![clayg](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/clayg/32/181131_2.png) [@clayg](https://meta.discourse.org/u/clayg)\
**Post date:** [2023年十一月17日 21:58 UTC](https://meta.discourse.org/t/can-you-change-sso-providers/285625/3 "2023-11-17T21:58:33Z")

</div>

抱歉，当我测试新的 SSO 提供商时，我收到错误消息“主电子邮件已被占用”。

 ![image](https://global.discourse-cdn.com/meta/original/4X/3/3/a/33a772c6ee522cecf20b7ae603873c57029c32f4.png)

并且我有以下设置：  
 ![image](https://global.discourse-cdn.com/meta/original/4X/2/a/b/2ab040333eea0e21a45d54d5710351e1e0cc91cb.png)

---

<div class="post-metadata">

**Author:** ![itsbhanusharma](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/itsbhanusharma/32/180717_2.png) [@itsbhanusharma](https://meta.discourse.org/u/itsbhanusharma)\
**Post date:** [2023年十一月17日 22:00 UTC](https://meta.discourse.org/t/can-you-change-sso-providers/285625/4 "2023-11-17T22:00:28Z")

</div>

那是因为您正试图注册，而实际上应该登录（因为该账户已存在）。

---

<div class="post-metadata">

**Author:** ![clayg](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/clayg/32/181131_2.png) [@clayg](https://meta.discourse.org/u/clayg)\
**Post date:** [2023年十一月17日 22:19 UTC](https://meta.discourse.org/t/can-you-change-sso-providers/285625/5 "2023-11-17T22:19:14Z")

</div>

但我并不是想注册。我访问主页，然后点击“登录”；我看到了我 SSO 提供商的登录页面，我成功进行了身份验证，但在输入密码后，我到达了“创建您的帐户”页面，但我从未点击过“注册”。

---

<div class="post-metadata">

**Author:** ![clayg](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/clayg/32/181131_2.png) [@clayg](https://meta.discourse.org/u/clayg)\
**Post date:** [2023年十一月17日 22:21 UTC](https://meta.discourse.org/t/can-you-change-sso-providers/285625/6 "2023-11-17T22:21:47Z")

</div>

我认为我还设置了这些应该合适的设置。

 ![image](https://global.discourse-cdn.com/meta/original/4X/f/e/c/fecdc07a795703a4252fa08daa382d7257b66840.png)

---

<div class="post-metadata">

**Author:** ![itsbhanusharma](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/itsbhanusharma/32/180717_2.png) [@itsbhanusharma](https://meta.discourse.org/u/itsbhanusharma)\
**Post date:** [2023年十一月17日 22:40 UTC](https://meta.discourse.org/t/can-you-change-sso-providers/285625/7 "2023-11-17T22:40:50Z")

</div>

为了进行故障排除，我建议从仅包含必需设置开始。请确认双方都存在一个具有该电子邮件的用户。

您是在 Discourse 中手动填写该电子邮件，还是由 SSO 服务器自动填充的？

我认为可能发生的情况是，该电子邮件在 Discourse 中与另一个用户名相关联，而您的 SSO 服务器发送了一个新用户名，从而导致了此冲突。

Discourse 日志中是否有任何与 SSO 相关的内容？这可能有助于查明问题的确切原因。

---

<div class="post-metadata">

**Author:** ![clayg](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/clayg/32/181131_2.png) [@clayg](https://meta.discourse.org/u/clayg)\
**Post date:** [2023年十一月17日 22:50 UTC](https://meta.discourse.org/t/can-you-change-sso-providers/285625/8 "2023-11-17T22:50:36Z")

</div>

谢谢。我已验证可以在 Discourse 中禁用 SSO/OpenID，并使用相同的电子邮件地址登录 Discourse。我已验证这些相同的凭据是否适用于我的 SSO 提供商。

当我重新启用 Discourse 中的 OpenID 时，我通过 SSO 提供商成功进行身份验证，但随后仍然会进入 Discourse 屏幕，要求创建帐户。该屏幕上的所有三个值（电子邮件、用户名和全名）均由 SSO 提供商自动填充。

我尝试关闭上述所有设置，但此行为没有改变。

---

<div class="post-metadata">

**Author:** ![itsbhanusharma](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/itsbhanusharma/32/180717_2.png) [@itsbhanusharma](https://meta.discourse.org/u/itsbhanusharma)\
**Post date:** [2023年十一月17日 22:54 UTC](https://meta.discourse.org/t/can-you-change-sso-providers/285625/9 "2023-11-17T22:54:50Z")

</div>

您能否前往 `discourse.example.com/logs` 检查是否有任何与 SSO 相关的警告或错误？

---

<div class="post-metadata">

**Author:** ![clayg](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/clayg/32/181131_2.png) [@clayg](https://meta.discourse.org/u/clayg)\
**Post date:** [2023年十一月17日 23:13 UTC](https://meta.discourse.org/t/can-you-change-sso-providers/285625/10 "2023-11-17T23:13:37Z")

</div>

好的，是的，没有 SSO 错误，也没有 OIDC 错误。我也开启了 OpenID 的详细日志记录。

---

<div class="post-metadata">

**Author:** ![itsbhanusharma](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/itsbhanusharma/32/180717_2.png) [@itsbhanusharma](https://meta.discourse.org/u/itsbhanusharma)\
**Post date:** [2023年十一月17日 23:20 UTC](https://meta.discourse.org/t/can-you-change-sso-providers/285625/11 "2023-11-17T23:20:59Z")

</div>

抱歉，我现在没有建议。如果找到，我会回复。
