SOA Сервис Дизайн / Аутентификация

Я довольно новичок в SOA и поэтому экспериментирую.

В настоящее время самой большой проблемой для меня является проверка подлинности, и сейчас я думаю о ней следующим образом:

Клиент отправляет какое-либо сообщение аутентификации в службу аутентификации / пользователя, эта служба запрашивает базу данных, и если пользователь найден и пароль действителен, он ответит идентификатором сеанса, этот идентификатор будет использоваться во всех дальнейших запросах этот клиент.

Мне кажется, это нормально, но я неНе зная, как мне следует обрабатывать запросы к другим службам, я подумал о трех разных подходах.

Каждая служба запрашивает службу аутентификации, является ли сеанс действительным и, если да, в каких ролях находится пользователь. Служба аутентификации просматривает базу данных и отвечает соответственно.

Служба аутентификации хранит всю информацию о сеансе в оперативной памяти и отвечает без запросов db туда и обратно.

Служба аутентификации отправляет авторизованное сообщение в esb, esb пересылает это авторизованное сообщение каждой службе, и эти службы кэшируют его. Никаких дальнейших запросов к службе аутентификации не потребуется. Если пользователь выходит из системы или его роли меняются, другое сообщение будет отправлено и обработано всеми службами.

Я думаю, что первый подход создает слишком большую нагрузку на службу аутентификации / БД, но требует меньше усилий для реализации.

Второе по-прежнему очень легко реализовать, но нагрузка на службу аутентификации остается почти такой же.

Третий вариант немного сложнее в реализации, но сокращает время отклика, так как не происходит никаких обращений к службе аутентификации. Однако, если будет слишком много информации о сеансе, этот подход просто потерпит неудачу, а масштабируемость вряд ли будет предоставлена.

Ответы на вопрос(2)

Дон»делать преждевременную оптимизацию. Ваш вариант № 3, который, как вы признаете, будет более сложным для реализации, не нужен. Выберите вариант № 2 если чтоЭто то, что вы можете реализовать быстро. Вы можете профиль позже и изменить его, но ядержу пари, что выиграл деньгине иметьгорлышко бутылки' при переходе с варианта 2.

 Lijo04 мар. 2012 г., 08:55
Не могли бы вы ответитьstackoverflow.com/questions/9553267/…?
Решение Вопроса

Служба аутентификации выдает токен клиенту службы.Клиент службы включает токен в сообщение SOA, помещенное в WS-Security или что-то подобное.Служба должна проверить токен с помощью службы аутентификации перед предоставлением услуги.

Для внешних сервисов я предлагаю вам взглянуть на федеративные решения, такие какSAML.

 Lijo04 мар. 2012 г., 08:54
Не могли бы вы ответитьstackoverflow.com/questions/9553267/…?

Ваш ответ на вопрос