2013-12-17 5 views
3

Я пытаюсь аутентифицировать пользователей с помощью службы REST, которую я создал с помощью мастера сброса. Из предыдущих вопросов, я нашел отличный пример аутентификации с OpenId на GitHub: https://github.com/gary-rowe/DropwizardOpenIDКак аутентифицировать пользователей из службы отдыха

Однако, я не хочу иметь дело с OpenId в данный момент и просто хочу пользователей 1. Signup, 2. зарегистрировалось

Моих вопросы/неурядицы являются:

  1. Для Signup: Я думаю об отправке имя пользователя/пароль пользователей в качестве POST запроса с учетными данными, как либо параметров формы или части тела JSON. Однако нет ли здесь угрозы безопасности при отправке пароля в виде обычного текста?

  2. Для Sing-in Я думаю об использовании Authenticator в Dropwizard.

  3. Я не хочу хранить пароли в текстовом виде. Какую стратегию следует придерживаться после того, как я получу пароль пользователей в POST в виде обычного текста? Я ищу для некоторых ява библиотек, которые могут помочь в соли пароля и MD5

+1

Вы прочитали документацию [аутентификация] (http://dropwizard.codahale.com/manual/auth/#oauth2)? OAuth2 будет самым безопасным и RESTful подходом; как для отправки кредитов в виде открытого текста, вы строите веб-интерфейс? Если да, обслуживайте свой сайт через https, и это не будет проблемой. – brandonscript

+0

Я не вижу никаких внешних приложений, использующих API для данных. Мой api будет использоваться мобильным и веб-интерфейсом моего приложения. Разве Oauth2 не переусердствовал бы для этого? – birdy

+0

OAuth2 - отличный способ гарантировать, что каждый зарегистрированный пользователь получит свой токен доступа, который вы можете отслеживать и управлять. Не говоря уже об отбрасывании API (и используя только сеанс/файлы cookie), это по-прежнему лучший и наиболее масштабируемый подход. Делайте работу сейчас, она будет длиться (навсегда?) – brandonscript

ответ

1

Благодарим за крик для проекта Dropwizard OpenID. Рад, что он смог вас начать.

Если вы хотите использовать простой тип типа веб-формы, взгляните на другой из моих проектов MultiBit Merchant, который предоставляет несколько методов проверки подлинности (веб-форма, HMAC, cookie).

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

После загрузки проекта найдите WebFormClientAuthenticator, который доставит вас в нужное место.

Общие принципы, связанные с аутентификацией Dropwizard are discussed in this blog article. Хотя он нацелен на HMAC, вы можете легко адаптировать его для веб-формы или файла cookie, используя исходный код, упомянутый ранее.

Это все лицензии MIT, поэтому просто используйте его, как вам нужно.

+0

Спасибо. Я просматриваю код и реализую свой простой сервис параллельно. У меня возник еще один вопрос: http://stackoverflow.com/questions/20662871/how-to-do-basic-authentication-of-a-resource-in-dropwizard – birdy

1

Глядя на документы, мы можем видеть, что Dropwizard поддерживает автономную реализацию OAuth2:

http://dropwizard.codahale.com/manual/auth/#oauth2

OAuth2 имеет несколько преимуществ, многие из которых можно прочитать о здесь: OAuth 2.0: Benefits and use cases — why?

Things отметить:

  • при работе с аутентификацией вы всегда должны размещать через HTTPS для обеспечения транспортного шифрования
  • Dropwizard утверждает, что их реализация OAuth2 еще не завершена и может измениться в будущем. В конце концов они также поддерживают Basic auth, который при использовании по HTTPS будет по-прежнему достаточно безопасным.
  • Реализация этого не предполагает использования сторонних «социальных» служб аутентификации, таких как Google или Facebook.
Смежные вопросы