Какое наилучшее решение для защиты поставщика услуг REST (предположим, сервлет java, работающий на google appengine), разрешая запросы только от устройства iOS или Android от определенного приложения?
Предположим, у меня в google appengine работает сервлет, который выполняет некоторую обработку и отвечает на запрос GET с некоторыми данными JSON. И я хочу ограничить этот доступ для моего приложения, которое работает на Android и iOS.
Мои текущие решения:
- Используйте
if(tokenValue ==
request.getHeader(tokenKey))
на
appengine servlet. А также
response.addHeader(tokenKey,
tokenValue)
в мобильных приложениях
код. Так что в основном только мое приложение будет
знать ключ токена.
- Используйте HTTP (s) для вышеуказанного решения, appengine поддерживает это
- Используйте oAuth - но мне нужно, чтобы пользователь выполнил вход в какой-либо провайдер oAuth из приложения, что усложняет приложение
Предложите другие полезные подходы для решения этой проблемы. Предположим, что этот сервлет обслуживает только запросы GET и, возможно, использует Restlet или Jackson