Федеративный выход из системы на одностраничном приложении с использованием dotcore api

Мы используем библиотеку ItFoxTec для аутентификации saml. Федеративный вход работает нормально. Проблема с федеративным выходом из системы. Сценарий таков: у нас есть два приложения с именами mvcapp и singlepageapp(угловое). Когда я нажимаю кнопку входа в mvcapp, я перенаправляю на страницу входа в систему IDP и возвращаюсь в mvcapp после аутентификации. Есть ссылка на мой singlepageapp на mvcapp. Я щелкаю по этой ссылке, я уже вошел в IDP, поэтому мой API получает токен saml от IDP, использует токен api и создает токен jwt и перенаправляет меня на singlepageapp вместе с токеном jwt (созданным с помощью токена saml) в строке запроса.

Теперь пользователь нажимает на кнопку выхода из mvcapp, запрос на выход отправляется в конечную точку выхода IDP. IDP знает, что этот пользователь вошел в эти два приложения, и у IDP есть конечная точка выхода из этих двух приложений. Теперь IDP делает запрос на выход для singalpageapp(конечная точка выхода - конечная точка api).api не имеет файлов cookie, но singalpageapp имеет токен jwt в браузере. поэтому мой вопрос заключается в том, как API удалит токен jwt. так что пользователь выходит из обоих приложений.

1 ответ

Во-первых, если IdP поддерживает и SAML 2.0, и OIDC (OpenID Connect), лучшим решением для mvcapp будет использование SAML 2.0, а для одностраничного приложения - OIDC. Или, может быть, оба приложения используют OIDC.

В качестве альтернативы, я думаю, что решение состоит в том, чтобы использовать OIDC для защиты одного приложения, а не только JWT, где на самом деле API также стал IdP. Поскольку API действует как IdP, API должен поддерживать сессию пользователей, но невозможно использовать куки.

OIDC поддерживает пользовательский сеанс и выход из системы с помощью OpenID Connect Session Management. Этот стандарт также поддерживает уведомление об изменении состояния сеанса, при котором клиент singlepageapp может вызывать IdP API, чтобы проверить, активен ли пользовательский сеанс в JWT.

Другие вопросы по тегам