Кросс-сайтовая авторизация
От: drosan http://www.ravil.su
Дата: 25.08.09 15:17
Оценка:
Здравствуйте. Появилась необходимость сделать единую авторизацию на несколько веб-проектов.
Делаю один сервер auth — навроде яндексовского паспорта — через который пользователь авторизуется на всех дочерних ресурсах.
В общем-то технология не нова и используется довольно часто, но почему-то подробных описаний в Сети я почти не нашёл. Общие схемы есть, но базовый функционал я сделал, остаются нюансы. Посещаемость намечается большая, соответственно надо предусмотреть всё по нагрузке и по защищённости.
В общем, эти детали тоже по большей части ясны, кроме некоторых, например:
— Как лучше всего сделать междусайтовое взаимодействие? OpenID мотыжит туда-сюда данные хттп-запросами, это неинтересно, потому что медленно (или это не настолько критично, как считаете?), если идти по его стопам — то дочерний ресурс должен проверять какой-то уникальный хеш, отдаваемый после логина/логаута auth-сервером, хттп-запросом (понятно напрямую, без участия пользователя). Это и вроде как флексибл, но с другой стороны — наверняка можно сделать по-другому, например использовать shared-базу для хранения авторизованных-сейчас пользователей. Это вроде как шаг к производительности, но встаёт другой вопрос — действительно ли это будет так быстро? Можно использовать memory-таблицы или memcachedb, но смущает тот факт, что при перезапуске демонов все активные сессии сбросятся. Если использовать персистентное хранилище, встаёт вопрос о производительности опять же. В общем, под конец рабочего дня решил вынести вопрос на суд общественности — может, замылилась мысль, и есть какое-то более очевидное, оригинальное и красивое решение?
"Для того чтобы быть человеком, надо им какое-то время не быть." ©Ю. А. Бригадир.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.