代码之家  ›  专栏  ›  技术社区  ›  Paddy

SimpleSAMLphp IDP、SP、MediaWiki

  •  1
  • Paddy  · 技术社区  · 7 年前

    那么,我的下一个项目。我们有一个定制的门户,有自己的用户数据库。我们想使用Wiki,所以我在一个单独的子域上安装了MediaWiki。拥有多个账户是1990年的事,因此希望实现整合。这并不像我希望的那么容易。 因此,我的解决方案是:单点登录。

    步骤1,将SimpleSAMLphp作为IDP安装在子域sso上。我的门户。怒族 创建了我自己的模块,在我的数据库中查找用户。登录SimpleSAMLphp管理门户,测试/验证它是否工作,看起来很棒(附屏幕截图)。

    服务提供商

    将SP连接到我的IDP。登录SimpleSAMLphp管理门户,测试/验证它是否工作,看起来很棒。我通过我的用户数据库中的IDP进行身份验证(附屏幕截图)。

    维基百科

    然后将两个插件安装到MediaWiki中;

    https://www.mediawiki.org/wiki/Extension:PluggableAuth https://www.mediawiki.org/wiki/Extension:SimpleSAMLphp

    这将启用SSO。

    单击MediaWiki中的登录链接时,我会被重定向到sso上SimpleSAMLphp的登录页面。我的门户。nu到目前为止还不错。 但是,与我的预期相反。。登录,不工作。我似乎在sso之间被重定向。我的门户。nu和wiki。我的门户。怒族

    我已启用调试模式,我看到的唯一警告似乎是:

    Could not load state specified by InResponseTo: NOSTATE Processing response as unsolicited.
    

    我在下面附上了SimpleSAMLphp安装中的配置文件和日志文件(这里有点太多的文本无法复制/粘贴)。 config and log files 在谷歌上浏览了一天半之后,我有点卡住了。这里有人有什么想法吗?

    1 回复  |  直到 7 年前
        1
  •  2
  •   Paddy    7 年前

    两个漫长的夜晚之后, .

    首先,如果 测试配置的身份验证源 “上的选项” 认证 “-SimpleSAMLphp的-tab可以工作……这并不能保证它能真正工作。

    在我的例子中,IDP和SP位于同一台服务器上。不同的子域。我有配置中的所有设置。php进行了调整,因此IDP和SP没有相同的设置(cookie名称、密码等)。

    " 测试配置的身份验证源 “上的选项” 认证 “-我的SimpleSAMLphp的选项卡工作了!但MediaWiki仍然没有。

    我在旧文件夹中找到了指向此页面的链接 Google Forum ,他们提到了解决方案。我不敢相信它能起作用,但我绝望了,所以试了一下。

    这个 存储引擎 在我的例子中,我将SimpleSAMLphp连接到一个MySQL数据库(可以是sqlite,也可以是其他任何数据库)。

    'store.type'         => 'sql',
    'store.sql.dsn'      => 'mysql:host=localhost;dbname=simplesamlStuff',
    'store.sql.username' => 'simplesamlUser',
    'store.sql.password' => '1234567980',
    'store.sql.prefix'   => 'sso_',
    

    我不是删除我的问题而是回答我自己的原因。。。我希望有人能找到这篇文章,并觉得它很有帮助。不用像我一样在这上面花那么多时间。