|
|
|
SSO архитектура
|
|||
|---|---|---|---|
|
#18+
Всем привет, Нужен совет по имплементации SSO. Было внутреннее приложение(java web based), потом компания купила еще одну компанию и появилось еще одно внутренне приложение(java web based) и понадобилось добавить SSO для них. При этом поставили условие не использовать open-source решения типа JOSSO, OpenSSO, CAS, .. а написать что-то упрощенное свое - это уже не изменить. Приложения эти запущены на разных аппликейшн серверах, но внутри интранет. Пока есть слабое понимание конечной архитектуры и хотелось бы услышать советы. В моем понимамании надо делать еще одно веб приложение, которое будет делать аутенфикацию и генерить токен(используя private key), сохранять его в куки и перенаправлять назад в исходное приложение. А в наших исходных приложениях мы должны получить токен из куки, дешифровать его(через public key) и потом обойти внутреннюю существующую аутенфикацию плюс мы должны сохранить этот токен в куки в респонсе. Если же исходное приложение не находит токена в куки, то идет перенаправление на SSO приложение. Правильно ли я понимаю то, что надо сделать? Может, у кого есть похожие примеры? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2013, 09:36:03 |
|
||
|
SSO архитектура
|
|||
|---|---|---|---|
|
#18+
diverM, - напиши ВИ или преценденты по использованию. ... - USER1 (новый) написал в ослике http\\App1 - ....? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2013, 09:45:52 |
|
||
|
SSO архитектура
|
|||
|---|---|---|---|
|
#18+
либо ещё раньше при интеграции с Осью - USER1 включил комп и вошёл в домен введя пароль\логин - ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2013, 09:53:56 |
|
||
|
SSO архитектура
|
|||
|---|---|---|---|
|
#18+
diverM, ты Petro особо не слушай сейчас, он иногда говорит правильные вещи, но чтобы расшифровать нужен опыт и терпение) В целом ворфлоу правильный. Что вам мешает посмотреть исходники опенсорс приложений и как это у них реализовано? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2013, 12:45:28 |
|
||
|
SSO архитектура
|
|||
|---|---|---|---|
|
#18+
забыл ник, так я расшифрую) - руками очень просто. Нужен свой Сервер SSO. И шифровать в куки свою инфу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2013, 12:49:36 |
|
||
|
SSO архитектура
|
|||
|---|---|---|---|
|
#18+
Даже Kerberos нельзя заюзать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2013, 12:50:51 |
|
||
|
SSO архитектура
|
|||
|---|---|---|---|
|
#18+
забыл никdiverM, ты Petro особо не слушай сейчас, он иногда говорит правильные вещи, но чтобы расшифровать нужен опыт и терпение) В целом ворфлоу правильный. Что вам мешает посмотреть исходники опенсорс приложений и как это у них реализовано? В принципе ничего не мешает и собираюсь смотреть CAS :). Просто интересовало правильно ли я понимаю общую архитекутуру как это надо реализовать. Еще не очень понятно как действовать в случае если разлогинился в одном приложении - надо, чтоб второе приложение тут же направляло на логин. Тут получается надо трекать все токены на SSO сервере и обращаться к нему на каждом реквесте валидный ли токен. BlazkowiczДаже Kerberos нельзя заюзать? JAAS использовать можно Petro123, ВИ простой: Пользователь логиниться в одно веб приложение и из него может перейти по клику на линк во второе без дополнительного логина. Или же просто набрав веб адрес второго в браузере. И так же с логаутом - отлогинился в одном, значит во втором тоже автоматом надо отлогинить и перенаправить на логин если он там что-то кликнул. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2013, 22:30:12 |
|
||
|
SSO архитектура
|
|||
|---|---|---|---|
|
#18+
diverM, ну, я написал - Сервер sso к которому обращается при логине каждое приложение. Потом пишет в куку инфу-токен. В своем домене все приложения видят эту куку Так работает IBM ....Oracle DB SSO ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2013, 22:59:03 |
|
||
|
SSO архитектура
|
|||
|---|---|---|---|
|
#18+
BlazkowiczДаже Kerberos нельзя заюзать? +1, это будет самый простой вариант, Active Directory практически наверняка уже есть, все аппликейшен сервера без проблем умеют использовать kerberos, нужно только настроить и не изобретать велосипед. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2013, 23:10:26 |
|
||
|
SSO архитектура
|
|||
|---|---|---|---|
|
#18+
just_vladimirBlazkowiczДаже Kerberos нельзя заюзать? +1, это будет самый простой вариант, Active Directory практически наверняка уже есть, все аппликейшен сервера без проблем умеют использовать kerberos, нужно только настроить и не изобретать велосипед. А по-подробнее можно и с примерами? пользователи храняться в БД. Petro123diverM, ну, я написал - Сервер sso к которому обращается при логине каждое приложение. Потом пишет в куку инфу-токен. В своем домене все приложения видят эту куку Так работает IBM ....Oracle DB SSO Есть ли уже готовые легковесные решения сервера SSO которые можно посмотреть? начал смотреть CAS, но там море функционала и соответственно он большой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2013, 23:50:30 |
|
||
|
SSO архитектура
|
|||
|---|---|---|---|
|
#18+
Что-то я давно не брал в руки шашки не писал тут ничего. На самом деле (и так устроено большинство много Web SSO систем), действительно нужен сервер. Т.е ответственный. И страница (форма, попап, и т.п.) с логином в идеале должна быть общая. Дальше схема примерно такая: пользователь вводит логин/пароль и это уходит на SSO сервер. SSO сервер поднимает сессию, подтягивает в неё все, что нужно отдает обратно все что угодно (например, 302 на приложение), но, главное, сажает куку с токеном пользователь заходит на любое из приложений (или его туда сразу перекидывает) Что делает сервер приложения - он имеет, скажем, фильтр (кто ж его знает, что там за сервер), который на каждый запрос проверяет, есть ли кука если она есть, достает оттуда токен и проверяет (как угодно - веб сервис, к примеру) её у SSO сервера получает обратно либо отлуп (неправильный токен, сессия кончилась и т.п.) либо все ОК и информацию (атрибуты) о пользователе (логин, права, все, что надо) пишет в свою сессию этот токен и пользователь и еще что-либо Про разлогинивание: если сервер приложения видит, что куки нет, то пользователь не залогинен - редирект, разрушение сессии, конец света если кука есть, но не совпадает с тем, что в его собственной сессии - заново проверяем куку, см. выше Это решает проблему протухания сессии я явного выхода, когда пользователь жмет на линк/кнопку и это действие на сервере SSO, который убивает сессию. Короче, ничего сложного нет. Но дьявол в деталях. ИМХО, сляпать по-быстрому - несколько дней. Сделать хорошо - дольше и сложнее. Я бы попытался уговорить начальство постановщика условия взять готовое. (Кстати OpenSSO is dead, OpenSSO is dead, baby. Новый король наследник это ForgeRock Open AM) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2013, 00:30:03 |
|
||
|
SSO архитектура
|
|||
|---|---|---|---|
|
#18+
Кстати, Open AM используют и лохи относительно серьёзные ребята: МТС (Смотри копирайты внизу). Не безумно сложный, но в данном случае может оказаться выстрелом пушки по воробьям ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2013, 00:36:29 |
|
||
|
SSO архитектура
|
|||
|---|---|---|---|
|
#18+
diverM, что из себя представляет Ваш интранет? У пользователей виндовые машины? На них они заходят под доменными учетками или под локальными пользователями? Если Ваши ответы - виндовые с доменными учетками, то просто производите настройку SPNEGO/Kerberos на всех ваших AS. Как итог, вы получаете SSO без переписывания кода и избавляетесь от двойного ведения учетных записей, теперь они будут только в домене. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2013, 08:41:49 |
|
||
|
SSO архитектура
|
|||
|---|---|---|---|
|
#18+
just_vladimir, +1 аффтар так и не ответил на мой вопрос- ВИ №2. Если есть домен, то есть смысл полная интеграция с его механизмами. Т.е. Доменные пользователия, Доменные РОЛИ. А что хочет ваше начальство пока не ясно). "Внутреннее приложение" - это интрасеть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2013, 10:12:57 |
|
||
|
SSO архитектура
|
|||
|---|---|---|---|
|
#18+
diverMЕсть ли уже готовые легковесные решения сервера SSO которые можно посмотреть? начал смотреть CAS, но там море функционала и соответственно он большой. если простой, то я вижу 2-3 процедуры: Код: java 1. 2. 3. В общем надо чётко описать круг задач и постановку от руководства. imho ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2013, 10:21:41 |
|
||
|
SSO архитектура
|
|||
|---|---|---|---|
|
#18+
Petro123Т.е. Доменные пользователия, Доменные РОЛИ. Да на этот вопрос как раз был ответ, мне кажется: diverMпользователи храняться в БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2013, 12:01:04 |
|
||
|
SSO архитектура
|
|||
|---|---|---|---|
|
#18+
Hauerмне кажется: согласен)))) Ждём как кажется автору и его начальству) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2013, 12:18:51 |
|
||
|
SSO архитектура
|
|||
|---|---|---|---|
|
#18+
Пользователи могут быть кто угодно - Win, Mac, Linux. Как я уже писал юзера зраняться в БД и никакой интеграции с доменом быть не может. Приложения старые и просто готовиться новый релиз с их интеграцией. Вообще говоря, приложения эти на продажу, т.е. кастомер покупает и ставит у себя во внутренней сети. Лигал департмент нашел проблеммы лицензирования с CAS, JOSSO, ... и поэтому эти варианты отметены. Отсюда и все мои вопросы по собственной легковесной имплементации SSO ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2013, 18:39:44 |
|
||
|
SSO архитектура
|
|||
|---|---|---|---|
|
#18+
diverMКак я уже писал юзера зраняться в БД и никакой интеграции с доменом быть не может. У вас пользователь приложения == пользователь БД? Или это просто записи в таблице вида login + password_hash? Подозреваю, что второе, так как в 1ом случае самопальный SSO все равно не реализуете. А второй вариант не накладывает никаких ограничений на использование домена, это уже исключительно Ваши фантазии. Если интеграции с ОС нет, то Active Directory вполне умеет всяческие SAML'ы и вроде еще пару SSO протоколов, в общем есть из чего выбрать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2013, 20:52:46 |
|
||
|
SSO архитектура
|
|||
|---|---|---|---|
|
#18+
diverM, тогда четче скажи - 10 приложений - 10 разных пар логин-пароль. Где храним и как разруливаем права этих пар? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2013, 20:57:06 |
|
||
|
SSO архитектура
|
|||
|---|---|---|---|
|
#18+
just_vladimirdiverMКак я уже писал юзера зраняться в БД и никакой интеграции с доменом быть не может. У вас пользователь приложения == пользователь БД? Или это просто записи в таблице вида login + password_hash? Подозреваю, что второе, так как в 1ом случае самопальный SSO все равно не реализуете. А второй вариант не накладывает никаких ограничений на использование домена, это уже исключительно Ваши фантазии. Если интеграции с ОС нет, то Active Directory вполне умеет всяческие SAML'ы и вроде еще пару SSO протоколов, в общем есть из чего выбрать. login+hash Active Directory пользователь != пользователь приложения и бизнесс процессы не подразумевают тут никакой связи. Тем более, чтоб сисадмин правил что-то в AD под конкретных доменных пользователей нашего приложения. Petro123, сейчас это 10 пар логин+пароль, но на данном этапе это не важно, т.к. возможно это все мигрируется в одну таблицу. Просто предпологаем, что SSO сервер умеет делать далать аутенфикацию по полученному логин+пароль В любом случае, сейчас разговор уже сводиться не в ту сторону и его можно закрыть. Всем спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2013, 23:48:31 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38297017&tid=2129165]: |
0ms |
get settings: |
18ms |
get forum list: |
27ms |
check forum access: |
6ms |
check topic access: |
6ms |
track hit: |
37ms |
get topic data: |
17ms |
get forum data: |
4ms |
get page messages: |
91ms |
get tp. blocked users: |
3ms |
| others: | 293ms |
| total: | 502ms |

| 0 / 0 |
