Обеспечение безопасности Grails REST для использования с мобильными приложениями - PullRequest
7 голосов
/ 31 октября 2011

Я занят изучением использования служб REST с мобильными приложениями и был бы признателен за понимание. Сценарий выглядит следующим образом.

Рассмотрим веб-приложение, предоставляющее услугу пользователям. Веб-приложение также будет основной точкой взаимодействия для пользователей. Это будет сделано в Grails и защищено Spring Security.

Теперь мы хотим предоставить услугу REST, чтобы пользователи могли пользоваться этой услугой через мобильные приложения. Поскольку Grails имеет такую ​​хорошую поддержку для создания существующего веб-приложения RESTful, для этого мы будем использовать встроенную поддержку Grails.

Мой вопрос сейчас заключается в том, какой «лучший» способ защитить интерфейс службы REST, чтобы его можно было использовать из мобильных приложений (native-iOS, Andriod, WM7, BB).

Информация, которой обмениваются, очень чувствительна, поэтому, чем безопаснее, тем лучше.

Спасибо

1 Ответ

5 голосов
/ 31 октября 2011

Мы решили разделить наш проект grails на три ...

  • model-domain-project (Это раздел «admin» со всеми представлениями / контроллерами и всеми службами,домен)
  • веб-приложение (это основное приложение, контроллеры, представления)
  • api-rest-app (это остальные контроллеры)

model-domain-project - это подключаемый модуль, который подключается к веб-приложению и API-приложению, содержит модель домена, службы и все средства защиты базы данных, транзакции и т. д.

Веб-приложениевсе HTML-шаблоны, представления и контроллеры, здесь мы используем атрибуты Spring Security

. В приложении api-rest мы используем фильтры grails и используем Basic-Authorization через https с токеном сдата истечения срока действия ...

если дата истечения срока действия токена достигнута, вам нужно будет запросить другой токен с «запросом-токеном», который мы отправили вам с первым токеном ... (более или менеекак oauth2)

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

Не знаете, если это лучший способ, но это то, как мы это делаем ...

Иногда мы используем веб-приложение в качестве клиента и вызываем приложение api-rest-app ...

...