2012-03-10 3 views
10

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

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

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

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

Спасибо!

ответ

3

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

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

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

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

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

  1. Butler Lampson сделал много связанных с работой аутентификации, и некоторые из статей являются очень хорошим материалом для понимания структуры аутентификации/авторизации. это может быть полезно. Одним из примеров является Computer security in the real world(2004).
  2. Книга, написанная для инфраструктуры открытого ключа (PKI), может быть полезна. Есть несколько таких. Такие, как Understanding PKI: Concepts, Standards, and Deployment Considerations, 2nd edition

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

10

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

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

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

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

2

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

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

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