11

我正在使用 Google / G Suite 为我们的应用程序进行 SAML SSO 集成。我们的客户在其公司的 G Suite 管理员设置中配置我们的 SAML 应用程序。在大多数情况下,集成工作正常:

  • 假设您尚未登录 Google 帐户。您启动 SSO 流程。系统会提示您登录公司的 Google 帐户,并且 SSO 可以正常工作。

尚未登录时的谷歌帐户提示

  • 假设您已经登录了公司 Google 帐户个人 Google 帐户。您启动 SSO 流程。您会看到一个帐户选择器。如果您选择公司的 Google 帐户,SSO 可以正常工作。 登录多个帐户时的帐户选择器提示

但是,在这种情况下,SSO 会失败:

  • 假设您只登录了您的个人 Google 帐户。Google 不显示帐户选择器。相反,您会立即收到 403 错误:“错误:app_not_configured_for_user。”

如果只登录错误的帐户,则会出现 403 错误

这给我们的用户带来了非常混乱的体验。您目前只登录一个不是您公司的谷歌账户的谷歌账户是很常见的。此外,错误页面是不透明的——用户不清楚他们做错了什么。

有没有办法总是显示帐户选择器?例如,我们可以在/o/saml2/idpurl 或 SAML AuthnRequest 中添加任何参数吗?(例如,我们尝试在 AuthnRequest 中设置ForceAuthn和添加一个<saml:Subject>块,但 Google 的 SAML 似乎也不支持。)

或者有没有办法让我们的应用程序在错误时获得回调,以便我们可以显示更有意义的错误消息?

(我联系了 G Suite 支持,他们说要在 Stack Overflow 上提出我们的问题。在这里感谢您的帮助!)

4

4 回答 4

3

您需要重定向到https://accounts.google.com/accountchooser?continue= {theredirectURL} ,而不是直接从您的应用重定向到 Google IDP

请参阅 Google SAML app_not_configured_for_user / 相当于 prompt=select_account SAML

于 2020-05-25T01:28:57.190 回答
-1

如果您使用passport-saml 有一个 fork 可以解决此问题。
在配置中设置googleAuth: true,然后在授权期间将重定向到谷歌帐户选择页面

于 2020-07-15T07:46:24.063 回答
-1

我有同样的问题。然后,当我在“设置”>“帐户”下将 G Suite 帐户添加到我的 Android 设备并重试登录流程时,系统会正确提示我使用“帐户选择器”。不是我真正想要的解决方案,但它确实改变了结果。

于 2020-07-20T22:10:04.107 回答
-3

使用 Keeper Password Manager 时,我遇到了完全相同的问题。我通过删除 ~/Library/Application Support/Keeper Password Manager/Cookies 中的所有内容来解决它

我建议你在你的应用程序中寻找一个类似的文件夹并做同样的事情

于 2019-12-13T22:34:53.497 回答