Drupal SAML 登录重定向不起作用

Drupal SAML login redirect not working

我正在通过 SAML 为 Drupal 配置 SSO,我通过 SimpleSAMLphp 的面板测试了 SP 登录并且它有效。我为 Drupal 安装了 simplesamlphp_auth,并通过 SimpleSAMLphp 启用了身份验证。

当我转到 https://mydrupal.com/saml_login 时,浏览器开始重定向(一些长 URL 和 disco.php)然后以 404 停止。SP 只是记录,这是正确的:

session not valid because we are not authenticated.

我确定这是 drupal 或模块配置(不是经过测试和工作的 SP 或 IdP),我做错了什么?

我的 SP 绝对应该使用 Memcache 作为存储吗?

更新:
最近的日志条目提到 SimpleSAMLphp 找不到 disco.php

page not found 2016-01-18 16:33 simplesamlphp/module.php/saml/disco.php

我的 SP VirtualHost 配置中的 ServerName 应该匹配 drupal url 还是不相关?

我不知道这是否是将 simpleSAMLPHP 配置为与 Drupal 一起作为 SP 的方式,但我没有为 SP 使用单独的 VirtualHost,而是将它添加到 Drupal 中以确保 Alias 工作。诀窍是我的 Drupal 在 SSL VirtualHost 中 运行 而 SP 在不同的仅 HTTP 端口上,这就是重定向从未起作用的原因。 Drupal 模块配置中的“force https for login”复选框完全没用

您的 Sp 应该使用 memcache 或 mysql 否则它将无法与 simplesamlphp_auth 一起使用。

您遇到这些问题的原因可能有多种。这就是为什么一个答案是关于 VirtualHost 条目,另一个是关于你的会话处理方法(memcache 或 sql)。

您没有提到您是哪个版本的 Drupal 核心 运行。这对于 simplesamlphp_auth 模块也很重要。

如果您是 运行 Drupal 8 并且您通过 composer 安装了 simplesamlphp_auth 模块,它会在您的 vendor 目录中安装 simplesamlphp 库。在 VirtualHost 条目中为该库指向另一个目录,甚至在 settings.php 配置中指定另一个目录都没有关系。 simplesamlphp_auth 无论如何都会使用供应商目录中的库。这是我 运行 关注的问题。在它工作之前,我必须将所有配置复制到供应商目录中的 simplesamlphp 库中的文件中。