Проблема безопасности с кросс / мультидоменной аутентификацией
У нас есть многодоменная платформа, которая использует центральный домен для аутентификации и API-операций.
API и аутентификация + управление аккаунтом
https://example.com
Только для чтения + действия виджета
http://example.com
http://example.net
http://example.org
Я прочитал большинство (если не все) вопросов Stackru, касающихся этого типа установки, но не смог понять эту проблему. (Большинство вопросов и ответов было посвящено общим принципам, а не частным).
Мы используем Porthole.js
(javascript iframe proxy library) для передачи вызовов API между https://example.com
и другие доменные имена. Все работает отлично.
Я пытаюсь обернуть голову вокруг "состояния входа" и сохранения пользовательских данных для настройки javascript.
Глядя на то, как моделируются такие сайты, как сам Stackru, я впервые подумал:
- статус входа в кэш + данные настройки (имя пользователя, фотография и т. д.) + данные cookie в localStorage on
https://example.com
в течение 10 минут или до выхода из системы. через 10 минут кэш попадет в API сервера для обновления. - при первом попадании на сетевой сайт запросите удаленное localStorage. если они вошли в систему, прокси-сервер возвращает статус входа, данные настройки и идентификаторы файлов cookie http (не https). затем эти данные считаются "свежими" в течение 10 минут или до выхода из системы.
- печенье от
http://example.com
клонируется на запрашивающий домен, заменяя этот сеанс. это позволяет мне использовать один cookie / id для разных доменов.
Больше всего меня беспокоит последний шаг - клонирование куки-файла http - даже если он используется только для отслеживания и предварительного просмотра. Но вся эта система основана на моделях безопасности браузера, и я могу что-то упустить. Это выглядит как элегантный и просто защищенный механизм, как если бы я использовал модель AuthTicket (пользователь посещает https://example.com/auth-request?destination=http://example.net/auth-response, перенаправлен на http://example.net/auth-response?nonce=VERYBIGNUMBER) или сделал прозрачный запрос oAuth внутри iframe.
Может ли кто-нибудь пролить свет на очевидные / очевидные проблемы безопасности, которые я пропустил, или это кажется таким же безопасным, как альтернативы?