Форум на Kuban.ru (http://forums.kuban.ru/)
-   Разработка программ (http://forums.kuban.ru/f1024/)
-   -   Авторизация в веб-сервисе (http://forums.kuban.ru/f1024/avtorizaciya_v_veb-servise-2331975.html)

CPU 13.03.2012 13:34

Авторизация в веб-сервисе
 
Господа, что-то я забуксовал.
Есть задача нарисовать веб-сервис, который предоставляет некий API для управления балансом клиента - состояние счета, подключить услугу и т.п.
Хочется защитить все это дело - чтобы каждый клиент видел только данные о себе.
Пока в голове вертятся только два решения влоб:
1) В каждом SOAP-запросе передавать логин/пароль клиента.
2) Создать функцию для авторизации, которая возвращает некий идентификатор сессии. И для остальных запросов уже юзать этот идентификатор.

Оба этих варианта вызывают нарекания. Первый постоянно светит логин/пароль в сети, а для второго трудно придумать достаточно надежный идентификатор.
Посматриваю в сторону OAuth, но пока не понял, насколько он мне годится.

Может, есть какие-нибудь встроенные средства или некий good practice?

P.S. Реализация веб-сервиса - на .NET WCF. При должной аргументации рассмотрю вариант с J2EE.

aj3 13.03.2012 19:31

Если я просто скажу, что нужно изучить .net wcf, так как для него твои хотелки - стандартная рутинная задача, такой ответ устроит? :)

wayerr 13.03.2012 22:02

[url]http://en.wikipedia.org/wiki/WS-Security[/url] - штандартное средство

aj3 13.03.2012 22:50

Автору лучше изучить .net wcf, бо используя его он даже мизинцем не прикоснется к голому WS-Security, оно под капотом. Аутентификация, авторизация, безопасность на уровне транспорта/сообщения, разные типы кредов и их хранилищ и т. п.. [filolog]Мона[/filolog] даже самому провайдеров настрогать, если приспичит. Все это есть штатно.

aj3 13.03.2012 22:51

*возможность касаться того, что под капотом есть тоже в этом фреймворке*

CPU 16.03.2012 15:03

Если я правильно понял, в итоге реализация внутри фреймворков (что .NET, что Java) сводится к тому, что логин/пароль передаются в заголовке SOAP-запроса, Только внешне все прикрыто обёртками.
Конечно, штатная реализация сильно облегчает дело, но все-таки ожидал чего-то особенного. )

aj3 16.03.2012 18:04

Креды могут передаваться как на уровне сообщения, так и транспорта. Все зависит от схемы, которую ты примешь в рамках обеспечения безопасности доступа к сервису.

Хочу обратить внимание, что креды мало безопасно передать. Аутентификация? Авторизация?

Вот как раз фреймворки типа wcf решают эти задачи. Как правило, декларативно для стандартных сценариев. Твой сценарий стандартный.

Читать много прийдется. Это да. Но дело стоящее, если с этим связана повседневная работа.


Текущее время: 04:48. Часовой пояс GMT +3.