2012-01-19 6 views
2

У меня есть HTTPS WebService, к которому необходимо обратиться из приложения Mobile (iPhone). оба разработанные нами.Защита доступа к мобильному приложению к WebService (домашний подход)

Мы должны обеспечить Мобильный доступ к этой услуге. Поэтому мы использовали учетные данные пользователя и пароля.

Мы знаем о OAuth, но нам нужна более простая схема аутентификации.

Что мы думать о следующем:

  1. Mobile App показывает регистрационное_имя форму в пользователя/владелец ресурса.

  2. владелец ресурса введите учетные данные для входа на себя вести в Mobile App.

  3. Мобильный приложение подключения к серверу на специальном WS способе (например, «ValidateLogin»), который принимает имя пользователя/пароль -Наверное hashed- в качестве входных данных и возвращает HTTP Session Id.

  4. Mobile приложение сохраняется этого HTTP Session Id -Какого является уникальным ключом стороны сервера, и может быть безопасным - для связи с сервером для последующих запросов (ссылающихся на бизнес-методу).

  5. Если Клиент не взаимодействует с сервером для скажем 30 мин, сервер отправит 403/Session_time_out (The Mobile может удалить сохранялось HTTP Session Id, чтобы указать самому себе, что он больше не имеет доступ к сервера ресурсов - и он может выбрать, чтобы сделать это в случае, если это необходимо, чтобы завершить связь с сервером )

  6. в этом случае, Mobile нужно будет использовать владелец ресурса снова, чтобы получить новый идентификатор сессии из сервера и получить доступ к сервера ресурсов.


Вопросы, являются:

  • являются ли вышеупомянутые шаги достаточно хорошо, чтобы зависеть?
  • Что вы думаете из соображений безопасности?
  • У вас есть другие мысли или мнения?

EDIT: Это HTTPS WebService

+0

Я думаю, что собираюсь реализовать его http://code.google.com/p/smauth/ –

ответ

0

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

Чтобы ответить на некоторые конкретные вопросы: Как защитить приложение от несанкционированных клиентов? Посмотрите на SSL и Client side certificates.

Как безопасно управлять учетными данными пользователя? Посмотрите, используя Keychain API в iOS.

+0

Это HTTPS WS, я редактирую Q. –

+0

Просто интересно: Вы имеете в виду, что часть моего ответа * не * относится к HTTPS? – Krumelur

+0

Нет, я имею в виду, что я уже использую HTTPS. 'Чтобы ответить на некоторые конкретные вопросы: как защитить приложение от несанкционированных клиентов? Посмотрите сертификаты SSL и клиентов. ' –

Смежные вопросы