Решение для проверки подлинности RESTFul через HTTPS - PullRequest
0 голосов
/ 24 декабря 2011

В сети очень много дискуссий о аутентификации - REST Architecture, поэтому я думаю, что давно пора разместить решение в одном месте. Решение, которое звучит несколько хорошо:

(Специалисты по безопасности внетам, пожалуйста, комментарий)

  1. Пользователь входит в систему, используя свое имя пользователя и пароль
  2. На сервере проверяются имя пользователя и пароль
  3. , если учетные данныедействительно, мы получаем уникальный идентификатор, смешивая метку времени с идентификатором пользователя.мы используем таблицу для сопоставления uniqueId-> userid и создаем запись для уникального идентификатора, который мы только что сгенерировали, и идентификатора пользователя

  4. Кроме того, мы устанавливаем заголовок HTTP, содержащий идентификатор, содержащий уникальный идентификатори идентификатор пользователя несколько с конкатенацией строк, как это <uniqueId>#<userid>.

  5. При каждом запросе клиент должен предоставить эту информацию,

  6. , если запрос отклиент требует, чтобы мы идентифицировали, кто является клиентом, чтобы мы могли проверить его разрешения, затем мы делаем это:

get http header #,

, если не содержат недействительныхuser

если содержится проверка в базе данных, если сопоставление uniqueId-> userid существует

если да, мы определили пользователя, иначе недопустимый пользователь

Вся эта схемапо HTTPS

1 Ответ

1 голос
/ 24 декабря 2011

Не думаю, что вам нужно такое сложное решение, если вы используете HTTPS. Вы можете даже попросить клиента передавать имя пользователя и пароль при каждом запросе. Пока клиент не скомпрометирован, проблем нет. И если это скомпрометировано, то все решение развалится в любом случае.

В общем, я думаю, что большинство разработчиков заинтересованы в решении по HTTP, а не по HTTPS. Но для этого уже есть проверенные решения, такие как OpenID или OAuth.

...