Реализация истечения срока действия сессии SAML SSO при переходе туда и обратно между доменами нашей системы и внешними доменами

В моей системе используется фреймворк django с MongoDB и reactJS. Я реализовал SSO с помощью инструментария python с открытым исходным кодом, предоставленного OneLogin (https://pypi.org/project/python3-saml/)

Предположим, у нас есть известный набор системных доменов (www.app1.com, www.app2.com). Я пытаюсь реализовать истечение срока действия сессии, когда пользователь входит в систему с помощью SSO в одном из наших известных доменов и переходит на внешний домен (например, youtube и т.д.).

Пока пользователь переключается между известным нам набором доменов, существующая сессия не должна быть аннулирована.

В настоящее время я интегрирован с Azure active directory в качестве провайдера идентификации (IDP).

Когда я вхожу в систему с помощью SSO, он перенаправляет меня на microsoft login, а после успешного входа меня перенаправляют обратно на мой внутренний сервер, где я храню токен SAML и перенаправляю обратно в домен внешнего приложения.

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

Есть ли способ/ссылки для аннулирования сессии или удаления сессии из IDP без перенаправления, т.е. попадания на url SLO?

Я использую SLO url, когда пользователь выходит из системы, и он снова перенаправляется на страницу выхода microsoft, но если пользователь выходит напрямую, я не могу использовать SLO url, так как он просто будет отменен, поскольку это перенаправление.

Кроме того, если я реализую истечение сессии при переходе на внешний домен, как я смогу сохранить сессию, если пользователь будет переключаться между известными доменами. Возможно ли получить url, на который пользователь пытается перейти во время события 'beforeunload' в браузере?

В настоящее время не существует способа удалить сессию браузера Azure AD без использования конечной точки SLO.

Вернуться на верх