Пользовательская аутентификация на движке приложений Google с Java и без сторонних фреймворков (клиент iOS) - разумно ли проектировать? - PullRequest
1 голос
/ 18 ноября 2011

Я хочу развернуть свою собственную простую аутентификацию пользователя как часть приложения iOS / GAE.Я не хочу использовать сторонние библиотеки, такие как spring.

У меня есть клиент iOS, из которого я хотел бы предложить возможность создания профиля (хэшированный UDID, пароль).Сохраняйте данные для входа (связку ключей?) И автоматический вход в GAE каждый раз, когда запускается мое приложение.

Я думаю о простой базовой HTTP-аутентификации HTTP.Декодировать B64 (GAE API для этого?), Затем использовать хешированный UDID в качестве ключа в моих различных объектах хранилища данных через низкоуровневый API хранилища данных.Затем сгенерируйте какой-то уникальный идентификатор сеанса (GAE API для этого?) Для передачи в качестве параметра URL.

У меня довольно хороший опыт работы с Java / Objective-c, но это мое первое приложение «облачного» типа иУ меня есть проблемы безопасности по поводу вышеупомянутого подхода.Хотя бы потому, что я не нашел java-примеров решения довольно распространенной проблемы, которая заставляет меня думать, что я что-то упускаю:)

Некоторые вещи, которые я не знаю, как решить;

  • URL-адреса могут быть легко «перехвачены по сети» или «отсканированы в двоичном формате» из приложения, открывая мне возможность злоупотребления приложением DOS / GAE.
  • Стоит ли попробоватьи защитить трафик через HTTPS, и есть ли способ сделать это между iOS и GAE (я никогда не использовал SSL)
  • Могу ли я совместить этот подход со страницей администрирования, которая будет использовать аутентификацию Google.
  • Имеет ли GAE какую-либо встроенную защиту DOS или мне также нужно объединить это с моим подходом к аутентификации?
  • Без потоков GAE как сделать недействительным сеанс через определенное время, taskQueue?

Я новичок в GAE и взволнован, чтобы преодолеть это первое препятствие, поэтому любые советы очень ценятся!

1 Ответ

1 голос
/ 19 ноября 2011

Некоторые из моих опытов, хотя я использую Python, могут оказаться полезными для некоторых наблюдений:

Возможно, вы захотите рассмотреть OAuth 2.0 как модель аутентификации, поскольку она работает с большинством провайдеров.

Сначала я выбрал пользовательский логин Javascript / OpenID +, а теперь я использую серверный OAuth 2.0 + нестандартный логин. (Я подумал об использовании http://www.janrain.com/, если вы думаете о том, чтобы использовать свои альтернативы.)

Третий вариант - взять пользовательскую аутентификацию, которая уже включена в Java CMS для механизма приложений, в котором уже есть система аутентификации.

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

Если вы хотите посмотреть, как это делает более крупная Java CMS для GAE, вы можете проверить http://www.vosao.org/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...