Я использую SSOCircle для тестирования своей реализации SAML с помощью Codeigniter. Текущие шаги:
- Доступ к веб-сайту.com
- Перенаправлено на страницу согласия SSOCircle
- Подтвердить личность
- Передать пользовательские данные обратно на веб-сайт.com
Однако после шага 3 он переходит к шагу 4 и сразу возвращается к шагу 3.
Это мой код:
public function index()
{
$data['languages']= get_all_languages();
$sp_auth = 'default-sp';
try {
$auth = new SimpleSAML_Auth_Simple($sp_auth);
$auth->requireAuth(array(
'ReturnTo' => $this->data['controller'],
'KeepPost' => FALSE,
));
$attributes = $auth->getAttributes();
var_dump($attributes);
} catch (Error $e) {
print_r($e);
}
}
Я подумал, что мое перенаправление может быть причиной того, что он продолжает вызывать страницу согласия. Однако при добавлении другого URL-адреса для доступа к этой функции
public function auth(){
$attributes = $auth->getAttributes();
var_dump($attributes);
}
Я получаю эту ошибку:
SimpleSAML_Error_Error: UNHANDLEDEXCEPTION
Backtrace:
1 www/_include.php:45 (SimpleSAML_exception_handler)
0 [builtin] (N/A)
Caused by: SimpleSAML_Error_Exception: No authentication source with id 'Login/Auth' found.
Backtrace:
2 lib/SimpleSAML/Auth/Source.php:335 (SimpleSAML_Auth_Source::getById)
1 modules/saml/www/sp/saml2-acs.php:12 (require)
0 www/module.php:135 (N/A)
Обновлять
Недавно я заметил, что SSOCircle фактически возвращается на мою страницу входа. Однако он немедленно перенаправляет его обратно на страницу SSOCircle. Не уверен, что это поможет
Обновление 2
Я только что проверил журналы и получил это предупреждение
Mar 12 23:26:26 simplesamlphp WARNING [da20d4a7a3] Could not load state specified by InResponseTo: NOSTATE Processing response as unsolicited.
Мне сказали, что это из-за потери информации о состоянии. Однако я проверил имена своих файлов cookie, и они совпадают. Что еще я пропустил?
https://github.com/simplesamlphp/simplesamlphp/wiki/State-Information-Lost