У меня есть приложение cakephp, для которого пользователи должны пройти аутентификацию через SAML Sign Sign. Для этого я пошел по ссылке «https://github.com/zl4bv/CakePHP-simpleSAMLphp-Plugin».SAML SSO в приложении cakephp
Согласно его документации, я загрузил свежие копии cakephp и simpleSAMLphp. Теперь у меня есть папка cakephp и папка simpleSAMLphp в моей рабочей области. Я установил simpleSAMLphp, как описано в ссылке «https://simplesamlphp.org/docs/stable/». я следовал следующие действия: (1) Я сконфигурированные simpleSAML в Apacheе congiguration, как показано ниже:
<VirtualHost *>
ServerName service.local-saml.com
DocumentRoot /var/www/simplesamlphp/www/
<Directory "/var/www/simplesamlphp/www/">
Order allow,deny
Allow from all
Require all granted
</Directory>
</VirtualHost>
(2) Теперь, в simplesamlphp папке приложения, я изменил значения 'auth.adminpassword', 'secretsalt', 'technicalcontact_name', 'technicalcontact_email' в файле /config/config.php.
(3) Я использовал модуль SAML: sp, который по умолчанию включен.
(4) Сначала я начал с SAML в качестве поставщика удостоверений.
(5) Я включил 'enable.saml20-idp' => true, в /config/config.php файл.
(6) Создано Ssl самоподписанного сертификата с помощью команды на клемме
sudo openssl req -new -x509 -days 3652 -nodes -out /etc/ssl/certs/simplesamlphp.crt -keyout /etc/ssl/certs/simplesamlphp.pem
(7) перемещена вышеуказанные сертификаты simplesamlphp/CERT. (8) Добавлен секретный ключ и сертификат конфигурации/authsources.php
'default-sp' => array(
'saml:SP',
'privatekey' => 'simplesamlphp.pem',
'certificate' => 'simplesamlphp.crt',
)
(9) Добавлен секретный ключ и certicates к "метаданных/saml20-IDP-hosted.php" файл также.
(10) Измененные метаданные в "метаданных/saml20-SP-remote.php"
$metadata['http://service.local-saml.com'] = array(
'AssertionConsumerService' => 'http://service.local-saml.com/simplesaml/module.php/saml/sp/saml2-acs.php/default-sp',
'SingleLogoutService' => 'http://service.local-saml.com/simplesaml/module.php/saml/sp/saml2-logout.php/default-sp',
);
(11) Я добавил метаданные по ссылке "https://openidp.feide.no/simplesaml/module.php/core/loginuserpass.php?AuthState=_36266db92ac88d2d66ae8ede39dd1264a39243f08e%3Ahttps%3A%2F%2Fopenidp.feide.no%2Fsimplesaml%2Fmodule.php%2Fcore%2Fas_login.php%3FAuthId%3Dopenidp-ldap%26ReturnTo%3Dhttps%253A%252F%252Fopenidp.feide.no%252Fsimplesaml%252Fmodule.php%252Fmetaedit%252Findex.php".
(12) Я набрал URL-адрес «http://service.local-saml.com/simplesaml» в браузере и работает правильно. Я попытался войти в систему с параметром по умолчанию-sp, и он работает правильно.
Теперь, я хочу использовать этот simplesamlphp с моим приложением к cakephp. (13) Для этого, как указано в "https://github.com/zl4bv/CakePHP-simpleSAMLphp-Plugin", я положил папку SAML в/приложение/папку плагином CakePHP
(14) Я добавил линии на core.php и Bootstrap.php файлов.
(15) Я создал userController и сделал то же, что и в примерах файлов ссылки.
(16) Я добавил folllowing
'sp1' => array(
'saml:SP',
'privatekey' => 'simplesamlphp.pem',
'certificate' => 'simplesamlphp.crt',
'entityID' => 'http://localhost/cakephp1',
),
в конфигурационном/authsources.php из simplesamlphp.
(17) Я добавил метаданные в метаданных/saml20-SP-remote.php
$metadata['http://localhost/cakephp'] = array(
'AssertionConsumerService' => 'http://localhost/cakephp',
'SingleLogoutService' => 'http://localhost/cakephp',
);
Когда я напечатал LOCALHOST/CakePHP в браузере, ссылку перенаправлены на "https://openidp.feide.no/simplesaml/module.php/core/loginuserpass.php", пользователь вводит свой имя пользователя и пароль, но «Государственная информация потеряна». Ошибка отображается на «http://service.local-saml.com/simplesaml/module.php/saml/sp/saml2-acs.php/sp1», и пользователь не возвращается к «localhost/cakephp». Я хочу, чтобы пользователь возвращался на адрес cakephp, когда пользователь вводит учетные данные для входа.
Пожалуйста, помогите мне, где я ошибаюсь, и что я пропустил?
Не работает. Моя простая цель: у меня есть приложение «http: // localhost/cakephp». Я хочу, чтобы пользователи перенаправлялись на «https://openidp.feide.no», когда они не вошли в систему, и после ввода учетных данных для входа они не перенаправляются на мой сайт «http: // localhost/cakephp». Они перенаправляются на «http://service.local-saml.com/simplesaml/module.php/saml/sp/saml2-acs.php/sp1» с сообщением об ошибке «State Information Lost». Мой первый вопрос: «Почему пользователь пришел к URL-адресу« http://service.local-saml.com/simplesaml/module.php/saml/sp/saml2-acs.php/sp1 », вместо моего URL-адреса сайта? в вышеуказанных шагах? – Ishpreet
Мое простое требование: я хочу использовать simplesamlphp как библиотеку вместо приложения. Пожалуйста, предложите мне шаги, чтобы следовать за этим – Ishpreet
Возможно, метаданные, которые вы зарегистрировали в feide, уже соответствуют другому объекту, попробуйте изменить домен и зарегистрировать снова метаданные. – smartin