2013-08-06 3 views
15

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

Скажем, у меня есть следующий REST бэкенд:

GET /user возвращает все пользователи в формате JSON. (Не нужно регистрироваться)
POST /user регистрирует нового пользователя. (Не нужно регистрироваться)
DELETE /user удаляет пользователя. (Вы do необходимо войти в систему)

POST /login имеет регистрационные данные и возвращает 200 подтверждений успешной аутентификации. Также это создает session с username.

DELETE /login Выход из системы, это удаление сеанса.

Для аутентификации пользователей и ролей я использую Deadbolt-2 так, например, когда DELETE /user называется сначала session будет рассматриваться, чтобы определить, является ли вы вошли в систему и затем username используется, чтобы определить, если у вас есть необходимые разрешения.

. Мой вопрос не в том, что такое авторизация/аутентификация. Это, однако, примерно следующее:

Я хочу, чтобы обеспечить «общественность» API вызовы, такие как: GET /user в пути, так что только интерфейсные приложения, которые одобрены меня может получить доступ к ним.

Я много читал о api-keys и HMAC и oAuth. Но мне кажется, что речь идет о первом сценарии, а не о втором. Итак, как бы я это сделал в своей ситуации?

Спасибо за ваше время.

+0

Логины и предоставление доступа только для одобренных клиентов _sort того же thing_. Вы должны сохранить список всех одобренных клиентов. Как еще вы узнаете, может ли клиент получить доступ к вашему API? Кроме того, клиент должен как-то идентифицировать себя. Этот процесс идентификации должен содержать _a secret_ между вами и клиентом. В противном случае, что мешает мне сказать вам: «Привет, я клиент XY, gimme API!» _, Хотя я не в вашем списке. Это (на базовом уровне), эквивалентное логину с именем пользователя/пароля. Или выдавать «ключи API». – Carsten

+0

Итак, я должен реализовать дополнительный базовый уровень авторизации ниже тех, которые у меня есть прямо сейчас, чтобы мой front-end автоматически включался в систему? – Jim

ответ

15

Возможно, это Securing Single Page Apps and REST Services статья James Ward полезная, она построена с использованием Play Framework, Java, jQuery и CoffeeScript.

Ссылка источник здесь: https://github.com/jamesward/play-rest-security/

+0

Я нашел это примерно 2 часа назад сам на самом деле. Это в сочетании с комментарием Карстен действительно помогает мне. – Jim

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