Я настроил единый вход в систему SAML для своего приложения.
Сегодня я столкнулся со следующим сценарием:
- Пользователь пытается получить доступ к странице поставщика услуг (SP), который не проходит проверку подлинности и перенаправляется на страницу входа SAML в WSO2 для ввода своих учетных данных с использованием Local Basi c Authenticator.
- Пользователь открывает вторую вкладку с тем же поставщиком услуг перед проверкой подлинности на первой вкладке.
- Пользователь успешно входит в систему на любой из двух вкладок
- Обновление вкладки, которая все еще открыта на странице входа в систему, не выполняет вход в систему пользователя, вместо этого отображается форма входа в систему.
От http_access_logs
Я вижу следующее:
Когда пользователь пытается аутентифицироваться:
[20/Feb/2020:17:02:39 +0000] GET /samlsso?tenantDomain=domain.com&SAMLRequest=abcdef.....&RelayState=myRelayState HTTP/1.1 302 - - Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.116 Safari/537.36 0.018
[20/Feb/2020:17:02:39 +0000] GET /authenticationendpoint/login.do?RelayState=myRelayState&.........parameters_ommited..... HTTP/1.1 200 2953 - Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.116 Safari/537.36 0.003
[20/Feb/2020:17:02:40 +0000] GET /logincontext?sessionDataKey=e3a4e5c3-60dd-4466-8586-9dae01a4a8d8&.....parameters_ommited.... Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.116 Safari/537.36 0.000
Это поток запросов при направлении от SP.
Однако, когда пользователь обновляет страницу входа в систему, даже если он прошел аутентификацию на другой вкладке, принимаются только последние два запроса.
[20/Feb/2020:17:14:26 +0000] GET /authenticationendpoint/login.do?RelayState=myRelayState&.....parameters_ommited..... Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.116 Safari/537.36 0.004
[20/Feb/2020:17:14:27 +0000] GET /logincontext?sessionDataKey=e3a4e5c3-60dd-4466-8586-9dae01a4a8d8&.....parameters_ommited...... Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.116 Safari/537.36 0.007
Из моего понимания g причина в том, что пользователь не перенаправляется на /samlsso
при refre sh, он запрашивает форму входа напрямую.
Это ожидаемая функциональность, которую я хотел бы получить с помощью сервера WSO2 и если да, то как?