SimpleSAMLphp - SSO Azure 适用于 Firefox 和 Safari,但不适用于 Chrome 和 Edge

Posted

技术标签:

【中文标题】SimpleSAMLphp - SSO Azure 适用于 Firefox 和 Safari,但不适用于 Chrome 和 Edge【英文标题】:SimpleSAMLphp - SSO Azure works in Firefox and Safari, but not in Chrome and Edge 【发布时间】:2021-05-07 21:38:53 【问题描述】:

我们正在尝试针对 Azure AD 将 simpleSAMLphp 设置为 SSO,以便与 MediaWiki 安装一起使用。

期望的情况: 当有人登录 MediaWiki 时,该人应该被重定向到 Azure AD。接下来,用户应该填写他的凭据并被重定向到 wiki。

目前情况: 我按照此处描述的步骤操作:https://medium.com/vivritiengineering/mediawiki-and-azure-single-sign-on-e3fbc13d1f46

SimpleSAMLphp 设置在本地 Debian 服务器上。 Config.php 和 authsources.php 是为 Azure 和我们的租户设置的。

我们在 Azure 中创建了一个应用并填写了 2 个回复 URI:

https://ourSite/simplesaml/module.php/core/authenticate.php?as=default-sp https://ourSite/simplesaml/module.php/saml/sp/saml2-acs.php/default-sp

问题: 在 Firefox 和 Safari 中一切正常:我转到“测试配置的身份验证源”-“default-sp”。 接下来,我看到了一个 Microsoft 登录页面。 使用我的帐户登录后,simpleSAMLphp 会显示我的元数据。正如预期的那样。

在 Chrome 和 Edge 中,当转到“测试配置的身份验证源 - default-sp”时,页面卡在重定向循环中:

https://login.microsoftonline.com/**newSamlRequest** https://ourSite/simplesaml/module.php/saml/sp/saml2-acs.php/default-sp https://ourSite/simplesaml/module.php/core/authenticate.php?as=default-sp 重复

我尝试了什么:

    正在清除我的缓存和 cookie。 结果:我看到了 Microsoft 登录屏幕,但在提交我的凭据后我卡在了循环中。 将 simpleSAMLphp 中的 store.type 从“phpSession”更改为“SQL”(SQLite 和 mysql 都试过)。 结果:在 Firefox 和 Safari 中仍然有效。在 Chrome/Edge 中循环播放。 Azure AD 中的新应用程序,结果相同 simpleSAMLphp config.php 中的不同设置结果:有时会破坏 simpleSAML,大部分结果与上述相同。

我是 simpleSAMLphp 的新手,经过几天的反复试验,我已经没有想法了(除了放弃 simpleSAML 并尝试切换到 LDAP) 它似乎与浏览器/cookie/缓存相关。

提前感谢您的帮助!

【问题讨论】:

config.php 检查是否设置了“session.cookie.samesite”,如果没有设置=>“无”Chrome 需要它来发布跨站点 cookie,这可能是您的问题.否则,似乎 cookie 在 Edge 和 Chrome 中丢失了。您可能需要使用浏览器开发工具来窥探流量并查看 SSP 会话 cookie 何时丢失。 重装simpleSAMLphp解决。并完全重做配置。检查了新旧配置,但我看不出有什么区别。我确实从 simpleSAMLphp-v1.19.0 恢复到 simpleSAMLphp-v.1.18.8,但我不敢说这是原因 这个错误报告似乎提到了这个问题:github.com/simplesamlphp/simplesamlphp/issues/1444 - 而且似乎samesite-cookie设置是关键。 【参考方案1】:

通过重新安装 simpleSAMLphp 并完全重做配置来解决。 检查了新旧配置,但我看不出有什么区别。

我确实从 simpleSAMLphp-v1.19.0 恢复到 simpleSAMLphp-v.1.18.8,但我不敢说这是原因。

【讨论】:

以上是关于SimpleSAMLphp - SSO Azure 适用于 Firefox 和 Safari,但不适用于 Chrome 和 Edge的主要内容,如果未能解决你的问题,请参考以下文章

SimplesamlPHP 配置

状态信息丢失:SIMpleSAMLphp

当存在要注销的多个帐户时,使用 SimpleSAMLphp 注销到 Azure AD 中的指定网站后不会发生重定向

有没有好的 SimpleSAMLphp SLO 示例?

Azure AD 与 AWS IAM 集成实现SSO—上(Azure部分)

使用Laravel的Azure Active Directory SSO