Схема аутентификации для многоуровневого веб-приложения с использованием REST API

Я создаю веб-приложение, в котором двумя основными компонентами являются веб-сайт и серверная веб-служба RESTful. Веб-сайт будет звонить веб-службе RESTful, которая выполняет всю тяжелую работу. Я планирую использовать Spring Security для обоих уровней. Я предполагаю, что веб-сайт будет использовать аутентификацию формы, а RESTful API будет использовать базовую аутентификацию (через SSL). Однако я не уверен, как предоставить учетные данные для аутентификации REST API, поскольку веб-сайт, вероятно, будет иметь файл cookie сеанса после первоначального входа в систему. Может ли кто-нибудь дать несколько советов по схеме аутентификации, которая будет работать в этом многоуровневом приложении? Спасибо!

РЕДАКТИРОВАТЬ: я должен упомянуть, что REST API также будет использоваться мобильным приложением.


person MJM    schedule 24.06.2011    source источник
comment
Будет ли код веб-клиента (например, javascript) напрямую связываться со службой REST или он всегда будет использовать обычный веб-сервер в качестве посредника?   -  person Donal Fellows    schedule 24.06.2011
comment
Это все еще подлежит уточнению, хотя я подозреваю, что он всегда будет использовать веб-сервер в качестве посредника.   -  person MJM    schedule 24.06.2011


Ответы (1)


Один из способов сделать это — использовать Запомнить меня на веб-сайте и в службе REST. Веб-сайт заставит запомнить меня (вы можете установить время истечения срока действия и/или сделать его сеансовым файлом cookie). Затем скопируйте этот файл cookie для запросов службы веб-сайта к REST. Мобильный для REST будет использовать тот же файл cookie, который уже есть (при условии, что они находятся в одном и том же домене файлов cookie).

person sourcedelica    schedule 24.06.2011
comment
Спасибо за совет. Чтобы уточнить, это общий поток? Насколько я понимаю, есть два сценария. 1: Мобильный клиент проходит аутентификацию непосредственно в службе REST (например, с использованием базовой аутентификации), а сервер возвращает файл cookie «запомнить меня», который затем можно использовать в последующих запросах REST. 2: веб-уровень предложит пользователю пройти аутентификацию и точно так же создаст файл cookie «запомнить меня». Файл cookie, сгенерированный веб-уровнем, можно передать с веб-уровня непосредственно в интерфейс REST. - person MJM; 24.06.2011