Rails: аутентификация токена с нуля - PullRequest
10 голосов
/ 11 марта 2012

У меня есть приложение rails, с которым я хочу начать интеграцию iOS. У меня есть базовая система аутентификации, построенная в основном с нуля с небольшой помощью от Волшебство .

Насколько я понимаю, есть две возможности мобильной интеграции: HTTP Basic Auth или Token Auth. Из того, что я смог найти до сих пор, похоже, что Token Authentication является предпочтительным методом.

Я не знаком с тем, что такое аутентификация токена или как она должна работать, и я действительно не смог найти каких-либо приличных руководств по этому вопросу, за исключением нескольких руководств по использованию соответствующего модуля в Devise. библиотека.

Итак, мой вопрос: какова основная теория аутентификации токенов и как будет выглядеть система аутентификации токенов с нуля в рельсах? Я понимаю, что совместное использование кода для всей системы может оказаться излишним для ответа SO, но я был бы очень признателен, если бы кто-нибудь мог помочь мне понять базовую схему того, как такая система должна работать. Я также с радостью принимаю ссылки на любые хорошие существующие материалы о том, как сделать это с нуля, поскольку главная проблема в том, что я не смог найти ничего подобного.

Спасибо!

Ответы [ 3 ]

10 голосов
/ 16 марта 2012

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

Ниже мое понимание того, как работает аутентификация токена:

  1. Пользователь входит в систему, используя комбинацию имени пользователя и пароля через отправить запрос.
  2. Вы аутентифицируете пользователя и генерируете уникальный токен и хранить его в БД.
  3. Вы отправляете этот токен обратно на устройство iOS.
  4. Устройство сохраняет этот токен в памяти.
  5. При любом последующем вызове API этот токен должен передаваться как дополнительный параметр для авторизации пользователя.
  6. Чтобы этот процесс был безопасным, этот токен должен иметь срок действия дата и связь между устройством iOS и сервером должен быть зашифрован через SSL.
  7. Для удобства вы можете хранить учетные данные пользователя на устройстве используя брелок для iOS.

Надеюсь, это поможет.

3 голосов
/ 11 марта 2012

Я думаю, что здесь есть три трудности.

  1. Очень мало книг посвящено технике аутентификации
  2. Ключевое слово «аутентификация токена» сбивает с толку использование в поле безопасности / аутентификации.
  3. Документация по Rails, как правило, "как".

Итак, поиск в Google не даст хороших ресурсов для этой цели. Я хорошо знаю это поле, но оно трудное, особенно по причине 2.

В моем понимании «токен» здесь работает как аутентифицируемый идентификатор в системе и обеспечивает мост между системой аутентификации и системой авторизации. Но чтобы понять это, вы должны понимать общую систему.

Позвольте мне дать несколько указателей в отношении книг по технике аутентификации и некоторых статей здесь.

  1. Батлер Лэмпсон сделал много работ, связанных с аутентификацией, и некоторые статьи являются очень хорошим материалом для понимания структуры аутентификации / авторизации. это может быть полезно. Одним из примеров является Компьютерная безопасность в реальном мире (2004) .
  2. Книга, написанная для инфраструктуры открытых ключей (PKI), может оказаться полезной. Есть несколько таких. Например, Понимание PKI: концепции, стандарты и вопросы развертывания, 2-е издание

Надеюсь, это поможет.

2 голосов
/ 08 марта 2013

ember-auth имеет хороший учебник по аутентификации токена для рельсов с devise и ember. Однако это также может быть применено к колдовству или к пользовательской системе аутентификации. Я думаю, что это лучший подход к аутентификации для приложения ember.js.

https://github.com/heartsentwined/ember-auth-rails-demo

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