Я настраиваю единый вход SAML с двумя поставщиками услуг: Nextcloud и Rocketchat. Я использую SimpleSAML, как Identity Provider. Это мои авторские источники. php file:
'rocketchat-sp' => ['saml: SP', 'privatekey' => 'rchat / privkey.pem', 'certificate' => 'rchat /cert.pem',
'entityID' => 'https://rocketchat.domain.net/_saml/metadata/rocketchat-sp',
'idp' => 'https://simplesaml.domain.net/simplesaml/saml2/idp/metadata.php',
'discoURL' => null,
],
//Service Provider for Nextcloud
'nextcloud-sp' => ['saml: SP', 'privatekey' => 'nextcloud / privkey. pem ',' certificate '=>' nextcloud / cert.pem ',' entityID '=>' https://nextcloud.domain.net/index.php/apps/user_saml/saml/metadata ',
'idp' => 'https://simplesaml.domain.net/simplesaml/saml2/idp/metadata.php',
'discoURL' => null,
],
Это мой saml2-sp-remote. php file:
// Nextcloud $ metadata ['https://nextcloud.domain.net/index.php/apps/user_saml/saml/metadata'] = array ('SingleLogoutService' => ' https://nextcloud.domain.net/index.php/apps/user_saml/saml/sls '' AssertionConsumerService '=>' https://nextcloud.domain.net/index.php/apps/user_saml/saml/acs '' certificate '=>' nextcloud.pem '),
// Rcoketchat $ metadata [' https://rocketchat.domain.net/_saml/metadata/rocketchat-sp '] = массив (' SingleLogoutService '=>' https://rocketchat.domain.net/_saml/logout/rocketchat-sp '' AssertionConsumerService '=>' https://rocketchat.domain.net/_saml/validate/rocketchat-sp '' certificate '=>' rocketchat.pem '),
, когда я тестирую выход из системы только с самим nextcloud, он работает правильно. когда я тестирую выход только из самого rocketchat, он работает правильно. Когда я тестирую выход из системы с помощью rocketchat и nextcloud: пользователь A подключен к nextcloud. Пользователь A подключен к rocketchat - Когда пользователь A выходит из веб-интерфейса rocketchat (ошибки нет) - Когда пользователь A выходит из интерфейса nextcloud, я иметь эту ошибку:
SimpleSAML \ Ошибка \ Ошибка: UNHANDLEDEXCEPTION
Обратный след: 1 www / _include. php: 17 (SimpleSAML_exception_handler) 0 [встроенный] (нет данных) Причина: Исключение: отсутствует код состояния в ответе. Обратный след: 5 vendor / simplesamlphp / saml2 / src / SAML2 / StatusResponse. php: 72 (SAML2 \ StatusResponse :: __ construct) 4 vendor / simplesamlphp / saml2 / src / SAML2 / LogoutResponse. php: LogR (SAML) :: __ construct) 3 vendor / simplesamlphp / saml2 / src / SAML2 / Message. php: 594 (SAML2 \ Message :: from XML) 2 vendor / simplesamlphp / saml2 / src / SAML2 / HTTPRedirect. php: 129 (SAML2 \ HTTPRedirect :: receive) 1 modules / saml / lib / IdP / SAML2. php: 605 (SimpleSAML \ Module \ saml \ IdP \ SAML2 :: receiveLogoutMessage) 0 www/saml2/idp/SingleLogoutService.php: 23 (нет данных)