SimpleSAMLphp IDP, SP, MediaWiki

Итак, мой следующий проект. У нас есть портал на заказ с собственной базой пользователей. Мы хотели использовать Wiki, поэтому я установил MediaWiki в отдельном поддомене. Наличие нескольких учетных записей - это 1990 год, поэтому интеграция была желанной. Это оказалось не так просто, как я надеялся. Поэтому мое решение было: единый вход.

IDP

Шаг 1, установил SimpleSAMLphp в качестве IDP на поддомене sso.myportal.nu Создал свой собственный модуль, который ищет пользователей в моей базе данных. Авторизация на портале администрирования SimpleSAMLphp, чтобы проверить / проверить, работает ли он, выглядит великолепно (скриншот прилагается).

SP

Шаг 2, установил SimpleSAMLphp как SP на поддомене wiki.myportal.nu Подключил SP к моему IDP. Вход на портал администрирования SimpleSAMLphp, чтобы проверить / проверить, работает ли он, выглядит великолепно. Я прохожу аутентификацию через IDP в моей пользовательской базе данных (скриншот прилагается).

MediaWiki

Затем установил два плагина в MediaWiki;

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

Это должно включить SSO.

При нажатии на ссылку входа в MediaWiki я перенаправляюсь на страницу входа в SimpleSAMLphp на sso.myportal.nu - пока все хорошо. Но вопреки моим ожиданиям .. Вход в систему не работает. Кажется, меня перенаправляют между sso.myportal.nu и wiki.myportal.nu

Я включил режим DEBUG, единственные предупреждения, которые я вижу, выглядят так:

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

У меня есть файлы конфигурации и файлы журналов из обеих установок SimpleSAMLphp, прикрепленные ниже (слишком много текста для копирования / вставки здесь). файлы конфигурации и журнала После полутора дней просмотра Google я как бы застрял. Есть здесь какие-нибудь идеи?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
2
0
320
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Что ж, после двух очень долгих ночей, решение было найдено.

Прежде всего, если опция «Проверить настроенные источники аутентификации» на вкладке «Аутентификация» вашего SimpleSAMLphp работает ... Это не гарантия того, что она действительно будет работать.

В моем случае IDP и SP находились на одном сервере. Различные поддомены. Я отрегулировал все настройки в config.php, поэтому не было одинаковых настроек для IDP и SP (имена файлов cookie, пароли и т. д. И т. Д.).

Опция "Проверить настроенные источники аутентификации" на вкладке "Аутентификация" моего SimpleSAMLphp сработала! Но MediaWiki все еще не сделала этого.

Видимо, это тоже может быть вызвано несоответствием некоторых настроек в config.php по сравнению с php.ini

Я нашел ссылку на эту страницу в старом Форум Google, где упоминалось решение. Я не мог поверить, что это сработало, но был в отчаянии, поэтому попробовал.

механизм хранения должно быть чем-то другим, кроме значения по умолчанию. В моем случае я подключил 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_',

И IDP, и SP могут использовать одну и ту же базу данных, если префикс отличается. Он создаст необходимые таблицы автоматически, ему просто нужно знать, где подключиться к какой базе данных и с какими учетными данными.

Причина, по которой я не удаляю свой вопрос, а отвечаю сам ... Я надеюсь, что кто-то найдет этот пост и сочтет его полезным. Не тратя на это столько времени, как я.

Спасибо Спасибо спасибо!!!!! Это было ЧРЕЗВЫЧАЙНО полезно, и я не думаю, что смог бы заставить что-либо из этого работать без вашего ответа! Простое переключение с phpsession на что-то еще полностью устранило это для меня. Я совершенно потрясен, что это сработало. Еще раз большое вам спасибо.

CoryCoolguy 09.02.2020 09:19

Рад слышать, что мои кошмары помогли кому-то. @CoryCoolguy

Paddy 11.01.2021 08:54

Другие вопросы по теме