Един от нашите клиенти иска да внедрим Single Logout (SLO) чрез SAML. Тяхната страна на SAML услугата е доставчикът на идентичност, докато нашата е доставчикът на услугата. Single-Signon (SSO) работи, като валидира идентификационните данни на потребителя с IdP на клиента, след което пренасочва потребителя към страница за вход на друга платформа с токен, който им позволява да влизат направо. Тази платформа не знае абсолютно нищо за SAML и в конкретно не споделя състоянието на сесията SimpleSAMLphp.
Излизането обаче трябва да стане по два начина:
Ако потребителят натисне бутона за излизане на нашата платформа, трябва да го излезете от нашия сайт и да натиснете услугата SLO на IdP.
Ако потребителят натисне бутона за излизане от страна на клиента или от страна на друг доставчик на услуги, IdP на клиента ще натисне SLO услугата на нашия SP, която след това трябва да ги излезе от реалната ни платформа, преди да пренасочи потребителя обратно към отговора за излизане на SP страница.
Мога да убедя нашата платформа да пренасочи потребителя към произволна страница при излизане, така че мисля, че първата част може да бъде постигната от страница, която използва SimpleSAML_Auth_Simple::getLogoutURL()
.
Такава страница може също да работи, когато бъде засегната от страна на IdP, но спецификациите на SAML са достатъчно сложни, за да не мога да съм сигурен, докато не я изпробваме. Конфигурацията на SP в config/authsources.php
обаче не приема параметър SingleLogoutService
; метаданните, произведени от /www/module.php/saml/sp/metadata.php/entityid
, все още показват /www/module.php/saml/sp/saml2-logout.php/entityid
като местоположение на SingleLogoutService. Ако тази страница е необходима за изчистване на сесията SimpleSAMLphp, това е добре, но трябва да знам как да вмъкна допълнителните пренасочвания, необходими за излизане на потребителя от нашата платформа.
Опитах се да потърся примери, но всичко, което получавам, са препратки към API. Също така би било хубаво да знам как мога да тествам излизане, без да се опитвам да настроя собствен IdP; има ли услуга като openidp.feide.no
, която обработва SLO, както и SSO?